diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-16 01:12:25 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-16 01:12:25 +0000 |
commit | 3c3bb26851dc0028e761a92256ad356cb3644b7a (patch) | |
tree | 0b720d86986661e0024880e115976d9fa928b8f1 /gcc/function.h | |
parent | f45c08bf71c972d86b29e21a3c7b32c9ce41a616 (diff) | |
download | gcc-3c3bb26851dc0028e761a92256ad356cb3644b7a.tar.gz |
* emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
Free the struct.
(mark_emit_status): Renamed from mark_emit_state.
* except.c (mark_eh_status): Renamed from mark_eh_state.
Check not null before marking.
(free_eh_status): New.
* expr.c (mark_expr_status, free_expr_status): New.
* function.c (free_machine_status): New.
(free_after_parsing): New.
(free_after_compilation): Move bits to free_after_parsing; call
free_eh_status, free_expr_status; zero the marked members of the
function state.
(prepare_function_start): No can_garbage_collect.
Call init_eh_for_function.
(expand_dummy_function_end): Free up current_function state.
(mark_function_status): Renamed from mark_function_state.
(mark_function_chain): No can_garbage_collect. Call mark_expr_status.
* function.h (struct function): No can_garbage_collect.
(free_machine_status, free_after_parsing): Declare.
(free_eh_status, free_expr_status): Declare.
* ggc.h (mark_expr_status): Declare.
* stmt.c (free_stmt_status): Free the struct.
(mark_stmt_status): Renamed from mark_stmt_state.
(init_stmt): Don't call init_eh.
(init_stmt_for_function): Don't call init_eh_for_function.
* toplev.c (compile_file): Call init_eh.
(rest_of_compilation): Free basic block info before ggc_collect.
Call free_after_parsing; conditionally call free_after_compilation.
* varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
Check not null before marking.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29448 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.h')
-rw-r--r-- | gcc/function.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/function.h b/gcc/function.h index a574b67ca4b..0d70b7d6aed 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -184,9 +184,6 @@ struct function struct emit_status *emit; struct varasm_status *varasm; - /* Nonzero if we are done compiling this function. */ - int can_garbage_collect; - /* For function.c. */ /* Name of this function. */ @@ -539,6 +536,7 @@ extern void (*init_machine_status) PROTO((struct function *)); extern void (*mark_machine_status) PROTO((struct function *)); extern void (*save_machine_status) PROTO((struct function *)); extern void (*restore_machine_status) PROTO((struct function *)); +extern void (*free_machine_status) PROTO((struct function *)); /* Likewise, but for language-specific data. */ extern void (*init_lang_status) PROTO((struct function *)); @@ -551,12 +549,16 @@ extern void (*free_lang_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 void free_after_parsing PROTO((struct function *)); extern void free_after_compilation PROTO((struct function *)); extern void init_varasm_status PROTO((struct function *)); extern void free_varasm_status PROTO((struct function *)); extern void free_emit_status PROTO((struct function *)); extern void free_stmt_status PROTO((struct function *)); +extern void free_eh_status PROTO((struct function *)); +extern void free_expr_status PROTO((struct function *)); + extern rtx get_first_block_beg PROTO((void)); extern void init_virtual_regs PROTO((struct emit_status *)); |