Re: [RFA] Type inheritance graph analysis speculative devirtualization, part 4/7, ODR at LTO time

2013-09-01 Thread Jason Merrill
On 08/19/2013 10:01 AM, Jan Hubicka wrote: + /* All equivalent types, if more than one. */ + vectree, va_gc *types; + /* Set of all equivalent types, if NON-NULL. */ + pointer_set_t * GTY((skip)) types_set; Why do you need both a vector and a pointer set? Can't you drop the vector

Re: [RFA] Type inheritance graph analysis speculative devirtualization, part 4/7, ODR at LTO time

2013-09-01 Thread Jan Hubicka
On 08/19/2013 10:01 AM, Jan Hubicka wrote: + /* All equivalent types, if more than one. */ + vectree, va_gc *types; + /* Set of all equivalent types, if NON-NULL. */ + pointer_set_t * GTY((skip)) types_set; Why do you need both a vector and a pointer set? Can't you drop the

Re: [RFA] Type inheritance graph analysis speculative devirtualization, part 4/7, ODR at LTO time

2013-08-29 Thread Jan Hubicka
Richard, Jason, I would apprechiate your opinion on this patch. It blocks all the code that makes use of ipa-devirt post LTO streaming. The main part that I would like to know your opinion on is the ODR rule implementation by vtable comparsion (it looks obvious but I got it wrong once already)

Re: [RFA] Type inheritance graph analysis speculative devirtualization, part 4/7, ODR at LTO time

2013-08-26 Thread Martin Jambor
Hi, On Mon, Aug 19, 2013 at 04:01:16PM +0200, Jan Hubicka wrote: [...] * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h * ipa-devirt.c: Include diganostic.h (odr_type_d): Add types and types_set. (hash_type_name): Work for types with vtables during LTO.

Re: [RFA] Type inheritance graph analysis speculative devirtualization, part 4/7, ODR at LTO time

2013-08-26 Thread Jan Hubicka
Hi, On Mon, Aug 19, 2013 at 04:01:16PM +0200, Jan Hubicka wrote: [...] * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h * ipa-devirt.c: Include diganostic.h (odr_type_d): Add types and types_set. (hash_type_name): Work for types with vtables during

[RFA] Type inheritance graph analysis speculative devirtualization, part 4/7, ODR at LTO time

2013-08-19 Thread Jan Hubicka
Hi, this patch makes inheritance graph builder to work on LTO. Nothing but ODR violation warnings and dump file is produced, yet. The main change is to make types_same_for_odr and ODR hasher to use assembler name of virtual tables of the type (if present) to establish type equality. This is