summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-05-02 17:50:21 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-05-02 17:50:21 +0000
commitb4c97a12cde6c05758d10c0fb72286de25de7384 (patch)
treef2f2c3594fa344d101ce44382e9b1c8a2796ea49 /gcc/tree-ssa-pre.c
parentf09f132bf38987009051ac7c8489dc36b5d4e1b8 (diff)
downloadgcc-b4c97a12cde6c05758d10c0fb72286de25de7384.tar.gz
2009-05-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39940 * tree-ssa-pre.c (eliminate): Make sure we may propagate before doing so. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147065 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r--gcc/tree-ssa-pre.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 11b88eddc36..3273c194981 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -4215,7 +4215,9 @@ eliminate (void)
/* If there is a single use only, propagate the equivalency
instead of keeping the copy. */
if (TREE_CODE (lhs) == SSA_NAME
- && single_imm_use (lhs, &use_p, &use_stmt))
+ && single_imm_use (lhs, &use_p, &use_stmt)
+ && may_propagate_copy (USE_FROM_PTR (use_p),
+ gimple_assign_rhs1 (stmt)))
{
SET_USE (use_p, gimple_assign_rhs1 (stmt));
update_stmt (use_stmt);