diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2015-03-12 01:14:19 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-03-12 00:14:19 +0000 |
commit | 1c4db829238c99209ba210d36a4290cf0eb809ff (patch) | |
tree | 9f5abb5d1ef41104ac985a833791fcc67420ed66 /gcc/lto | |
parent | 8648c55f3b703a0a824ae0815485dbebe4e01478 (diff) | |
download | gcc-1c4db829238c99209ba210d36a4290cf0eb809ff.zip gcc-1c4db829238c99209ba210d36a4290cf0eb809ff.tar.gz gcc-1c4db829238c99209ba210d36a4290cf0eb809ff.tar.bz2 |
cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
* cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
(cgraph_node::remove): Likewise.
(cgraph_node::get_untransformed_body): Likewise.
* varpool.c (varpool_node::remove): Likewise.
(varpool_node::get_constructor): Add sanity check.
* lto.c (read_cgraph_and_symbols): Do not do merging
at ltrans stage.
From-SVN: r221366
Diffstat (limited to 'gcc/lto')
-rw-r--r-- | gcc/lto/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lto/lto.c | 17 |
2 files changed, 17 insertions, 5 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 994189f..ae379eb 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2015-03-10 Jan Hubicka <hubicka@ucw.cz> + + * lto.c (read_cgraph_and_symbols): Do not do merging + at ltrans stage. + 2015-02-26 Jakub Jelinek <jakub@redhat.com> * lto.c (lto_mode_identity_table): New variable. diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index ce7e6b1..760975f 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -3118,13 +3118,20 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames) fprintf (symtab->dump_file, "Before merging:\n"); symtab_node::dump_table (symtab->dump_file); } - lto_symtab_merge_symbols (); - /* Removal of unreachable symbols is needed to make verify_symtab to pass; - we are still having duplicated comdat groups containing local statics. - We could also just remove them while merging. */ - symtab->remove_unreachable_nodes (dump_file); + if (!flag_ltrans) + { + lto_symtab_merge_symbols (); + /* Removal of unreachable symbols is needed to make verify_symtab to pass; + we are still having duplicated comdat groups containing local statics. + We could also just remove them while merging. */ + symtab->remove_unreachable_nodes (dump_file); + } ggc_collect (); symtab->state = IPA_SSA; + /* FIXME: Technically all node removals happening here are useless, because + WPA should not stream them. */ + if (flag_ltrans) + symtab->remove_unreachable_nodes (dump_file); timevar_pop (TV_IPA_LTO_CGRAPH_MERGE); |