diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-08-20 15:55:06 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-08-20 13:55:06 +0000 |
commit | 8605403e2bcb731d5f1c8579a9c2ea3436e2fb27 (patch) | |
tree | d02afd479c74875a28f01dba8b1c20718de3c062 /gcc/ipa.c | |
parent | 3ba421e8becbd17526a88ec76226d7213b96af14 (diff) | |
download | gcc-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.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -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 |