From 8b292c7fd44e6f7173c655b1c02878367b128081 Mon Sep 17 00:00:00 2001 From: kazu Date: Wed, 27 Apr 2005 15:58:47 +0000 Subject: [PATCH] * 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 --- gcc/ChangeLog | 10 ++++++++++ gcc/tree-flow.h | 6 +++--- gcc/tree-ssanames.c | 20 +++++++++++--------- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8760fb27511..05686d92b95 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2005-04-27 Kazu Hirata + + * 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. + 2005-04-27 Devang Patel * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions. diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index 378599eee23..9fb4ff2d075 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -416,10 +416,10 @@ extern GTY(()) varray_type referenced_vars; #define referenced_var(i) VARRAY_TREE (referenced_vars, i) /* Array of all SSA_NAMEs used in the function. */ -extern GTY(()) varray_type ssa_names; +extern GTY(()) VEC(tree,gc) *ssa_names; -#define num_ssa_names VARRAY_ACTIVE_SIZE (ssa_names) -#define ssa_name(i) VARRAY_TREE (ssa_names, i) +#define num_ssa_names (VEC_length (tree, ssa_names)) +#define ssa_name(i) (VEC_index (tree, ssa_names, (i))) /* Artificial variable used to model the effects of function calls. */ extern GTY(()) tree global_var; 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; -- 2.11.0