This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Type inheritance graph analysis & speculative devirtualization, part 2/6 (type inheritance graph builder)


On Sun, Aug 18, 2013 at 08:19:57PM +0200, Jan Hubicka wrote:
> Hi,
> this patch implements the type inheritance graph builder. Once the graph is
> built it stays in memory and unchanged thorough the compilation (we do not
> expect to invent new virtual methods during the optimization)
> The graph is dumped into new IPA dump file "type-inheritance".
> 

[...]

> 	* 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.

This was bit tough to review but I do not see any problems.  Perhaps
we could get rid off the matched_vtables parameters but that is a very
minor thing.

Thanks,

Martin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]