diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2004-11-02 13:23:05 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2004-11-02 13:23:05 +0000 |
commit | bc2dce329b4625d7ea00ad7add6c2afeb04f89f6 (patch) | |
tree | 7091abf3b32a0579cf01c68d71ac82ff7bb67e7b /gcc | |
parent | 54699c021d74f8422c187104012fed4557d9d78d (diff) | |
download | gcc-bc2dce329b4625d7ea00ad7add6c2afeb04f89f6.zip gcc-bc2dce329b4625d7ea00ad7add6c2afeb04f89f6.tar.gz gcc-bc2dce329b4625d7ea00ad7add6c2afeb04f89f6.tar.bz2 |
tree-phinodes.c (add_phi_arg): Add an assertion that the edge already exists.
* tree-phinodes.c (add_phi_arg): Add an assertion that the
edge already exists.
From-SVN: r89985
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-phinodes.c | 11 |
2 files changed, 8 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1e1662a..60c224c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2004-11-02 Kazu Hirata <kazu@cs.umass.edu> + * tree-phinodes.c (add_phi_arg): Add an assertion that the + edge already exists. + +2004-11-02 Kazu Hirata <kazu@cs.umass.edu> + * tree-phinodes.c (remove_phi_arg_num): Do not zero the element that's being removed. diff --git a/gcc/tree-phinodes.c b/gcc/tree-phinodes.c index e7883e3..ba46c78 100644 --- a/gcc/tree-phinodes.c +++ b/gcc/tree-phinodes.c @@ -295,12 +295,14 @@ create_phi_node (tree var, basic_block bb) void add_phi_arg (tree *phi, tree def, edge e) { + basic_block bb = e->dest; int i = PHI_NUM_ARGS (*phi); + gcc_assert (bb == bb_for_stmt (*phi)); + if (i >= PHI_ARG_CAPACITY (*phi)) { tree old_phi = *phi; - basic_block bb; /* Resize the phi. Unfortunately, this will relocate it. */ resize_phi_node (phi, ideal_phi_node_len (i + 4)); @@ -311,13 +313,6 @@ add_phi_arg (tree *phi, tree def, edge e) /* The result of the phi is defined by this phi node. */ SSA_NAME_DEF_STMT (PHI_RESULT (*phi)) = *phi; - /* Extract the basic block for the PHI from the PHI's annotation - rather than the edge. This works better as the edge's - destination may not currently be the block with the PHI node - if we are in the process of threading the edge to a new - destination. */ - bb = bb_for_stmt (*phi); - release_phi_node (old_phi); /* Update the list head if replacing the first listed phi. */ |