summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-sccvn.c
diff options
context:
space:
mode:
authordrow <drow@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-01 16:53:01 +0000
committerdrow <drow@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-01 16:53:01 +0000
commit5f6261a7b7c907b0691d23edfa20ec0ca1051c87 (patch)
treed02919ec89b4a0c74b6a0015731011335652b7ca /gcc/tree-ssa-sccvn.c
parentb4c4fea4634a5d4938608d5b10287b632ade40c8 (diff)
downloadgcc-5f6261a7b7c907b0691d23edfa20ec0ca1051c87.tar.gz
PR tree-optimization/32919
* tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs. * tree-ssa-coalesce.c (ssa_conflicts_dump): New. (coalesce_ssa_name): Call it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127132 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r--gcc/tree-ssa-sccvn.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 607cd1d298c..5e6a86a4b6c 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -1259,6 +1259,11 @@ visit_phi (tree phi)
bool allsame = true;
int i;
+ /* TODO: We could check for this in init_sccvn, and replace this
+ with a gcc_assert. */
+ if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (PHI_RESULT (phi)))
+ return set_ssa_val_to (PHI_RESULT (phi), PHI_RESULT (phi));
+
/* See if all non-TOP arguments have the same value. TOP is
equivalent to everything, so we can ignore it. */
for (i = 0; i < PHI_NUM_ARGS (phi); i++)