]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Call recompute_tree_invariant_for_addr_expr when replacing a constant in an ADDR_EXPR.
authorSebastian Pop <sebastian.pop@amd.com>
Wed, 1 Dec 2010 17:24:47 +0000 (17:24 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Wed, 1 Dec 2010 17:24:47 +0000 (17:24 +0000)
2010-11-22  Sebastian Pop  <sebastian.pop@amd.com>

* sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
when replacing a constant in an ADDR_EXPR.

From-SVN: r167346

gcc/ChangeLog
gcc/ChangeLog.graphite
gcc/sese.c

index 8e76b893dc4a77d1274f67ecf5b9d7db081c9eb2..9cd9e1383ace809909dfcb75f010d74cc2e9cde5 100644 (file)
@@ -1,3 +1,8 @@
+2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
+       when replacing a constant in an ADDR_EXPR.
+
 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
index a205928e4a2a159838e49cd6f36559666f663be7..1746711392ec3c24198efce27ae706c9cd4f41d2 100644 (file)
@@ -1,3 +1,8 @@
+2010-11-22  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
+       when replacing a constant in an ADDR_EXPR.
+
 2010-10-20  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
index 078df67b79561bc4a1dd4bfbf38738c2a834c260..f5e41f5b3be7be96c55c04fe24aa3d2e37e4deb4 100644 (file)
@@ -546,6 +546,19 @@ rename_uses (gimple copy, htab_t rename_map, gimple_stmt_iterator *gsi_tgt,
                                       true, NULL_TREE);
       gsi_insert_seq_before (gsi_tgt, stmts, GSI_SAME_STMT);
       replace_exp (use_p, new_expr);
+
+
+      if (TREE_CODE (new_expr) == INTEGER_CST)
+       {
+         tree lhs = gimple_assign_lhs (copy);
+         tree rhs = gimple_assign_rhs1 (copy);
+
+         if (TREE_CODE (lhs) == ADDR_EXPR)
+           recompute_tree_invariant_for_addr_expr (lhs);
+         if (TREE_CODE (rhs) == ADDR_EXPR)
+           recompute_tree_invariant_for_addr_expr (rhs);
+       }
+
       set_rename (rename_map, old_name, new_expr);
     }
 }