[patch] local-alloc.c: Use VEC instead of VARRAY.
Kazu Hirata
kazu@codesourcery.com
Thu Apr 13 14:14:00 GMT 2006
Hi,
Attached is a patch to use VEC instead of VARRAY.
Tested on x86_64-pc-linux-gnu. Will check in in 24 hours of so as
preapproved.
Kazu Hirata
2006-04-13 Kazu Hirata <kazu@codesourcery.com>
* local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
of VARRAY.
* reload1.c (reg_equiv_memory_loc_varray): Rename to
reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
(init_reload, reload): Use VEC instead of VARRAY.
* reload.h: Update the prototype for
reg_equiv_memory_loc_varray.
Index: local-alloc.c
===================================================================
--- local-alloc.c (revision 112892)
+++ local-alloc.c (working copy)
@@ -2537,8 +2537,10 @@ rest_of_handle_local_alloc (void)
allocate_reg_info (max_regno, FALSE, TRUE);
/* And the reg_equiv_memory_loc array. */
- VARRAY_GROW (reg_equiv_memory_loc_varray, max_regno);
- reg_equiv_memory_loc = &VARRAY_RTX (reg_equiv_memory_loc_varray, 0);
+ VEC_safe_grow (rtx, gc, reg_equiv_memory_loc_vec, max_regno);
+ memset (VEC_address (rtx, reg_equiv_memory_loc_vec), 0,
+ sizeof (rtx) * max_regno);
+ reg_equiv_memory_loc = VEC_address (rtx, reg_equiv_memory_loc_vec);
allocate_initial_values (reg_equiv_memory_loc);
Index: reload.h
===================================================================
--- reload.h (revision 112892)
+++ reload.h (working copy)
@@ -155,7 +155,7 @@ extern struct reload rld[MAX_RELOADS];
extern int n_reloads;
#endif
-extern GTY (()) struct varray_head_tag *reg_equiv_memory_loc_varray;
+extern GTY (()) VEC(rtx,gc) *reg_equiv_memory_loc_vec;
extern rtx *reg_equiv_constant;
extern rtx *reg_equiv_invariant;
extern rtx *reg_equiv_memory_loc;
Index: reload1.c
===================================================================
--- reload1.c (revision 112892)
+++ reload1.c (working copy)
@@ -112,7 +112,7 @@ rtx *reg_equiv_memory_loc;
/* We allocate reg_equiv_memory_loc inside a varray so that the garbage
collector can keep track of what is inside. */
-varray_type reg_equiv_memory_loc_varray;
+VEC(rtx,gc) *reg_equiv_memory_loc_vec;
/* Element N is the address of stack slot to which pseudo reg N is equivalent.
This is used when the address is not valid as a memory address
@@ -496,7 +496,6 @@ init_reload (void)
INIT_REG_SET (&spilled_pseudos);
INIT_REG_SET (&pseudos_counted);
- VARRAY_RTX_INIT (reg_equiv_memory_loc_varray, 0, "reg_equiv_memory_loc");
}
/* List of insn chains that are currently unused. */
@@ -1251,7 +1250,7 @@ reload (rtx first, int global)
free (reg_equiv_invariant);
reg_equiv_constant = 0;
reg_equiv_invariant = 0;
- VARRAY_GROW (reg_equiv_memory_loc_varray, 0);
+ VEC_free (rtx, gc, reg_equiv_memory_loc_vec);
reg_equiv_memory_loc = 0;
if (offsets_known_at)
More information about the Gcc-patches
mailing list