Makeifle-in (ipa-devirt.o): New.
authorJan Hubicka <jh@suse.cz>
Mon, 19 Aug 2013 10:14:06 +0000 (12:14 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 19 Aug 2013 10:14:06 +0000 (10:14 +0000)
commiteefe9a995ceec7fc5ca79505e96bda214e6bd82c
tree6500dfce0eb1776cd3cf03771e785f6de3bc1607
parent5eb5ec2f3034a1c62262914b090f64a5d5f0bc86
Makeifle-in (ipa-devirt.o): New.

* Makeifle-in (ipa-devirt.o): New.
(GTFILES): Add ipa-utils.h and ipa-devirt.c
* cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
(analyze_functions): Look into possible targets of polymorphic call.
* dumpfile.c (dump_files): Add type-inheritance dump.
* dumpfile.h (TDI_inheritance): New.
* ipa-devirt.c: New file.
* ipa-utils.h (odr_type_d): Forward declare.
(odr_type): New type.
(build_type_inheritance_graph): Declare.
(possible_polymorphic_call_targets): Declare and introduce inline
variant when only edge is pased.
(dump_possible_polymorphic_call_targets): Likewise.
* timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
* tree.c (type_in_anonymous_namespace_p): Break out from ...
(types_same_for_odr): ... here.
* tree.h (type_in_anonymous_namespace_p): Declare.

* g++.dg/ipa/type-inheritance-1.C: New testcase.

From-SVN: r201836
13 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/cgraph.c
gcc/cgraphunit.c
gcc/dumpfile.c
gcc/dumpfile.h
gcc/ipa-devirt.c [new file with mode: 0644]
gcc/ipa-utils.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/type-inheritance-1.C [new file with mode: 0644]
gcc/timevar.def
gcc/tree.c
gcc/tree.h