aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-08-20 15:55:06 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2014-08-20 13:55:06 +0000
commit8605403e2bcb731d5f1c8579a9c2ea3436e2fb27 (patch)
treed02afd479c74875a28f01dba8b1c20718de3c062 /gcc/ipa.c
parent3ba421e8becbd17526a88ec76226d7213b96af14 (diff)
downloadgcc-8605403e2bcb731d5f1c8579a9c2ea3436e2fb27.zip
gcc-8605403e2bcb731d5f1c8579a9c2ea3436e2fb27.tar.gz
gcc-8605403e2bcb731d5f1c8579a9c2ea3436e2fb27.tar.bz2
cgraphunit.c (ipa_passes, compile): Reshedule symtab_remove_unreachable_nodes passes; update comments.
* cgraphunit.c (ipa_passes, compile): Reshedule symtab_remove_unreachable_nodes passes; update comments. * ipa-inline.c (pass_data_ipa_inline): Do not schedule TODO_remove_functions before the pass; the functions ought to be already removed. * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule TODO_remove_functions. * passes.c (pass_data_early_local_passes): Do not schedule function removal. (execute_one_pass): Fix call of symtab_remove_unreachable_nodes. * lto.c (read_cgraph_and_symbols): Fix symtab_remove_unreachable_nodes call. (do_whole_program_analysis): Only sanity check that IPA passes cleans up. * testsuite/g++.dg/ipa/devirt-17.C: Update template. * testsuite/g++.dg/ipa/devirt-16.C: Update template. From-SVN: r214224
Diffstat (limited to 'gcc/ipa.c')
-rw-r--r--gcc/ipa.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ipa.c b/gcc/ipa.c
index 1081e89..bf6b2d7 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -727,14 +727,17 @@ namespace {
const pass_data pass_data_ipa_free_inline_summary =
{
SIMPLE_IPA_PASS, /* type */
- "*free_inline_summary", /* name */
+ "free-inline-summary", /* name */
OPTGROUP_NONE, /* optinfo_flags */
TV_IPA_FREE_INLINE_SUMMARY, /* tv_id */
0, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ /* Early optimizations may make function unreachable. We can not
+ remove unreachable functions as part of the ealry opts pass because
+ TODOs are run before subpasses. Do it here. */
+ ( TODO_remove_functions | TODO_dump_symtab ), /* todo_flags_finish */
};
class pass_ipa_free_inline_summary : public simple_ipa_opt_pass