diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 28386135d3bb97bf222b167025585a595cd9d13a..ddbcfca99ab27113b3fcfa7be806b61f3627c9a4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
+	instead of calling phi_arg_from_edge.
+
 2004-11-24  Ben Elliston  <bje@au.ibm.com>
 
 	* config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index 20409d39e4bc2345b1f23becf673f1466e94f479..621366b85ae29123478ffd4604b8249c13271867 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -590,10 +590,7 @@ coalesce_abnormal_edges (var_map map, conflict_graph graph, root_var_p rv)
 	    if (x == NO_PARTITION)
 	      continue;
 
-	    y = phi_arg_from_edge (phi, e);
-	    gcc_assert (y != -1);
-
-	    tmp = PHI_ARG_DEF (phi, y);
+	    tmp = PHI_ARG_DEF (phi, e->dest_idx);
 #ifdef ENABLE_CHECKING
 	    if (!phi_ssa_name_p (tmp))
 	      {