aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-03-12 01:14:19 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-03-12 00:14:19 +0000
commit1c4db829238c99209ba210d36a4290cf0eb809ff (patch)
tree9f5abb5d1ef41104ac985a833791fcc67420ed66 /gcc/lto
parent8648c55f3b703a0a824ae0815485dbebe4e01478 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/lto/lto.c17
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);