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.
* 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. From-SVN: r98776
This commit is contained in:
@@ -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
|
||||
|
||||
+7
-7
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user