OSDN Git Service

* Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Apr 2006 17:19:23 +0000 (17:19 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Apr 2006 17:19:23 +0000 (17:19 +0000)
* tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
tpa_compact, root_var_init, type_var_init): Use VEC instead of
VARRAY.
* tree-ssa-live.h: Include vecprim.h.
(tree_partition_associator_d): Change the type of
first_partition to VEC(int,heap) *.
(tpa_first_partition): Use VEC instead of VARRAY.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112893 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/Makefile.in
gcc/tree-ssa-live.c
gcc/tree-ssa-live.h

index 040d8c7..d540abd 100644 (file)
@@ -1,3 +1,14 @@
+2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
+
+       * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
+       * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
+       tpa_compact, root_var_init, type_var_init): Use VEC instead of
+       VARRAY.
+       * tree-ssa-live.h: Include vecprim.h.
+       (tree_partition_associator_d): Change the type of
+       first_partition to VEC(int,heap) *.
+       (tpa_first_partition): Use VEC instead of VARRAY.
+
 2006-04-12  Roger Sayle  <roger@eyesopen.com>
 
        * expr.c (emit_group_store): Correct operand order in call to
index 48f4ddf..67fdd77 100644 (file)
@@ -787,7 +787,7 @@ TREE_GIMPLE_H = tree-gimple.h tree-iterator.h
 TREE_FLOW_H = tree-flow.h tree-flow-inline.h tree-ssa-operands.h \
                bitmap.h $(BASIC_BLOCK_H) hard-reg-set.h $(TREE_GIMPLE_H) \
                $(HASHTAB_H) $(CGRAPH_H) $(IPA_REFERENCE_H)
-TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H)
+TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H) vecprim.h
 PRETTY_PRINT_H = pretty-print.h input.h $(OBSTACK_H)
 DIAGNOSTIC_H = diagnostic.h diagnostic.def $(PRETTY_PRINT_H) options.h
 C_PRETTY_PRINT_H = c-pretty-print.h $(PRETTY_PRINT_H) $(C_COMMON_H) $(TREE_H)
index 84abc96..a5fe403 100644 (file)
@@ -882,7 +882,7 @@ tpa_init (var_map map)
 
   x = MAX (40, (num_partitions / 20));
   tpa->trees = VEC_alloc (tree, heap, x);
-  VARRAY_INT_INIT (tpa->first_partition, x, "first_partition");
+  tpa->first_partition = VEC_alloc (int, heap, x);
 
   return tpa;
 
@@ -899,7 +899,8 @@ tpa_remove_partition (tpa_p tpa, int tree_index, int partition_index)
   i = tpa_first_partition (tpa, tree_index);
   if (i == partition_index)
     {
-      VARRAY_INT (tpa->first_partition, tree_index) = tpa->next_partition[i];
+      VEC_replace (int, tpa->first_partition, tree_index,
+                  tpa->next_partition[i]);
     }
   else
     {
@@ -924,6 +925,7 @@ tpa_delete (tpa_p tpa)
     return;
 
   VEC_free (tree, heap, tpa->trees);
+  VEC_free (int, heap, tpa->first_partition);
   free (tpa->partition_to_tree_map);
   free (tpa->next_partition);
   free (tpa);
@@ -958,20 +960,20 @@ tpa_compact (tpa_p tpa)
       if (tpa_next_partition (tpa, first) == NO_PARTITION)
         {
          swap_t = VEC_index (tree, tpa->trees, last);
-         swap_i = VARRAY_INT (tpa->first_partition, last);
+         swap_i = VEC_index (int, tpa->first_partition, last);
 
          /* Update the last entry. Since it is known to only have one
             partition, there is nothing else to update.  */
          VEC_replace (tree, tpa->trees, last,
                       VEC_index (tree, tpa->trees, x));
-         VARRAY_INT (tpa->first_partition, last) 
-           = VARRAY_INT (tpa->first_partition, x);
+         VEC_replace (int, tpa->first_partition, last,
+                      VEC_index (int, tpa->first_partition, x));
          tpa->partition_to_tree_map[tpa_first_partition (tpa, last)] = last;
 
          /* Since this list is known to have more than one partition, update
             the list owner entries.  */
          VEC_replace (tree, tpa->trees, x, swap_t);
-         VARRAY_INT (tpa->first_partition, x) = swap_i;
+         VEC_replace (int, tpa->first_partition, x, swap_i);
          for (y = tpa_first_partition (tpa, x); 
               y != NO_PARTITION; 
               y = tpa_next_partition (tpa, y))
@@ -1041,16 +1043,16 @@ root_var_init (var_map map)
       ann = var_ann (t);
       if (ann->root_var_processed)
         {
-         rv->next_partition[p] = VARRAY_INT (rv->first_partition, 
-                                             VAR_ANN_ROOT_INDEX (ann));
-         VARRAY_INT (rv->first_partition, VAR_ANN_ROOT_INDEX (ann)) = p;
+         rv->next_partition[p] = VEC_index (int, rv->first_partition, 
+                                            VAR_ANN_ROOT_INDEX (ann));
+         VEC_replace (int, rv->first_partition, VAR_ANN_ROOT_INDEX (ann), p);
        }
       else
         {
          ann->root_var_processed = 1;
          VAR_ANN_ROOT_INDEX (ann) = rv->num_trees++;
          VEC_safe_push (tree, heap, rv->trees, t);
-         VARRAY_PUSH_INT (rv->first_partition, p);
+         VEC_safe_push (int, heap, rv->first_partition, p);
        }
       rv->partition_to_tree_map[p] = VAR_ANN_ROOT_INDEX (ann);
     }
@@ -1120,12 +1122,12 @@ type_var_init (var_map map)
         {
          tv->num_trees++;
          VEC_safe_push (tree, heap, tv->trees, t);
-         VARRAY_PUSH_INT (tv->first_partition, p);
+         VEC_safe_push (int, heap, tv->first_partition, p);
        }
       else
         {
-         tv->next_partition[p] = VARRAY_INT (tv->first_partition, y);
-         VARRAY_INT (tv->first_partition, y) = p;
+         tv->next_partition[p] = VEC_index (int, tv->first_partition, y);
+         VEC_replace (int, tv->first_partition, y, p);
        }
       tv->partition_to_tree_map[p] = y;
     }
index 2c41274..f0c5902 100644 (file)
@@ -24,6 +24,7 @@ Boston, MA 02110-1301, USA.  */
 #define _TREE_SSA_LIVE_H 1
 
 #include "partition.h"
+#include "vecprim.h"
 
 /* Used to create the variable mapping when we go out of SSA form.  */
 typedef struct _var_map
@@ -338,7 +339,7 @@ make_live_on_entry (tree_live_info_p live, basic_block bb , int p)
 typedef struct tree_partition_associator_d
 {
   VEC(tree,heap) *trees;
-  varray_type first_partition;
+  VEC(int,heap) *first_partition;
   int *next_partition;
   int *partition_to_tree_map;
   int num_trees;
@@ -384,7 +385,7 @@ tpa_tree (tpa_p tpa, int i)
 static inline int
 tpa_first_partition (tpa_p tpa, int i)
 {
-  return VARRAY_INT (tpa->first_partition, i);
+  return VEC_index (int, tpa->first_partition, i);
 }