Remove vtable_method field in cgraph_node
Martin Jambor
mjambor@suse.cz
Wed Apr 20 13:43:00 GMT 2011
Hi,
On Sun, Apr 17, 2011 at 06:34:59PM +0200, Jan Hubicka wrote:
> Hi,
>
> this patch drops vtable_method filed. I never understood what it is
> about but reading PR20991 I am convinced that we hit the same
> problem with work on new devirutalization code. I implemented what
> Mark describe as "ideal solution" there - i.e. teaching cgraph that
> virtual functions might become reachable until after inlining.
> Since we still can devirutalize in late compilation (that is pretty
> much poinless but anyway), we no ahve
> can_refer_decl_in_current_unit_p that tests if the function has been
> already thrown away. Perhaps we might apply there the observation
> about vtable being output somewhere, but I do not think it is safe:
> if vtable is COMDAT, we can pretty much also optimize all references
> to it out in all compilation unit and up not outputting it. When
> vtable is not COMDAT, the methods won't be either and this trick
> will not apply.
>
> Consequently I am dropping the flag. This is very trivial based on
> observation that cp_fold_obj_type_ref, the only setter of the flag,
> is now dead. Plus the varasm code is no-longer executed at the time
> of IPA optimizations that the original patch was fixing.
>
> Martin, can you please look into why cp_fold_obj_type_ref is no
> longer used and if possible get rid of it?
It was needed because of LANG_HOOKS_FOLD_OBJ_TYPE_REF which I removed
last May (revision 159393) and I somehow left the implementation in
place. I'll take care of removing it.
Thanks,
Martin
More information about the Gcc-patches
mailing list