diff mbox series

Fix PR89594

Message ID alpine.LSU.2.20.1903051435170.7898@zhemvz.fhfr.qr
State New
Headers show
Series Fix PR89594 | expand

Commit Message

Richard Biener March 5, 2019, 1:35 p.m. UTC
I am testing the following for PR89594.

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

Richard.

2019-03-05  Richard Biener  <rguenther@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.
diff mbox series

Patch

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;
+}