aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2008-03-31 19:08:31 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2008-03-31 17:08:31 +0000
commitbd60bab2ad76a635640db0101275111be8b04987 (patch)
tree484f1e4819fe26e37e4e3754778504623c82e3b4 /gcc/varasm.c
parent2566855a60b790dd23a7375319e7dc0ec7886cee (diff)
downloadgcc-bd60bab2ad76a635640db0101275111be8b04987.zip
gcc-bd60bab2ad76a635640db0101275111be8b04987.tar.gz
gcc-bd60bab2ad76a635640db0101275111be8b04987.tar.bz2
builtins.c (expand_builtin_setjmp_receiver): Update call of get_arg_pointer_save_area.
* builtins.c (expand_builtin_setjmp_receiver): Update call of get_arg_pointer_save_area. * expr.c (init_expr): Just clear out rtl.expr. * function.c (free_after_compilation): Clear out whole RTL structure. (get_func_frame_size): Merge into ... (get_frame_size): ... this one. (assign_stack_local_1): Merge into ... (assign_stack_local): ... this one. (expand_function_end): Update call of get_arg_pointer_save_area. (get_art_pointer_save_area): Remove cfun argument. * function.h (emit_status): regno_pointer_align does not need length attribute. Move x_regno_reg_rtx to ... (regno_reg_rtx): ... new global array. (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors. (pending_stack_adjust, inhibit_defer_pop, saveregs_value, apply_args_value, forced_labels, stack_pointer_delta): Update accestors. (struct varasm_status): Move here from varasm.c (struct rtl_data): New. Move here some fields from struct function. (return_label, naked_return_label, stack_slot_list, parm_birth_insn, frame_offset, stack_check_probe_note, arg_pointer_save_area, used_temp_slots avail_temp_slots, temp_slot_level, nonlocal_goto_handler_labels): Update accesstors. (rtl): New global variable. (struct function): Move some fileds to rtl_data. (get_arg_pointer_save_area): Update prototype. * emit-rtl.c (rtl): Declare. (regno_reg_rtx): Declare. (first_insn, last_insn, cur_insn_uid, last_location, first_label_num): Update. (gen_reg_rtx): Update. (init_virtual_regs): Do not tate emit_status argument. (init_emit): Do not allocate emit. * varasm.c (varasm_statuc): Move to function.h. (n_deferred_constatns): Update accestor. (init_varasm_status): Do not allocate varasm_status. (force_const_mem, get_pool_size, output_constant_pool): Update. * stmt.c (force_label_rtx): Do not use x_ prefixes. (expand_nl_goto_receiver): Update get_arg_pointer_save_area. From-SVN: r133759
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c29
1 files changed, 7 insertions, 22 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index b4ff7fe..f4607b4 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -70,17 +70,7 @@ struct addr_const;
struct constant_descriptor_rtx;
struct rtx_constant_pool;
-struct varasm_status GTY(())
-{
- /* If we're using a per-function constant pool, this is it. */
- struct rtx_constant_pool *pool;
-
- /* Number of tree-constants deferred during the expansion of this
- function. */
- unsigned int deferred_constants;
-};
-
-#define n_deferred_constants (cfun->varasm->deferred_constants)
+#define n_deferred_constants (rtl.varasm.deferred_constants)
/* Number for making the label on the next
constant that is stored in memory. */
@@ -3464,15 +3454,10 @@ create_constant_pool (void)
/* Initialize constant pool hashing for a new function. */
void
-init_varasm_status (struct function *f)
+init_varasm_status (void)
{
- struct varasm_status *p;
-
- p = ggc_alloc (sizeof (struct varasm_status));
- f->varasm = p;
-
- p->pool = create_constant_pool ();
- p->deferred_constants = 0;
+ rtl.varasm.pool = create_constant_pool ();
+ rtl.varasm.deferred_constants = 0;
}
/* Given a MINUS expression, simplify it if both sides
@@ -3509,7 +3494,7 @@ force_const_mem (enum machine_mode mode, rtx x)
/* Decide which pool to use. */
pool = (targetm.use_blocks_for_constant_p (mode, x)
? shared_constant_pool
- : cfun->varasm->pool);
+ : rtl.varasm.pool);
/* Lookup the value in the hashtable. */
tmp.constant = x;
@@ -3621,7 +3606,7 @@ get_pool_mode (const_rtx addr)
int
get_pool_size (void)
{
- return cfun->varasm->pool->offset;
+ return rtl.varasm.pool->offset;
}
/* Worker function for output_constant_pool_1. Emit assembly for X
@@ -3863,7 +3848,7 @@ static void
output_constant_pool (const char *fnname ATTRIBUTE_UNUSED,
tree fndecl ATTRIBUTE_UNUSED)
{
- struct rtx_constant_pool *pool = cfun->varasm->pool;
+ struct rtx_constant_pool *pool = rtl.varasm.pool;
/* It is possible for gcc to call force_const_mem and then to later
discard the instructions which refer to the constant. In such a