[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