diff options
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r-- | gcc/tree-ssa-pre.c | 4 |
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); |