aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-05-02 17:50:21 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2009-05-02 17:50:21 +0000
commit85e59f3a2dc95c9180e59fc38e4004ba52a62223 (patch)
treef2f2c3594fa344d101ce44382e9b1c8a2796ea49 /gcc
parent4636b850f65b40e23bb6f6c7db00adfdab2602da (diff)
downloadgcc-85e59f3a2dc95c9180e59fc38e4004ba52a62223.zip
gcc-85e59f3a2dc95c9180e59fc38e4004ba52a62223.tar.gz
gcc-85e59f3a2dc95c9180e59fc38e4004ba52a62223.tar.bz2
re PR java/39940 (failure in jc1 on i686-apple-darwin9 host)
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. From-SVN: r147065
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-pre.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d05e7cb..0bba7cf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
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.
+
+2009-05-02 Richard Guenther <rguenther@suse.de>
+
PR middle-end/40001
* tree-ssa.c (execute_update_addresses_taken): Properly check
if we can mark a variable DECL_GIMPLE_REG_P.
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 11b88ed..3273c19 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);