OSDN Git Service

Call recompute_tree_invariant_for_addr_expr when replacing a constant in an ADDR_EXPR.
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Dec 2010 17:24:47 +0000 (17:24 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167346 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 8e76b89..9cd9e13 100644 (file)
@@ -1,5 +1,10 @@
 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
        for the stride.
        (lst_do_strip_mine): Same.
index a205928..1746711 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 078df67..f5e41f5 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);
     }
 }