]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Unshare the scev before code generating it.
authorSebastian Pop <sebastian.pop@amd.com>
Wed, 11 Aug 2010 20:28:38 +0000 (20:28 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Wed, 11 Aug 2010 20:28:38 +0000 (20:28 +0000)
2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

* sese.c (rename_uses): Call unshare_expr before force_gimple_operand.

* gcc.dg/graphite/id-23.c: New.

From-SVN: r163149

gcc/ChangeLog
gcc/ChangeLog.graphite
gcc/sese.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/graphite/id-23.c [new file with mode: 0644]

index 1b6821160a3d65e5111cc8516749f9e64fa8cc87..0e363faa00b0d9001a4b591120f4a052a47ff478 100644 (file)
@@ -1,3 +1,7 @@
+2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
+
 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
index 1ddd73111022f9b2d50fb66478cea24b2a688a0f..d929c9a9f4b9b274a9b4cb0efff33959945ec5d6 100644 (file)
@@ -1,3 +1,9 @@
+2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
+
+       * gcc.dg/graphite/id-23.c: New.
+
 2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
index 9dbd76f85ea512f1d43f3f39f3ca4240927a4c66..5ac7a2fc5b90ab047cee831a7710ebb1259273f4 100644 (file)
@@ -543,7 +543,8 @@ rename_uses (gimple copy, htab_t rename_map, gimple_stmt_iterator *gsi_tgt,
                  && !tree_contains_chrecs (new_expr, NULL));
 
       /* Replace the old_name with the new_expr.  */
-      new_expr = force_gimple_operand (new_expr, &stmts, true, NULL);
+      new_expr = force_gimple_operand (unshare_expr (new_expr), &stmts,
+                                      true, NULL);
       gsi_insert_seq_before (gsi_tgt, stmts, GSI_SAME_STMT);
       replace_exp (use_p, new_expr);
       set_rename (rename_map, old_name, new_expr);
index 6de617e15e478feedc7990b88facf3554d456ad5..46cf6464a5c31abdbbd331ccb94644823c35381f 100644 (file)
@@ -1,3 +1,7 @@
+2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * gcc.dg/graphite/id-23.c: New.
+
 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
 
        * gfortran.dg/graphite/id-20.f: Adjust testcase.
diff --git a/gcc/testsuite/gcc.dg/graphite/id-23.c b/gcc/testsuite/gcc.dg/graphite/id-23.c
new file mode 100644 (file)
index 0000000..0f8a1f3
--- /dev/null
@@ -0,0 +1,22 @@
+double *ZV_entries (void);
+void SubMtx_fillRowZV (int irow)
+{
+  double *rowvec = ZV_entries ();
+  double *entries;
+  int ii, ipivot, jrow, kk, m;
+  int *pivotsizes;
+
+  SubMtx_blockDiagonalInfo (&pivotsizes);
+
+  for (jrow = ipivot = kk = 0; jrow <= irow; ipivot++)
+    {
+      m = pivotsizes[ipivot];
+      if (jrow <= irow && irow < jrow + m)
+       for (ii = jrow; ii < irow; ii++)
+         {
+           rowvec[2*ii] = entries[2*kk];
+           rowvec[2*ii+1] = entries[2*kk+1];
+         }
+      jrow += m;
+    }
+}