summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-26 16:53:53 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-26 16:53:53 +0000
commitb0551d9ce2622f72dff868f0c5dd1d414905fc98 (patch)
tree2b0545c5bdedb28e31c5f7b81a273a5f4530c917 /gcc
parent1f1b108e8b5d5faa79229e11d862b4b1516f6e2c (diff)
downloadgcc-b0551d9ce2622f72dff868f0c5dd1d414905fc98.tar.gz
* tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
call to find_edge outside a loop to go through a PHI chain. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98776 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-cfg.c14
2 files changed, 12 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2d57e1f2e81..4cf31bca036 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
+ call to find_edge outside a loop to go through a PHI chain.
+
2004-04-26 Richard Guenther <rguenth@gcc.gnu.org>
PR tree-optimization/17598
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index a9098cdc465..93714d7c8da 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -5398,6 +5398,11 @@ tree_lv_adjust_loop_header_phi (basic_block first, basic_block second,
basic_block new_head, edge e)
{
tree phi1, phi2;
+ edge e2 = find_edge (new_head, second);
+
+ /* Because NEW_HEAD has been created by splitting SECOND's incoming
+ edge, we should always have an edge from NEW_HEAD to SECOND. */
+ gcc_assert (e2 != NULL);
/* Browse all 'second' basic block phi nodes and add phi args to
edge 'e' for 'first' head. PHI args are always in correct order. */
@@ -5406,13 +5411,8 @@ tree_lv_adjust_loop_header_phi (basic_block first, basic_block second,
phi2 && phi1;
phi2 = PHI_CHAIN (phi2), phi1 = PHI_CHAIN (phi1))
{
- edge e2 = find_edge (new_head, second);
-
- if (e2)
- {
- tree def = PHI_ARG_DEF (phi2, e2->dest_idx);
- add_phi_arg (phi1, def, e);
- }
+ tree def = PHI_ARG_DEF (phi2, e2->dest_idx);
+ add_phi_arg (phi1, def, e);
}
}