OSDN Git Service

2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / vec.c
index b8c5a32..01faf52 100644 (file)
--- a/gcc/vec.c
+++ b/gcc/vec.c
@@ -39,10 +39,11 @@ struct vec_prefix
    exponentially.  VEC can be NULL, to create a new vector.  */
 
 void *
-vec_p_reserve (void *vec, size_t reserve)
+vec_p_reserve (void *vec, size_t reserve MEM_STAT_DECL)
 {
   return vec_o_reserve (vec, reserve,
-                       offsetof (struct vec_prefix, vec), sizeof (void *));
+                       offsetof (struct vec_prefix, vec), sizeof (void *)
+                       PASS_MEM_STAT);
 }
 
 /* Ensure there are at least RESERVE free slots in VEC, if RESERVE !=
@@ -52,7 +53,8 @@ vec_p_reserve (void *vec, size_t reserve)
    consistes of ELT_SIZE sized elements.  */
 
 void *
-vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size)
+vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size
+              MEM_STAT_DECL)
 {
   struct vec_prefix *pfx = vec;
   size_t alloc;
@@ -64,7 +66,8 @@ vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size)
   
   if (!pfx || pfx->alloc < alloc)
     {
-      vec = ggc_realloc (vec, vec_offset + alloc * elt_size);
+      vec = ggc_realloc_stat (vec, vec_offset + alloc * elt_size
+                             PASS_MEM_STAT);
       ((struct vec_prefix *)vec)->alloc = alloc;
       if (!pfx)
        ((struct vec_prefix *)vec)->num = 0;
@@ -73,23 +76,6 @@ vec_o_reserve (void *vec, size_t reserve, size_t vec_offset, size_t elt_size)
   return vec;
 }
 
-/* Allocate a structure which contains a vector as a trailing element.
-   The vector is at STRUCT_OFFSET offset within the struct and the
-   vector's array is at VEC_OFFSET offset within the vector.  */
-
-void *
-vec_embedded_alloc (size_t struct_offset, size_t vec_offset,
-                   size_t elt_size, size_t reserve)
-{
-  void *ptr = ggc_alloc (struct_offset + vec_offset + elt_size * reserve);
-  struct vec_prefix *pfx = (struct vec_prefix *)((char *)ptr + struct_offset);
-
-  pfx->num = 0;
-  pfx->alloc = reserve;
-
-  return ptr;
-}
-
 #if ENABLE_CHECKING
 /* Issue a vector domain error, and then fall over.  */