aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2004-01-29 01:34:09 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2004-01-29 00:34:09 +0000
commitd173e68599639b825a1e12884fa35c00a024bee4 (patch)
tree66950d896c4e79e9db825a8c670c14a160a7f554 /gcc/cgraph.c
parentba9d552e03a1b1d0daa792d157d5268020300afc (diff)
downloadgcc-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.c3
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