diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-27 15:58:47 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-27 15:58:47 +0000 |
commit | 8b292c7fd44e6f7173c655b1c02878367b128081 (patch) | |
tree | d71c2914f1601c75fef11dea8905ac7f1abc91bb /gcc/tree-ssanames.c | |
parent | 6e6d9afaa2c2524b080b29b48926bfb854b297ea (diff) | |
download | gcc-8b292c7fd44e6f7173c655b1c02878367b128081.tar.gz |
* tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
(num_ssa_names): Use VEC_length.
(ssa_names): Use VEC_index.
* tree-ssanames.c (ssa_names): Change the type to
VEC(tree,gc).
(init_ssanames, fini_ssa_names, make_ssanames,
release_ssa_name): Update uses of ssa_names.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98843 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssanames.c')
-rw-r--r-- | gcc/tree-ssanames.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c index 0f0381f4a98..bbdae93facf 100644 --- a/gcc/tree-ssanames.c +++ b/gcc/tree-ssanames.c @@ -59,7 +59,7 @@ Boston, MA 02111-1307, USA. */ this is the place to try it. */ /* Array of all SSA_NAMEs used in the function. */ -varray_type ssa_names; +VEC(tree,gc) *ssa_names; /* Free list of SSA_NAMEs. This list is wiped at the end of each function after we leave SSA form. */ @@ -79,13 +79,16 @@ unsigned int ssa_name_nodes_created; void init_ssanames (void) { - VARRAY_TREE_INIT (ssa_names, 50, "ssa_names table"); + ssa_names = VEC_alloc (tree, gc, 50); /* Version 0 is special, so reserve the first slot in the table. Though currently unused, we may use version 0 in alias analysis as part of the heuristics used to group aliases when the alias sets are too - large. */ - VARRAY_PUSH_TREE (ssa_names, NULL_TREE); + large. + + We use VEC_quick_push here because we know that SSA_NAMES has at + least 50 elments reserved in it. */ + VEC_quick_push (tree, ssa_names, NULL_TREE); free_ssanames = NULL; } @@ -94,8 +97,7 @@ init_ssanames (void) void fini_ssanames (void) { - ggc_free (ssa_names); - ssa_names = NULL; + VEC_free (tree, gc, ssa_names); free_ssanames = NULL; } @@ -138,13 +140,13 @@ make_ssa_name (tree var, tree stmt) /* The node was cleared out when we put it on the free list, so there is no need to do so again here. */ gcc_assert (ssa_name (SSA_NAME_VERSION (t)) == NULL); - VARRAY_TREE (ssa_names, SSA_NAME_VERSION (t)) = t; + VEC_replace (tree, ssa_names, SSA_NAME_VERSION (t), t); } else { t = make_node (SSA_NAME); SSA_NAME_VERSION (t) = num_ssa_names; - VARRAY_PUSH_TREE (ssa_names, t); + VEC_safe_push (tree, gc, ssa_names, t); #ifdef GATHER_STATISTICS ssa_name_nodes_created++; #endif @@ -211,7 +213,7 @@ release_ssa_name (tree var) while (imm->next != imm) delink_imm_use (imm->next); - VARRAY_TREE (ssa_names, SSA_NAME_VERSION (var)) = NULL; + VEC_replace (tree, ssa_names, SSA_NAME_VERSION (var), NULL_TREE); memset (var, 0, tree_size (var)); imm->prev = imm; |