OSDN Git Service

* varray.c (element_size): Remove.
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Feb 2003 00:41:28 +0000 (00:41 +0000)
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Feb 2003 00:41:28 +0000 (00:41 +0000)
(uses_ggc): Remove.
(element): Add.
(varray_init): Use new interface.
(varray_grow): Use new interface.
(varray_clear): Use new interface.

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

gcc/ChangeLog
gcc/varray.c
gcc/varray.h

index 491b1ef..0623ea4 100644 (file)
@@ -1,3 +1,12 @@
+2003-02-12  Mike Stump  <mrs@apple.com>
+
+       * varray.c (element_size): Remove.
+       (uses_ggc): Remove.
+       (element): Add.
+       (varray_init): Use new interface.
+       (varray_grow): Use new interface.
+       (varray_clear): Use new interface.
+
 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
 
         * config/rs6000/spe.h: Add casts to the arguments of the following
index 877c1a3..8eb6a62 100644 (file)
 
 #define VARRAY_HDR_SIZE (sizeof (struct varray_head_tag) - sizeof (varray_data))
 
-static const size_t element_size[NUM_VARRAY_DATA] = {
-  sizeof (char),
-  sizeof (unsigned char),
-  sizeof (short),
-  sizeof (unsigned short),
-  sizeof (int),
-  sizeof (unsigned int),
-  sizeof (long),
-  sizeof (unsigned long),
-  sizeof (HOST_WIDE_INT),
-  sizeof (unsigned HOST_WIDE_INT),
-  sizeof (PTR),
-  sizeof (char *),
-  sizeof (struct rtx_def *),
-  sizeof (struct rtvec_def *),
-  sizeof (union tree_node *),
-  sizeof (struct bitmap_head_def *),
-  sizeof (struct reg_info_def *),
-  sizeof (struct const_equiv_data),
-  sizeof (struct basic_block_def *),
-  sizeof (struct elt_list *)
-};
-
-static const int uses_ggc[NUM_VARRAY_DATA] = {
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* unsigned HOST_WIDE_INT */
-  1, /* PTR */
-  1, 1, 1, 1, 1, /* bitmap_head_def */
-  0, 0, 0, 1
+/* Do not add any more non-GC items here.  Please either remove or GC those items that
+   are not GCed.  */
+
+static const struct {
+  unsigned char size;
+  bool uses_ggc;
+} element[NUM_VARRAY_DATA] = {
+  { sizeof (char), 1 },
+  { sizeof (unsigned char), 1 },
+  { sizeof (short), 1 },
+  { sizeof (unsigned short), 1 },
+  { sizeof (int), 1 },
+  { sizeof (unsigned int), 1 },
+  { sizeof (long), 1 },
+  { sizeof (unsigned long), 1 },
+  { sizeof (HOST_WIDE_INT), 1 },
+  { sizeof (unsigned HOST_WIDE_INT), 1 },
+  { sizeof (PTR), 1 },
+  { sizeof (char *), 1 },
+  { sizeof (struct rtx_def *), 1 },
+  { sizeof (struct rtvec_def *), 1 },
+  { sizeof (union tree_node *), 1 },
+  { sizeof (struct bitmap_head_def *), 1 },
+  { sizeof (struct reg_info_def *), 0 },
+  { sizeof (struct const_equiv_data), 0 },
+  { sizeof (struct basic_block_def *), 0 },
+  { sizeof (struct elt_list *), 1 },
 };
 
 /* Allocate a virtual array with NUM_ELEMENT elements, each of which is
@@ -67,9 +66,9 @@ varray_init (num_elements, element_kind, name)
      enum varray_data_enum element_kind;
      const char *name;
 {
-  size_t data_size = num_elements * element_size[element_kind];
+  size_t data_size = num_elements * element[element_kind].size;
   varray_type ptr;
-  if (uses_ggc [element_kind])
+  if (element[element_kind].uses_ggc)
     ptr = (varray_type) ggc_alloc_cleared (VARRAY_HDR_SIZE + data_size);
   else
     ptr = (varray_type) xcalloc (VARRAY_HDR_SIZE + data_size, 1);
@@ -92,11 +91,11 @@ varray_grow (va, n)
 
   if (n != old_elements)
     {
-      size_t elem_size = element_size[va->type];
+      size_t elem_size = element[va->type].size;
       size_t old_data_size = old_elements * elem_size;
       size_t data_size = n * elem_size;
 
-      if (uses_ggc[va->type])
+      if (element[va->type].uses_ggc)
        va = (varray_type) ggc_realloc (va, VARRAY_HDR_SIZE + data_size);
       else
        va = (varray_type) xrealloc ((char *) va, VARRAY_HDR_SIZE + data_size);
@@ -113,7 +112,7 @@ void
 varray_clear (va)
      varray_type va;
 {
-  size_t data_size = element_size[va->type] * va->num_elements;
+  size_t data_size = element[va->type].size * va->num_elements;
 
   memset (va->data.c, 0, data_size);
   va->elements_used = 0;
index a16b980..7351c2a 100644 (file)
@@ -57,7 +57,7 @@ struct const_equiv_data GTY(()) {
 };
 
 /* Enum indicating what the varray contains.  
-   If this is changed, `element_size' in varray.c needs to be updated.  */
+   If this is changed, `element' in varray.c needs to be updated.  */
 
 enum varray_data_enum {
   VARRAY_DATA_C,