/* Virtual array support.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
#ifdef GATHER_STATISTICS
-/* Store infromation about each particular varray. */
+/* Store information about each particular varray. */
struct varray_descriptor
{
const char *name;
{ sizeof (HOST_WIDE_INT), 1 },
{ sizeof (unsigned HOST_WIDE_INT), 1 },
{ sizeof (void *), 1 },
+ { sizeof (void *), 0 },
{ sizeof (char *), 1 },
{ sizeof (struct rtx_def *), 1 },
{ sizeof (struct rtvec_def *), 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 basic_block_def *), 1 },
{ sizeof (struct elt_list *), 1 },
+ { sizeof (struct edge_def *), 1 },
+ { sizeof (tree *), 1 },
};
/* Allocate a virtual array with NUM_ELEMENT elements, each of which is
#endif
+
+/* Copy varray V2 into varray V1. Both arrays must be the same size
+ and type. */
+
+void
+varray_copy (varray_type v1, varray_type v2)
+{
+ size_t data_size;
+
+ if (v1->type != v2->type)
+ abort ();
+
+ if (v1->num_elements != v2->num_elements)
+ abort ();
+
+ data_size = element[v2->type].size * v2->num_elements;
+ memcpy (v1->data.c, v2->data.c, data_size);
+ v1->elements_used = v2->elements_used;
+}
+
/* Output per-varray statistics. */
#ifdef GATHER_STATISTICS