diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2005-05-08 15:07:23 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2005-05-08 15:07:23 +0000 |
commit | 2d4d14ac39e5b35da6bafcdf716ca1d0adb061df (patch) | |
tree | c2beba32b4a6c9a75f36f059d8cc836dc81b2cee | |
parent | e956d1824234ec0a9b5cad6c9fa57d3edcbf5ce9 (diff) | |
download | gcc-2d4d14ac39e5b35da6bafcdf716ca1d0adb061df.zip gcc-2d4d14ac39e5b35da6bafcdf716ca1d0adb061df.tar.gz gcc-2d4d14ac39e5b35da6bafcdf716ca1d0adb061df.tar.bz2 |
tree-dfa.c (referenced_vars, [...]): Use VEC instead of VARRAY.
* tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
instead of VARRAY.
* tree-flow.h (num_referenced_var, referenced_var): Likewise.
* tree-into-ssa.c (mark_def_site_blocks): Likewise.
* tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
From-SVN: r99393
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/tree-dfa.c | 4 | ||||
-rw-r--r-- | gcc/tree-flow.h | 6 | ||||
-rw-r--r-- | gcc/tree-into-ssa.c | 2 | ||||
-rw-r--r-- | gcc/tree-ssa.c | 15 | ||||
-rw-r--r-- | gcc/tree-tailcall.c | 4 |
6 files changed, 23 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7762083..06575e7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2005-05-08 Kazu Hirata <kazu@cs.umass.edu> + + * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC + instead of VARRAY. + * tree-flow.h (num_referenced_var, referenced_var): Likewise. + * tree-into-ssa.c (mark_def_site_blocks): Likewise. + * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise. + * tree-tailcall.c (suitable_for_tail_opt_p): Likewise. + 2005-05-08 Stephane Carrez <stcarrez@nerim.fr> PR target/16925 diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c index fa8ee86..6876a65 100644 --- a/gcc/tree-dfa.c +++ b/gcc/tree-dfa.c @@ -84,7 +84,7 @@ static void add_referenced_var (tree, struct walk_state *); /* Global declarations. */ /* Array of all variables referenced in the function. */ -varray_type referenced_vars; +VEC(tree,gc) *referenced_vars; /*--------------------------------------------------------------------------- @@ -558,7 +558,7 @@ add_referenced_var (tree var, struct walk_state *walk_state) if (slot) *slot = (void *) var; v_ann->uid = num_referenced_vars; - VARRAY_PUSH_TREE (referenced_vars, var); + VEC_safe_push (tree, gc, referenced_vars, var); /* Global variables are always call-clobbered. */ if (is_global_var (var)) diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index fc14564..f3e3334 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -406,10 +406,10 @@ static inline void set_phi_nodes (basic_block, tree); Global declarations ---------------------------------------------------------------------------*/ /* Array of all variables referenced in the function. */ -extern GTY(()) varray_type referenced_vars; +extern GTY(()) VEC(tree,gc) *referenced_vars; -#define num_referenced_vars VARRAY_ACTIVE_SIZE (referenced_vars) -#define referenced_var(i) VARRAY_TREE (referenced_vars, i) +#define num_referenced_vars VEC_length (tree, referenced_vars) +#define referenced_var(i) VEC_index (tree, referenced_vars, i) /* Array of all SSA_NAMEs used in the function. */ extern GTY(()) VEC(tree,gc) *ssa_names; diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c index 962e1c1..2e4c7f3 100644 --- a/gcc/tree-into-ssa.c +++ b/gcc/tree-into-ssa.c @@ -1668,7 +1668,7 @@ mark_def_site_blocks (sbitmap interesting_blocks) struct mark_def_sites_global_data mark_def_sites_global_data; /* Allocate memory for the DEF_BLOCKS hash table. */ - def_blocks = htab_create (VARRAY_ACTIVE_SIZE (referenced_vars), + def_blocks = htab_create (VEC_length (tree, referenced_vars), def_blocks_hash, def_blocks_eq, def_blocks_free); for (i = 0; i < num_referenced_vars; i++) diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index ac4e233..e4a5ba1 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -786,7 +786,7 @@ err: void init_tree_ssa (void) { - VARRAY_TREE_INIT (referenced_vars, 20, "referenced_vars"); + referenced_vars = VEC_alloc (tree, gc, 20); call_clobbered_vars = BITMAP_ALLOC (NULL); addressable_vars = BITMAP_ALLOC (NULL); init_ssanames (); @@ -827,16 +827,13 @@ delete_tree_ssa (void) } /* Remove annotations from every referenced variable. */ - if (referenced_vars) + for (i = 0; i < num_referenced_vars; i++) { - for (i = 0; i < num_referenced_vars; i++) - { - tree var = referenced_var (i); - ggc_free (var->common.ann); - var->common.ann = NULL; - } - referenced_vars = NULL; + tree var = referenced_var (i); + ggc_free (var->common.ann); + var->common.ann = NULL; } + VEC_free (tree, gc, referenced_vars); fini_ssanames (); fini_phinodes (); diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c index bdeaf9c..fd8aecc 100644 --- a/gcc/tree-tailcall.c +++ b/gcc/tree-tailcall.c @@ -139,9 +139,9 @@ suitable_for_tail_opt_p (void) /* No local variable nor structure field should be call-clobbered. We ignore any kind of memory tag, as these are not real variables. */ - for (i = 0; i < (int) VARRAY_ACTIVE_SIZE (referenced_vars); i++) + for (i = 0; i < (int) num_referenced_vars; i++) { - tree var = VARRAY_TREE (referenced_vars, i); + tree var = VEC_index (tree, referenced_vars, i); if (!(TREE_STATIC (var) || DECL_EXTERNAL (var)) && (var_ann (var)->mem_tag_kind == NOT_A_TAG |