]> gcc.gnu.org Git - gcc.git/commitdiff
Fix miscompile of 416.gamess.
authorSebastian Pop <sebastian.pop@amd.com>
Wed, 11 Aug 2010 20:31:24 +0000 (20:31 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Wed, 11 Aug 2010 20:31:24 +0000 (20:31 +0000)
2010-07-29  Sebastian Pop  <sebastian.pop@amd.com>

* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
the case removed in the previous patch, when the only phi argument
is defined in the same loop as the phi node itself.  Handle it
separately from the invariant case by both propagating it outside
the region and replacing the phi node with an assign.

From-SVN: r163169

gcc/ChangeLog
gcc/ChangeLog.graphite
gcc/graphite-sese-to-poly.c

index ffd36c30e758549d276211fa363815db4ddbecee..acad602018e308b33821a6e1fc3f0b228b501474 100644 (file)
@@ -1,3 +1,11 @@
+2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
+       the case removed in the previous patch, when the only phi argument
+       is defined in the same loop as the phi node itself.  Handle it
+       separately from the invariant case by both propagating it outside
+       the region and replacing the phi node with an assign.
+
 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
index 1d3e64d2b6881987ee5be40fd41f6806b4ecab2d..e43d2ce50dbab7d14b556d1417f627db3df5ec05 100644 (file)
@@ -1,3 +1,11 @@
+2010-07-29  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
+       the case removed in the previous patch, when the only phi argument
+       is defined in the same loop as the phi node itself.  Handle it
+       separately from the invariant case by both propagating it outside
+       the region and replacing the phi node with an assign.
+
 2010-07-28  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
index 38e408c753b68017b0670898e0b734c6410b190a..4b94bcb4e77713657dae3bd8c93597f272a260fb 100644 (file)
@@ -2249,6 +2249,16 @@ rewrite_close_phi_out_of_ssa (gimple_stmt_iterator *psi, sese region)
       return;
     }
 
+  else if (gimple_bb (SSA_NAME_DEF_STMT (arg))->loop_father == bb->loop_father)
+    {
+      propagate_expr_outside_region (res, arg, region);
+      stmt = gimple_build_assign (res, arg);
+      remove_phi_node (psi, false);
+      gsi_insert_before (&gsi, stmt, GSI_NEW_STMT);
+      SSA_NAME_DEF_STMT (res) = stmt;
+      return;
+    }
+
   /* If res is scev analyzable and is not a scalar value, it is safe
      to ignore the close phi node: it will be code generated in the
      out of Graphite pass.  */
This page took 0.077692 seconds and 5 git commands to generate.