diff options
author | Jan Hubicka <jh@suse.cz> | 2004-01-29 01:34:09 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-01-29 00:34:09 +0000 |
commit | d173e68599639b825a1e12884fa35c00a024bee4 (patch) | |
tree | 66950d896c4e79e9db825a8c670c14a160a7f554 /gcc/cgraph.c | |
parent | ba9d552e03a1b1d0daa792d157d5268020300afc (diff) | |
download | gcc-d173e68599639b825a1e12884fa35c00a024bee4.zip gcc-d173e68599639b825a1e12884fa35c00a024bee4.tar.gz gcc-d173e68599639b825a1e12884fa35c00a024bee4.tar.bz2 |
re PR c++/12850 (memory consumption for heavy template instantiations tripled since 3.3)
PR c++/12850
* cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
initial pointers.
* cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
for functions that will be only inlined.
(cgraph_mark_function_to_output): Likewise.
(cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
do not clear function body.
* tree-optimize.c (clear_decl_rtl): Use decl_function_context.
(tree_rest_of_compilation): Reorganize the logic releasing function
body to use callgraph datastructure.
From-SVN: r76822
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r-- | gcc/cgraph.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c index 57d0844..e9d0b24 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -235,6 +235,9 @@ cgraph_remove_node (struct cgraph_node *node) if (node->next) node->next->previous = node->previous; DECL_SAVED_TREE (node->decl) = NULL; + DECL_SAVED_INSNS (node->decl) = NULL; + DECL_ARGUMENTS (node->decl) = NULL; + DECL_INITIAL (node->decl) = error_mark_node; slot = htab_find_slot_with_hash (cgraph_hash, DECL_ASSEMBLER_NAME (node->decl), IDENTIFIER_HASH_VALUE (DECL_ASSEMBLER_NAME |