From: Sebastian Pop Date: Wed, 1 Dec 2010 17:24:47 +0000 (+0000) Subject: Call recompute_tree_invariant_for_addr_expr when replacing a constant in an ADDR_EXPR. X-Git-Tag: releases/gcc-4.6.0~2213 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c8f91fcc343c32ab9441b8b4c41005351d65d0b6;p=thirdparty%2Fgcc.git Call recompute_tree_invariant_for_addr_expr when replacing a constant in an ADDR_EXPR. 2010-11-22 Sebastian Pop * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr when replacing a constant in an ADDR_EXPR. From-SVN: r167346 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e76b893dc4a..9cd9e1383ace 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-12-01 Sebastian Pop + + * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr + when replacing a constant in an ADDR_EXPR. + 2010-12-01 Sebastian Pop * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index a205928e4a2a..1746711392ec 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,8 @@ +2010-11-22 Sebastian Pop + + * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr + when replacing a constant in an ADDR_EXPR. + 2010-10-20 Sebastian Pop * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter diff --git a/gcc/sese.c b/gcc/sese.c index 078df67b7956..f5e41f5b3be7 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); } }