From 49f48e9ffca06f9a945da052f04e67f509e00205 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 16 Sep 2004 18:45:33 +0000 Subject: [PATCH] re PR tree-optimization/17517 (ICE: SSA corruption) 2004-09-16 Andrew MacLeod PR tree-optimization/17517 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't coalesce same-root variables without checking for abnormal PHI usage. From-SVN: r87609 --- gcc/ChangeLog | 6 ++++++ gcc/tree-ssa-copyrename.c | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 265495f32c5..72b17b2b50e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-09-16 Andrew MacLeod + + PR tree-optimization/17517 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't + coalesce same-root variables without checking for abnormal PHI usage. + 2004-09-16 Daniel Berlin * cfgloop.h (duplicate_loop): Add prototype. diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c index 494e3a57dd5..49225d09b20 100644 --- a/gcc/tree-ssa-copyrename.c +++ b/gcc/tree-ssa-copyrename.c @@ -169,6 +169,16 @@ copy_rename_partition_coalesce (var_map map, tree var1, tree var2, FILE *debug) return; } + /* Don't coalesce if one of the variables occurs in an abnormal PHI. */ + abnorm = (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep1) + || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep2)); + if (abnorm) + { + if (debug) + fprintf (debug, " : Abnormal PHI barrier. No coalesce.\n"); + return; + } + /* Partitions already have the same root, simply merge them. */ if (root1 == root2) { @@ -251,16 +261,6 @@ copy_rename_partition_coalesce (var_map map, tree var1, tree var2, FILE *debug) return; } - /* Don't coalesce if one of the variables occurs in an abnormal PHI. */ - abnorm = (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep1) - || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep2)); - if (abnorm) - { - if (debug) - fprintf (debug, " : Abnormal PHI barrier. No coalesce.\n"); - return; - } - /* Merge the two partitions. */ p3 = partition_union (map->var_partition, p1, p2); -- 2.30.2