diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2004-11-09 14:59:49 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2004-11-09 14:59:49 +0000 |
commit | 5ae717192480a725e5bd7f55acefc10ca47bbc07 (patch) | |
tree | 8c76c150e9f39fa9475275c99247a8e8042e0b7f /gcc/tree-cfg.c | |
parent | 6571838f58d19afb32c2b8e4b03d2855373dd0e5 (diff) | |
download | gcc-5ae717192480a725e5bd7f55acefc10ca47bbc07.zip gcc-5ae717192480a725e5bd7f55acefc10ca47bbc07.tar.gz gcc-5ae717192480a725e5bd7f55acefc10ca47bbc07.tar.bz2 |
tree-phinodes.c (phi_reverse): New.
* tree-phinodes.c (phi_reverse): New.
* tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
Use it.
* tree-flow.h: Add a prototype for phi_reverse.
From-SVN: r90344
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 8dfaffb..8da78c8 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -3655,7 +3655,7 @@ tree_make_forwarder_block (edge fallthru) edge e; edge_iterator ei; basic_block dummy, bb; - tree phi, new_phi, var, prev, next; + tree phi, new_phi, var; dummy = fallthru->src; bb = fallthru->dest; @@ -3675,14 +3675,7 @@ tree_make_forwarder_block (edge fallthru) } /* Ensure that the PHI node chain is in the same order. */ - prev = NULL; - for (phi = phi_nodes (bb); phi; phi = next) - { - next = PHI_CHAIN (phi); - PHI_CHAIN (phi) = prev; - prev = phi; - } - set_phi_nodes (bb, prev); + set_phi_nodes (bb, phi_reverse (phi_nodes (bb))); /* Add the arguments we have stored on edges. */ FOR_EACH_EDGE (e, ei, bb->preds) @@ -4281,7 +4274,7 @@ tree_duplicate_bb (basic_block bb) mark_for_rewrite (PHI_RESULT (phi)); create_phi_node (PHI_RESULT (phi), new_bb); } - set_phi_nodes (new_bb, nreverse (phi_nodes (new_bb))); + set_phi_nodes (new_bb, phi_reverse (phi_nodes (new_bb))); bsi_tgt = bsi_start (new_bb); for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi)) |