From 821653e13844241cf2cebedbd153bd9482c54b51 Mon Sep 17 00:00:00 2001 From: zack Date: Fri, 31 Aug 2001 22:22:02 +0000 Subject: * function.c: Remove all_functions. Make outer_function_chain static. (init_function_start): Don't add new function structure to all_functions. (find_function_data, push_function_context_to, pop_function_context_from, put_var_into_stack, trampoline_address): Update for changed structure element names. (push_function_context_to): Disentangle. (free_after_compilation): Also free F. (expand_dummy_function_end): Don't free cfun here. (put_var_into_stack): Comment why we can't use find_function_data here. (fix_lexical_addr, trampoline_address, ): Use find_function_data. (mark_function_chain): Split into maybe_mark_struct_function and ggc_mark_struct_function. Export the latter. (init_function_once): Mark from cfun and outer_function_chain; not all_functions. * function.h (struct function): Kill next_global. Rename next to outer. All users updated to match. (all_functions, outer_function_chain): Don't declare. * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS. * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS, don't touch f->inlinable, after calling rest_of_compilation. * tree.h: Forward-declare struct function. Prototype ggc_mark_struct_function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45336 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/function.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'gcc/function.h') diff --git a/gcc/function.h b/gcc/function.h index 24c99ccb97c..ff8aeb975ec 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -178,9 +178,6 @@ struct expr_status struct function { - struct function *next_global; - struct function *next; - struct eh_status *eh; struct stmt_status *stmt; struct expr_status *expr; @@ -195,6 +192,9 @@ struct function /* Points to the FUNCTION_DECL of this function. */ tree decl; + /* Function containing this function, if any. */ + struct function *outer; + /* Number of bytes of args popped by function being compiled on its return. Zero if no bytes are to be popped. May affect compilation of return insn or of function epilogue. */ @@ -482,9 +482,6 @@ struct function /* The function currently being compiled. */ extern struct function *cfun; -/* A list of all functions we have compiled so far. */ -extern struct function *all_functions; - /* Nonzero if we've already converted virtual regs to hard regs. */ extern int virtuals_instantiated; @@ -553,9 +550,6 @@ extern tree inline_function_decl; return the `struct function' for it. */ struct function *find_function_data PARAMS ((tree)); -/* Pointer to chain of `struct function' for containing functions. */ -extern struct function *outer_function_chain; - /* Set NOTE_BLOCK for each block note in the current function. */ extern void identify_blocks PARAMS ((void)); -- cgit v1.2.1