diff options
author | Jan Hubicka <jh@suse.cz> | 2013-09-08 18:42:21 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-09-08 16:42:21 +0000 |
commit | 3462aa02a699dc716bd366fee8fc1c85f7f94541 (patch) | |
tree | 6aaf6ed20bc90f69bf381f4674ecd79f8abee69c /gcc/tree-ssa-threadedge.c | |
parent | 26e5b0fd2818c746fcd016bd1b6fa434204a5d72 (diff) | |
download | gcc-3462aa02a699dc716bd366fee8fc1c85f7f94541.zip gcc-3462aa02a699dc716bd366fee8fc1c85f7f94541.tar.gz gcc-3462aa02a699dc716bd366fee8fc1c85f7f94541.tar.bz2 |
devirt-11.C: Update template.
* testsuite/g++.dg/ipa/devirt-11.C: Update template.
* testsuite/g++.dg/ipa/devirt-16.C: New testcase.
* testsuite/g++.dg/ipa/devirt-17.C: New testcase.
* testsuite/g++.dg/ipa/devirt-18.C: New testcase.
* cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
targets and devirtualize to BUILT_IN_UNREACHABLE.
* timevar.def (TV_IPA_UNREACHABLE): New timevar.
* ipa.c (walk_polymorphic_call_targets): New function.
(symtab_remove_unreachable_nodes): Use it; do not keep all virtual
functions; use the new timevar.
* ipa-devirt.c (maybe_record_node): Do not insert static nodes that
was removed from the program.
(record_binfo): If BINFO corresponds to an anonymous namespace, we may
not consider it in the walk when its vtable is dead.
(possible_polymorphic_call_targets_1): Pass anonymous flag to
record_binfo.
(devirt_variable_node_removal_hook): New function.
(possible_polymorphic_call_targets): Also register
devirt_variable_node_removal_hook.
(ipa_devirt): Do not do non-speculative devirtualization.
(gate_ipa_devirt): One execute if devirtualizing speculatively.
From-SVN: r202368
Diffstat (limited to 'gcc/tree-ssa-threadedge.c')
0 files changed, 0 insertions, 0 deletions