aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-forwprop.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2012-07-19 21:35:12 +0000
committerEric Botcazou <ebotcazou@adacore.com>2012-07-19 21:35:12 +0000
commitb1d34d9e0ff41190c122829225993f699c24f2b0 (patch)
tree690fb10d1738f67c49fec46cc3c844fa7255f80b /gcc/tree-ssa-forwprop.c
parent3beb570406febe5629140f9161fb028abde808a0 (diff)
* tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
defining statement is a SSA name that occurs in abnormal PHIs. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@189687 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-forwprop.c')
-rw-r--r--gcc/tree-ssa-forwprop.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 2ab4b2375fa..c265f71bc93 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -2584,6 +2584,11 @@ combine_conversions (gimple_stmt_iterator *gsi)
unsigned int final_prec = TYPE_PRECISION (type);
int final_unsignedp = TYPE_UNSIGNED (type);
+ /* Don't propagate ssa names that occur in abnormal phis. */
+ if (TREE_CODE (defop0) == SSA_NAME
+ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (defop0))
+ return 0;
+
/* In addition to the cases of two conversions in a row
handled below, if we are converting something to its own
type via an object of identical or wider precision, neither