aboutsummaryrefslogtreecommitdiff
path: root/gcc/varray.h
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@gcc.gnu.org>2004-05-13 02:41:07 -0400
committerDiego Novillo <dnovillo@gcc.gnu.org>2004-05-13 02:41:07 -0400
commit6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f (patch)
treea2568888a519c077427b133de9ece5879a8484a5 /gcc/varray.h
parentac1a20aec53364d77f3bdff94a2a0a06840e0fe9 (diff)
downloadgcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.zip
gcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.tar.gz
gcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.tar.bz2
Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
Diffstat (limited to 'gcc/varray.h')
-rw-r--r--gcc/varray.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/varray.h b/gcc/varray.h
index 57a3711..371e4e7 100644
--- a/gcc/varray.h
+++ b/gcc/varray.h
@@ -72,6 +72,7 @@ enum varray_data_enum {
VARRAY_DATA_HINT,
VARRAY_DATA_UHINT,
VARRAY_DATA_GENERIC,
+ VARRAY_DATA_GENERIC_NOGC,
VARRAY_DATA_CPTR,
VARRAY_DATA_RTX,
VARRAY_DATA_RTVEC,
@@ -81,6 +82,8 @@ enum varray_data_enum {
VARRAY_DATA_CONST_EQUIV,
VARRAY_DATA_BB,
VARRAY_DATA_TE,
+ VARRAY_DATA_EDGE,
+ VARRAY_DATA_TREE_PTR,
NUM_VARRAY_DATA
};
@@ -108,6 +111,8 @@ typedef union varray_data_tag GTY (()) {
tag ("VARRAY_DATA_UHINT"))) uhint[1];
PTR GTY ((length ("%0.num_elements"), use_param,
tag ("VARRAY_DATA_GENERIC"))) generic[1];
+ PTR GTY ((length ("%0.num_elements"), skip (""),
+ tag ("VARRAY_DATA_GENERIC_NOGC"))) generic_nogc[1];
char *GTY ((length ("%0.num_elements"),
tag ("VARRAY_DATA_CPTR"))) cptr[1];
rtx GTY ((length ("%0.num_elements"),
@@ -126,6 +131,10 @@ typedef union varray_data_tag GTY (()) {
tag ("VARRAY_DATA_BB"))) bb[1];
struct elt_list *GTY ((length ("%0.num_elements"),
tag ("VARRAY_DATA_TE"))) te[1];
+ struct edge_def *GTY ((length ("%0.num_elements"),
+ tag ("VARRAY_DATA_EDGE"))) e[1];
+ tree *GTY ((length ("%0.num_elements"), skip (""),
+ tag ("VARRAY_DATA_TREE_PTR"))) tp[1];
} varray_data;
/* Virtual array of pointers header. */
@@ -177,6 +186,9 @@ extern varray_type varray_init (size_t, enum varray_data_enum, const char *);
#define VARRAY_GENERIC_PTR_INIT(va, num, name) \
va = varray_init (num, VARRAY_DATA_GENERIC, name)
+#define VARRAY_GENERIC_PTR_NOGC_INIT(va, num, name) \
+ va = varray_init (num, VARRAY_DATA_GENERIC_NOGC, name)
+
#define VARRAY_CHAR_PTR_INIT(va, num, name) \
va = varray_init (num, VARRAY_DATA_CPTR, name)
@@ -204,6 +216,12 @@ extern varray_type varray_init (size_t, enum varray_data_enum, const char *);
#define VARRAY_ELT_LIST_INIT(va, num, name) \
va = varray_init (num, VARRAY_DATA_TE, name)
+#define VARRAY_EDGE_INIT(va, num, name) \
+ va = varray_init (num, VARRAY_DATA_EDGE, name)
+
+#define VARRAY_TREE_PTR_INIT(va, num, name) \
+ va = varray_init (num, VARRAY_DATA_TREE_PTR, name)
+
/* Free up memory allocated by the virtual array, but do not free any of the
elements involved. */
#define VARRAY_FREE(vp) \
@@ -222,6 +240,7 @@ extern varray_type varray_grow (varray_type, size_t);
#define VARRAY_CLEAR(VA) varray_clear(VA)
extern void varray_clear (varray_type);
+extern void varray_copy (varray_type v1, varray_type v2);
extern void dump_varray_statistics (void);
@@ -274,6 +293,7 @@ extern void varray_underflow (varray_type, const char *, int, const char *)
#define VARRAY_WIDE_INT(VA, N) VARRAY_CHECK (VA, N, hint)
#define VARRAY_UWIDE_INT(VA, N) VARRAY_CHECK (VA, N, uhint)
#define VARRAY_GENERIC_PTR(VA,N) VARRAY_CHECK (VA, N, generic)
+#define VARRAY_GENERIC_PTR_NOGC(VA,N) VARRAY_CHECK (VA, N, generic_nogc)
#define VARRAY_CHAR_PTR(VA,N) VARRAY_CHECK (VA, N, cptr)
#define VARRAY_RTX(VA, N) VARRAY_CHECK (VA, N, rtx)
#define VARRAY_RTVEC(VA, N) VARRAY_CHECK (VA, N, rtvec)
@@ -283,6 +303,8 @@ extern void varray_underflow (varray_type, const char *, int, const char *)
#define VARRAY_CONST_EQUIV(VA, N) VARRAY_CHECK (VA, N, const_equiv)
#define VARRAY_BB(VA, N) VARRAY_CHECK (VA, N, bb)
#define VARRAY_ELT_LIST(VA, N) VARRAY_CHECK (VA, N, te)
+#define VARRAY_EDGE(VA, N) VARRAY_CHECK (VA, N, e)
+#define VARRAY_TREE_PTR(VA, N) VARRAY_CHECK (VA, N, tp)
/* Push a new element on the end of VA, extending it if necessary. */
#define VARRAY_PUSH_CHAR(VA, X) VARRAY_PUSH (VA, c, X)
@@ -296,6 +318,7 @@ extern void varray_underflow (varray_type, const char *, int, const char *)
#define VARRAY_PUSH_WIDE_INT(VA, X) VARRAY_PUSH (VA, hint, X)
#define VARRAY_PUSH_UWIDE_INT(VA, X) VARRAY_PUSH (VA, uhint, X)
#define VARRAY_PUSH_GENERIC_PTR(VA, X) VARRAY_PUSH (VA, generic, X)
+#define VARRAY_PUSH_GENERIC_PTR_NOGC(VA, X) VARRAY_PUSH (VA, generic_nogc, X)
#define VARRAY_PUSH_CHAR_PTR(VA, X) VARRAY_PUSH (VA, cptr, X)
#define VARRAY_PUSH_RTX(VA, X) VARRAY_PUSH (VA, rtx, X)
#define VARRAY_PUSH_RTVEC(VA, X) VARRAY_PUSH (VA, rtvec, X)
@@ -304,6 +327,8 @@ extern void varray_underflow (varray_type, const char *, int, const char *)
#define VARRAY_PUSH_REG(VA, X) VARRAY_PUSH (VA, reg, X)
#define VARRAY_PUSH_CONST_EQUIV(VA, X) VARRAY_PUSH (VA, const_equiv, X)
#define VARRAY_PUSH_BB(VA, X) VARRAY_PUSH (VA, bb, X)
+#define VARRAY_PUSH_EDGE(VA, X) VARRAY_PUSH (VA, e, X)
+#define VARRAY_PUSH_TREE_PTR(VA, X) VARRAY_PUSH (VA, tp, X)
/* Return the last element of VA. */
#define VARRAY_TOP(VA, T) VARRAY_CHECK(VA, (VA)->elements_used - 1, T)
@@ -319,6 +344,7 @@ extern void varray_underflow (varray_type, const char *, int, const char *)
#define VARRAY_TOP_WIDE_INT(VA) VARRAY_TOP (VA, hint)
#define VARRAY_TOP_UWIDE_INT(VA) VARRAY_TOP (VA, uhint)
#define VARRAY_TOP_GENERIC_PTR(VA) VARRAY_TOP (VA, generic)
+#define VARRAY_TOP_GENERIC_PTR_NOGC(VA) VARRAY_TOP (VA, generic_nogc)
#define VARRAY_TOP_CHAR_PTR(VA) VARRAY_TOP (VA, cptr)
#define VARRAY_TOP_RTX(VA) VARRAY_TOP (VA, rtx)
#define VARRAY_TOP_RTVEC(VA) VARRAY_TOP (VA, rtvec)
@@ -327,5 +353,7 @@ extern void varray_underflow (varray_type, const char *, int, const char *)
#define VARRAY_TOP_REG(VA) VARRAY_TOP (VA, reg)
#define VARRAY_TOP_CONST_EQUIV(VA) VARRAY_TOP (VA, const_equiv)
#define VARRAY_TOP_BB(VA) VARRAY_TOP (VA, bb)
+#define VARRAY_TOP_EDGE(VA) VARRAY_TOP (VA, e)
+#define VARRAY_TOP_TREE_PTR(VA) VARRAY_TOP (VA, tp)
#endif /* ! GCC_VARRAY_H */