aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2010-12-01 17:24:47 +0000
committerSebastian Pop <spop@gcc.gnu.org>2010-12-01 17:24:47 +0000
commitc8f91fcc343c32ab9441b8b4c41005351d65d0b6 (patch)
tree8f94eaf8f0022130c067b9545675aeeefbf6234c /gcc
parent247fd30e2072f59283bef3a3651903e06ce157ac (diff)
downloadgcc-c8f91fcc343c32ab9441b8b4c41005351d65d0b6.zip
gcc-c8f91fcc343c32ab9441b8b4c41005351d65d0b6.tar.gz
gcc-c8f91fcc343c32ab9441b8b4c41005351d65d0b6.tar.bz2
Call recompute_tree_invariant_for_addr_expr when replacing a constant in an ADDR_EXPR.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ChangeLog.graphite5
-rw-r--r--gcc/sese.c13
3 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8e76b89..9cd9e13 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index a205928..1746711 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -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
diff --git a/gcc/sese.c b/gcc/sese.c
index 078df67..f5e41f5 100644
--- a/gcc/sese.c
+++ b/gcc/sese.c
@@ -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);
}
}