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