diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-04-18 05:26:12 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-04-18 05:26:12 +0000 |
commit | edb7afe85b789b3783e3e7a5a0d84f41e9eb2348 (patch) | |
tree | ff651786f6b6c26df6f5b099b6f4c00550e248dd /gcc/cfgexpand.c | |
parent | 4f364038e71ee1af10da6b8218006346215f7275 (diff) | |
download | gcc-edb7afe85b789b3783e3e7a5a0d84f41e9eb2348.tar.gz |
* except.c (dw2_size_of_call_site_table,
sjlj_size_of_call_site_table): Use vector API for call_site_record.
* cgraphbuild.c (build_cgraph_edges): Update.
* tree-pass.h: Update comment.
* final.c (leaf_function_p): Update.
(leaf_renumber_regs): Update.
(rest_of_clean_state): Update.
* omp-low.c (expand_omp_parallel): Update.
* ipa-reference.c (analyze_function): Update.
* reorg.c (find_end_label): Update.
(optimize_skip): Update.
(fill_simple_delay_slots): Update.
(fill_simple_delay_slots): Update.
(make_return_insns): Update.
(dbr_schedule): Update.
* gimple-low.c (record_vars_into): Update.
* cfgbuild.c (make_edges): Update.
* function.c (assign_stack_local): Update.
(assign_parm_adjust_stack_rtl): Update.
(locate_and_pad_parm): Update.
(allocate_struct_function): Do not initialize stack_alignment_needed
and preferred_stack_boundary here.
(stack_protect_prologue): Update.
(stack_protect_epilogue): Update.
(expand_function_start): Initialize stack_alignment_needed,
preferred_stack_boundary and max_jumptable_ents.
(expand_function_end): Update.
(free_after_compilation): Do not NULLify epilogue_delay_list.
* function.h (struct rtl_data): Add stack_protect_guard,
stack_alignment_needed,
preferred_stack_boundary, epilogue_delay_list.
(struct function): Remove value_histograms, stack_alignment_needed,
preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
last_label_uid,
unexpanded_var_list, stack_protect_guard.
(current_function_epilogue_delay_list): Remove.
* ipa-type-escape.c (analyze_function): Update.
* gimplify.c (pop_gimplify_context): Update comment.
* calls.c (expand_call): Update.
(emit_library_call_value_1): Update.
* except.c (set_nothrow_function_flags): Update.
* cfgexpand.c (get_decl_align_unit): Update.
(create_stack_guard): Update.
(estimated_stack_frame_size): Update.
(expand_used_vars): Update.
(tree_expand_cfg): Free histogram earliers, init expansion variables.
* explow.c (allocate_dynamic_stack_space): Update.
* tree-ssa-live.c (remove_unused_locals): Update.
* varasm.c (mark_constant_pool): Update.
* tree-inline.c (remap_decls): Update.
(initialize_cfun): Update.
(declare_return_variable): Update.
(inline_forbidden_p): Update.
(expand_call_inline): Update.
(declare_inline_vars): Update.
(tree_function_versioning): Update.
* tree-flow.h (value_histograms): New.
(VALUE_HISTOGRAMS): New macro.
* basic-block.h (control_flow_graph): Add max_jumptable_ents,
last_label_uid.
* tree-cfg.c (set_bb_for_stmt): Update.
(replace_by_duplicate_decl): Update.
(move_block_to_fn): Update.
(new_label_mapper): Update.
(dump_function_to_file): Update.
* ipa-struct-reorg.c (build_data_structure): Update.
* cfgrtl.c (print_rtl_with_bb): Update.
* reload1.c (reload): Update.
(reload): Update.
* config/i386/i386.c (setup_incoming_varargs_64,
ix86_compute_frame_layout): Update.
* config/arc/arc.c (arc_output_function_epilogue): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134425 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r-- | gcc/cfgexpand.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index f50ab4ab964..00abf1e7e53 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -163,8 +163,8 @@ get_decl_align_unit (tree decl) align = LOCAL_ALIGNMENT (TREE_TYPE (decl), align); if (align > PREFERRED_STACK_BOUNDARY) align = PREFERRED_STACK_BOUNDARY; - if (cfun->stack_alignment_needed < align) - cfun->stack_alignment_needed = align; + if (crtl->stack_alignment_needed < align) + crtl->stack_alignment_needed = align; return align / BITS_PER_UNIT; } @@ -978,7 +978,7 @@ create_stack_guard (void) TREE_THIS_VOLATILE (guard) = 1; TREE_USED (guard) = 1; expand_one_stack_var (guard); - cfun->stack_protect_guard = guard; + crtl->stack_protect_guard = guard; } /* A subroutine of expand_used_vars. Walk down through the BLOCK tree @@ -1029,8 +1029,8 @@ static void init_vars_expansion (void) { tree t; - /* Set TREE_USED on all variables in the unexpanded_var_list. */ - for (t = cfun->unexpanded_var_list; t; t = TREE_CHAIN (t)) + /* Set TREE_USED on all variables in the local_decls. */ + for (t = cfun->local_decls; t; t = TREE_CHAIN (t)) TREE_USED (TREE_VALUE (t)) = 1; /* Clear TREE_USED on all variables associated with a block scope. */ @@ -1062,9 +1062,9 @@ estimated_stack_frame_size (void) init_vars_expansion (); - /* At this point all variables on the unexpanded_var_list with TREE_USED + /* At this point all variables on the local_decls with TREE_USED set are not associated with any block scope. Lay them out. */ - for (t = cfun->unexpanded_var_list; t; t = TREE_CHAIN (t)) + for (t = cfun->local_decls; t; t = TREE_CHAIN (t)) { tree var = TREE_VALUE (t); @@ -1113,9 +1113,9 @@ expand_used_vars (void) init_vars_expansion (); - /* At this point all variables on the unexpanded_var_list with TREE_USED + /* At this point all variables on the local_decls with TREE_USED set are not associated with any block scope. Lay them out. */ - for (t = cfun->unexpanded_var_list; t; t = TREE_CHAIN (t)) + for (t = cfun->local_decls; t; t = TREE_CHAIN (t)) { tree var = TREE_VALUE (t); bool expand_now = false; @@ -1148,7 +1148,7 @@ expand_used_vars (void) if (expand_now) expand_one_var (var, true, true); } - cfun->unexpanded_var_list = NULL_TREE; + cfun->local_decls = NULL_TREE; /* At this point, all variables within the block tree with TREE_USED set are actually used by the optimized function. Lay them out. */ @@ -1863,6 +1863,10 @@ tree_expand_cfg (void) discover_nonconstant_array_refs (); targetm.expand_to_rtl_hook (); + crtl->stack_alignment_needed = STACK_BOUNDARY; + crtl->preferred_stack_boundary = STACK_BOUNDARY; + cfun->cfg->max_jumptable_ents = 0; + /* Expand the variables recorded during gimple lowering. */ expand_used_vars (); @@ -1873,7 +1877,7 @@ tree_expand_cfg (void) if (current_function_calls_alloca) warning (OPT_Wstack_protector, "not protecting local variables: variable length buffer"); - if (has_short_buffer && !cfun->stack_protect_guard) + if (has_short_buffer && !crtl->stack_protect_guard) warning (OPT_Wstack_protector, "not protecting function: no buffer at least %d bytes long", (int) PARAM_VALUE (PARAM_SSP_BUFFER_SIZE)); @@ -1891,7 +1895,7 @@ tree_expand_cfg (void) /* Initialize the stack_protect_guard field. This must happen after the call to __main (if any) so that the external decl is initialized. */ - if (cfun->stack_protect_guard) + if (crtl->stack_protect_guard) stack_protect_prologue (); /* Register rtl specific functions for cfg. */ @@ -1908,6 +1912,7 @@ tree_expand_cfg (void) FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR, next_bb) bb = expand_gimple_basic_block (bb); pointer_map_destroy (lab_rtx_for_bb); + free_histograms (); construct_exit_block (); set_curr_insn_block (DECL_INITIAL (current_function_decl)); @@ -1971,7 +1976,6 @@ tree_expand_cfg (void) /* After expanding, the return labels are no longer needed. */ return_label = NULL; naked_return_label = NULL; - free_histograms (); /* Tag the blocks with a depth number so that change_scope can find the common parent easily. */ set_block_levels (DECL_INITIAL (cfun->decl), 0); |