tree-dfa.c (referenced_vars, [...]): Use VEC instead of VARRAY.
authorKazu Hirata <kazu@cs.umass.edu>
Sun, 8 May 2005 15:07:23 +0000 (15:07 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Sun, 8 May 2005 15:07:23 +0000 (15:07 +0000)
* 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

gcc/ChangeLog
gcc/tree-dfa.c
gcc/tree-flow.h
gcc/tree-into-ssa.c
gcc/tree-ssa.c
gcc/tree-tailcall.c

index 7762083d29c24c6c9f9cf5b76ce6f8e3da4b0ffd..06575e79820afdf91fbd654a2ab9449ca8e4fa84 100644 (file)
@@ -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
index fa8ee86083f56c0b71a0a1fc35579e0c46abeaee..6876a65ba82bbcbfa68e5219eb919d7918d5ff17 100644 (file)
@@ -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))
index fc1456488d2cb5908843a150b08f85e8f7d6646c..f3e3334e34287a9bf9e49260198633f424d8bf24 100644 (file)
@@ -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;
index 962e1c1a7f1790232525e5be1923de29a56c4e6a..2e4c7f35d3d84db906bdc74191067c8ea04ba9bb 100644 (file)
@@ -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++)
index ac4e23353595b685ac002c0e84e99bfeb744b62c..e4a5ba1d8a34dd11fcc8cc457388b13b2a0561b8 100644 (file)
@@ -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 ();
index bdeaf9cfaf99cca626d940e274a79b3d527d7cb8..fd8aecc8ce0785ca28dd7a8f11e412751a7cf7e2 100644 (file)
@@ -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