This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: [4.5 Regression] ICE with graphite enabled in cairo-1.8.10


Hi,

This patch fixes a 4.5 regression.  OK for 4.5?

Thanks.


H.J.
---
gcc/

2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
    	PR middle-end/46651
	2010-07-22  Sebastian Pop  <sebastian.pop@amd.com>
    
	* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
	SSA_NAME_DEF_STMT only on SSA_NAMEs.
    
gcc/testsuite/

2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2010-07-22  Sebastian Pop  <sebastian.pop@amd.com>

    	PR middle-end/46651
	* gcc.dg/graphite/id-24.c: New.
    
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index b12210b..b8f332a 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -2235,7 +2235,8 @@ rewrite_phi_out_of_ssa (gimple_stmt_iterator *psi)
 
       /* Avoid the insertion of code in the loop latch to please the
 	 pattern matching of the vectorizer.  */
-      if (e->src == bb->loop_father->latch)
+      if (TREE_CODE (arg) == SSA_NAME
+	  && e->src == bb->loop_father->latch)
  	insert_out_of_ssa_copy (zero_dim_array, arg);
       else
 	insert_out_of_ssa_copy_on_edge (e, zero_dim_array, arg);
diff --git a/gcc/testsuite/gcc.dg/graphite/id-24.c b/gcc/testsuite/gcc.dg/graphite/id-24.c
new file mode 100644
index 0000000..d466069
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/id-24.c
@@ -0,0 +1,22 @@
+/* gcc.dg/tree-ssa/loadpre23.c used to ICE with Graphite.  */
+
+struct {
+  int a;
+  int large[100];
+} x;
+
+int foo(int argc)
+{
+  int b;
+  int c;
+  int i;
+  int d, e;
+
+  for (i = 0; i < argc; i++)
+    {
+      e = x.a;
+      x.a = 9;
+    }
+  return d + e;
+}
+


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]