r202368 - in /trunk/gcc: ChangeLog cgraphunit.c...
hubicka@gcc.gnu.org
hubicka@gcc.gnu.org
Sun Sep 8 16:42:00 GMT 2013
Author: hubicka
Date: Sun Sep 8 16:42:21 2013
New Revision: 202368
URL: http://gcc.gnu.org/viewcvs?rev=202368&root=gcc&view=rev
Log:
* 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.
Added:
trunk/gcc/testsuite/g++.dg/ipa/devirt-16.C
trunk/gcc/testsuite/g++.dg/ipa/devirt-17.C
trunk/gcc/testsuite/g++.dg/ipa/devirt-18.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraphunit.c
trunk/gcc/ipa-devirt.c
trunk/gcc/ipa.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ipa/devirt-11.C
trunk/gcc/timevar.def
More information about the Gcc-cvs
mailing list