aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-outof-ssa.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2004-12-14 13:05:48 -0700
committerJeff Law <law@gcc.gnu.org>2004-12-14 13:05:48 -0700
commitff1c708e4a2171cb6823a2b9e46f83dc500e93fb (patch)
tree150a2e887208245b695f1a1a1a7b62d90ddff90c /gcc/tree-outof-ssa.c
parentacb3f79a4af6acc1709d001a33599bf169712c12 (diff)
downloadgcc-ff1c708e4a2171cb6823a2b9e46f83dc500e93fb.zip
gcc-ff1c708e4a2171cb6823a2b9e46f83dc500e93fb.tar.gz
gcc-ff1c708e4a2171cb6823a2b9e46f83dc500e93fb.tar.bz2
tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target partition to conflict_graph_merge_regs.
* tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target partition to conflict_graph_merge_regs. From-SVN: r92157
Diffstat (limited to 'gcc/tree-outof-ssa.c')
-rw-r--r--gcc/tree-outof-ssa.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index 621366b..d61acbd 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -569,7 +569,7 @@ coalesce_abnormal_edges (var_map map, conflict_graph graph, root_var_p rv)
basic_block bb;
edge e;
tree phi, var, tmp;
- int x, y;
+ int x, y, z;
edge_iterator ei;
/* Code cannot be inserted on abnormal edges. Look for all abnormal
@@ -641,8 +641,9 @@ coalesce_abnormal_edges (var_map map, conflict_graph graph, root_var_p rv)
"ABNORMAL: Coalescing ",
var, " and ", tmp);
}
+ z = var_union (map, var, tmp);
#ifdef ENABLE_CHECKING
- if (var_union (map, var, tmp) == NO_PARTITION)
+ if (z == NO_PARTITION)
{
print_exprs_edge (stderr, e, "\nUnable to coalesce",
partition_to_var (map, x), " and ",
@@ -650,9 +651,13 @@ coalesce_abnormal_edges (var_map map, conflict_graph graph, root_var_p rv)
internal_error ("SSA corruption");
}
#else
- gcc_assert (var_union (map, var, tmp) != NO_PARTITION);
+ gcc_assert (z != NO_PARTITION);
#endif
- conflict_graph_merge_regs (graph, x, y);
+ gcc_assert (z == x || z == y);
+ if (z == x)
+ conflict_graph_merge_regs (graph, x, y);
+ else
+ conflict_graph_merge_regs (graph, y, x);
}
}
}