I am testing the following for PR89594.

Bootstrap & regtest running on x86_64-unknown-linux-gnu.

Richard.

2019-03-05  Richard Biener  <rguent...@suse.de>

        PR tree-optimization/89594
        * tree-if-conv.c (pass_if_conversion::execute): Handle
        case where .LOOP_VECTORIZED_FUNCTION was removed.

        * gcc.dg/pr89594.c: New testcase.

Index: gcc/tree-if-conv.c
===================================================================
--- gcc/tree-if-conv.c  (revision 269385)
+++ gcc/tree-if-conv.c  (working copy)
@@ -3176,6 +3176,8 @@ pass_if_conversion::execute (function *f
   for (unsigned i = 0; i < preds.length (); ++i)
     {
       gimple *g = preds[i];
+      if (!gimple_bb (g))
+       continue;
       unsigned ifcvt_loop = tree_to_uhwi (gimple_call_arg (g, 0));
       if (!get_loop (fun, ifcvt_loop))
        {
Index: gcc/testsuite/gcc.dg/pr89594.c
===================================================================
--- gcc/testsuite/gcc.dg/pr89594.c      (nonexistent)
+++ gcc/testsuite/gcc.dg/pr89594.c      (working copy)
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-options "-O -ftree-loop-if-convert -ftree-loop-vectorize -fno-tree-ch" 
} */
+
+int h3;
+
+void
+in (void)
+{
+  long int zr;
+  int ee = 0;
+
+  for (zr = 0; zr < 1; zr = h3)
+    {
+      ee = !!h3 ? zr : 0;
+
+      h3 = 0;
+      while (h3 < 0)
+       h3 = 0;
+    }
+
+  h3 = 0;
+  while (h3 < 1)
+    h3 = !!ee ? (!!h3 + 1) : 0;
+}

Reply via email to