diff options
author | crux <crux@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-04 13:09:56 +0000 |
---|---|---|
committer | crux <crux@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-04 13:09:56 +0000 |
commit | 605f66ec92188ec5ad0eae54ae103bb519d18e3a (patch) | |
tree | 994384faecb0b7ea09763638c0d3e3b6369993d1 /gcc/function.h | |
parent | dfbd8719e8bcb371b418a7f98bf5078aaf72c4df (diff) | |
download | gcc-605f66ec92188ec5ad0eae54ae103bb519d18e3a.tar.gz |
Change memory mangement and constant pool handling for nested functions to match that of normal functions; add init_machine_status mechanism.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29101 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.h')
-rw-r--r-- | gcc/function.h | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/gcc/function.h b/gcc/function.h index 9a9156ae2a8..d34da4010a0 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -182,6 +182,7 @@ struct function struct stmt_status *stmt; struct expr_status *expr; struct emit_status *emit; + struct varasm_status *varasm; /* For function.c. */ @@ -415,12 +416,9 @@ struct function struct obstack *expression_obstack; struct obstack *saveable_obstack; struct obstack *rtl_obstack; - struct simple_obstack_stack *inline_obstacks; - /* For integrate.c. We duplicate some of the fields so that - save_for_inline_copying can keep two versions. */ + /* For integrate.c. */ int inlinable; - struct emit_status *inl_emit; /* This is in fact an rtvec. */ void *original_arg_vector; tree original_decl_initial; @@ -448,13 +446,6 @@ struct function /* If some insns can be deferred to the delay slots of the epilogue, the delay list for them is recorded here. */ rtx epilogue_delay_list; - - /* For varasm. */ - struct constant_descriptor **const_rtx_hash_table; - struct pool_sym **const_rtx_sym_hash_table; - struct pool_constant *first_pool, *last_pool; - int pool_offset; - rtx const_double_chain; }; extern struct function *current_function; @@ -534,25 +525,24 @@ extern tree *identify_blocks PROTO((tree, rtx)); /* Return size needed for stack frame based on slots so far allocated. This size counts from zero. It is not rounded to STACK_BOUNDARY; the caller may have to do that. */ -extern HOST_WIDE_INT get_frame_size PROTO((void)); +extern HOST_WIDE_INT get_frame_size PROTO((void)); /* Likewise, but for a different than the current function. */ -extern HOST_WIDE_INT get_func_frame_size PROTO((struct function *)); +extern HOST_WIDE_INT get_func_frame_size PROTO((struct function *)); /* These variables hold pointers to functions to save and restore machine-specific data, in push_function_context and pop_function_context. */ -extern void (*save_machine_status) PROTO((struct function *)); -extern void (*restore_machine_status) PROTO((struct function *)); +extern void (*init_machine_status) PROTO((struct function *)); +extern void (*save_machine_status) PROTO((struct function *)); +extern void (*restore_machine_status) PROTO((struct function *)); /* Likewise, but for language-specific data. */ extern void (*save_lang_status) PROTO((struct function *)); extern void (*restore_lang_status) PROTO((struct function *)); /* Save and restore status information for a nested function. */ -extern void save_tree_status PROTO((struct function *, tree)); -extern void restore_tree_status PROTO((struct function *, tree)); -extern void save_varasm_status PROTO((struct function *, tree)); -extern void restore_varasm_status PROTO((struct function *)); +extern void save_tree_status PROTO((struct function *)); +extern void restore_tree_status PROTO((struct function *)); extern void restore_emit_status PROTO((struct function *)); extern rtx get_first_block_beg PROTO((void)); |