From b2c24c1b9f722c57ed70c067e77d4fda1c63abda Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sat, 6 Nov 2004 15:14:11 +0000 Subject: [PATCH] tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a pointer to the last PHI node in the new PHI chain. * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a pointer to the last PHI node in the new PHI chain. From-SVN: r90173 --- gcc/ChangeLog | 5 +++++ gcc/tree-phinodes.c | 18 ++++++------------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 33c708b..402f31d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-11-06 Kazu Hirata + + * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a + pointer to the last PHI node in the new PHI chain. + 2004-11-06 Kaz Kojima * config/sh/sh.c (prepare_move_operands): Emit a use of r12 diff --git a/gcc/tree-phinodes.c b/gcc/tree-phinodes.c index 2e190e5..0d621b5 100644 --- a/gcc/tree-phinodes.c +++ b/gcc/tree-phinodes.c @@ -449,10 +449,10 @@ remove_all_phi_nodes_for (bitmap vars) FOR_EACH_BB (bb) { /* Build a new PHI list for BB without variables in VARS. */ - tree phi, new_phi_list, last_phi, next; + tree phi, new_phi_list, next; + tree *lastp = &new_phi_list; - last_phi = new_phi_list = NULL_TREE; - for (phi = phi_nodes (bb), next = NULL; phi; phi = next) + for (phi = phi_nodes (bb); phi; phi = next) { tree var = SSA_NAME_VAR (PHI_RESULT (phi)); @@ -465,13 +465,8 @@ remove_all_phi_nodes_for (bitmap vars) Note that fact in PHI_REWRITTEN. */ PHI_REWRITTEN (phi) = 1; - if (new_phi_list == NULL_TREE) - new_phi_list = last_phi = phi; - else - { - PHI_CHAIN (last_phi) = phi; - last_phi = phi; - } + *lastp = phi; + lastp = &PHI_CHAIN (phi); } else { @@ -483,8 +478,7 @@ remove_all_phi_nodes_for (bitmap vars) } /* Make sure the last node in the new list has no successors. */ - if (last_phi) - PHI_CHAIN (last_phi) = NULL_TREE; + *lastp = NULL; bb_ann (bb)->phi_nodes = new_phi_list; #if defined ENABLE_CHECKING -- 2.7.4