diff options
-rw-r--r-- | gcc/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/calls.c | 2 | ||||
-rw-r--r-- | gcc/cfgexpand.c | 2 | ||||
-rw-r--r-- | gcc/function.c | 11 | ||||
-rw-r--r-- | gcc/function.h | 11 | ||||
-rw-r--r-- | gcc/integrate.c | 7 | ||||
-rw-r--r-- | gcc/stmt.c | 2 | ||||
-rw-r--r-- | gcc/tree.h | 2 |
8 files changed, 19 insertions, 33 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9ddb7a7..12144e8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +2004-07-01 Richard Henderson <rth@redhat.com> + + * function.h (struct function): Remove x_function_call_count. + (function_call_count): Remove. + * calls.c (expand_call): Don't set it. + * integrate.c (copy_rtx_and_substitute): Likewise. + + * function.h (struct function): Remove x_cleanup_label. + (cleanup_label): Remove. + * stmt.c (expand_value_return): Don't use it. + * function.c (free_after_compilation): Don't set it. + (expand_function_start): Likewise. Remove parms_have_cleanups arg. + * cfgexpand.c (tree_expand_cfg): Update call. + * tree.h (expand_function_start): Update decl. + 2004-07-01 Joseph S. Myers <jsm@polyomino.org.uk> PR c/1027 diff --git a/gcc/calls.c b/gcc/calls.c index ccefb54..43966a6 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2488,8 +2488,6 @@ expand_call (tree exp, rtx target, int ignore) preferred_unit_stack_boundary = preferred_stack_boundary / BITS_PER_UNIT; - function_call_count++; - /* We want to make two insn chains; one for a sibling call, the other for a normal call. We will select one of the two chains after initial RTL generation is complete. */ diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 4227b98..ac76ca3 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -419,7 +419,7 @@ tree_expand_cfg (void) expand_used_vars (); /* Set up parameters and prepare for return, for the function. */ - expand_function_start (current_function_decl, 0); + expand_function_start (current_function_decl); /* If this function is `main', emit a call to `__main' to run global initializers, etc. */ diff --git a/gcc/function.c b/gcc/function.c index 7cfb1aa..aa6cdad 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -436,7 +436,6 @@ free_after_compilation (struct function *f) f->return_rtx = NULL; f->internal_arg_pointer = NULL; f->x_nonlocal_goto_handler_labels = NULL; - f->x_cleanup_label = NULL; f->x_return_label = NULL; f->x_naked_return_label = NULL; f->x_save_expr_regs = NULL; @@ -6310,7 +6309,7 @@ expand_pending_sizes (tree pending_sizes) the function's parameters, which must be run at any return statement. */ void -expand_function_start (tree subr, int parms_have_cleanups) +expand_function_start (tree subr) { /* Make sure volatile mem refs aren't considered valid operands of arithmetic insns. */ @@ -6323,14 +6322,6 @@ expand_function_start (tree subr, int parms_have_cleanups) current_function_limit_stack = (stack_limit_rtx != NULL_RTX && ! DECL_NO_LIMIT_STACK (subr)); - /* If the parameters of this function need cleaning up, get a label - for the beginning of the code which executes those cleanups. This must - be done before doing anything with return_label. */ - if (parms_have_cleanups) - cleanup_label = gen_label_rtx (); - else - cleanup_label = 0; - /* Make the label for return statements to jump to. Do not special case machines with special return instructions -- they will be handled later during jump, ifcvt, or epilogue creation. */ diff --git a/gcc/function.h b/gcc/function.h index ca15492..64c02d0 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -236,19 +236,10 @@ struct function GTY(()) has_hard_reg_initial_val (see integrate.[hc]). */ struct initial_value_struct *hard_reg_initial_vals; - /* Number of function calls seen so far in current function. */ - int x_function_call_count; - /* List (chain of EXPR_LIST) of labels heading the current handlers for nonlocal gotos. */ rtx x_nonlocal_goto_handler_labels; - /* Label that will go on parm cleanup code, if any. - Jumping to this label runs cleanup code for parameters, if - such code must be run. Following this code is the logical return - label. */ - rtx x_cleanup_label; - /* Label that will go on function epilogue. Jumping to this label serves as a "return" instruction on machines which require execution of the epilogue on all returns. */ @@ -523,7 +514,6 @@ extern int trampolines_created; #define max_parm_reg (cfun->x_max_parm_reg) #define parm_reg_stack_loc (cfun->x_parm_reg_stack_loc) -#define cleanup_label (cfun->x_cleanup_label) #define return_label (cfun->x_return_label) #define naked_return_label (cfun->x_naked_return_label) #define save_expr_regs (cfun->x_save_expr_regs) @@ -533,7 +523,6 @@ extern int trampolines_created; #define tail_recursion_reentry (cfun->x_tail_recursion_reentry) #define arg_pointer_save_area (cfun->x_arg_pointer_save_area) #define rtl_expr_chain (cfun->x_rtl_expr_chain) -#define function_call_count (cfun->x_function_call_count) #define used_temp_slots (cfun->x_used_temp_slots) #define avail_temp_slots (cfun->x_avail_temp_slots) #define temp_slot_level (cfun->x_temp_slot_level) diff --git a/gcc/integrate.c b/gcc/integrate.c index 80eb84b..ee2c7a7 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -439,13 +439,6 @@ copy_rtx_and_substitute (rtx orig, struct inline_remap *map, int for_lhs) && ! (CODE_LABEL_NUMBER (XEXP (copy, 0)) >= get_first_label_num () && CODE_LABEL_NUMBER (XEXP (copy, 0)) < max_label_num ())); - /* If we have made a nonlocal label local, it means that this - inlined call will be referring to our nonlocal goto handler. - So make sure we create one for this block; we normally would - not since this is not otherwise considered a "call". */ - if (LABEL_REF_NONLOCAL_P (orig) && ! LABEL_REF_NONLOCAL_P (copy)) - function_call_count++; - return copy; case PC: @@ -2601,7 +2601,7 @@ expand_value_return (rtx val) static void expand_null_return_1 (rtx last_insn) { - rtx end_label = cleanup_label ? cleanup_label : return_label; + rtx end_label = return_label; clear_pending_stack_adjust (); do_pending_stack_adjust (); @@ -3477,7 +3477,7 @@ extern void type_hash_add (unsigned int, tree); extern int simple_cst_list_equal (tree, tree); extern void dump_tree_statistics (void); extern void expand_function_end (void); -extern void expand_function_start (tree, int); +extern void expand_function_start (tree); extern void expand_pending_sizes (tree); extern void recompute_tree_invarant_for_addr_expr (tree); extern bool needs_to_live_in_memory (tree); |