This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Enable pointer TBAA for LTO
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Bernd Schmidt <bschmidt at redhat dot com>
- Cc: Richard Biener <rguenther at suse dot de>, Jan Hubicka <hubicka at ucw dot cz>, gcc-patches at gcc dot gnu dot org
- Date: Wed, 11 Nov 2015 23:13:59 +0100
- Subject: Re: Enable pointer TBAA for LTO
- Authentication-results: sourceware.org; auth=none
- References: <20151108204618 dot GA68715 at kam dot mff dot cuni dot cz> <alpine dot LSU dot 2 dot 11 dot 1511101306050 dot 10078 at zhemvz dot fhfr dot qr> <20151110181515 dot GB78110 at kam dot mff dot cuni dot cz> <alpine dot LSU dot 2 dot 11 dot 1511111019350 dot 7543 at zhemvz dot fhfr dot qr> <564337E7 dot 2070802 at redhat dot com>
> On 11/11/2015 10:21 AM, Richard Biener wrote:
> >On Tue, 10 Nov 2015, Jan Hubicka wrote:
> >>The reason is that TYPE_CANONICAL is initialized in get_alias_set that may be
> >>called before we finish all merging and then it is more fine grained than what
> >>we need here (i.e. TYPE_CANONICAL of pointers to two differnt types will be
> >>different, but here we want them to be equal so we can match:
> >>
> >>struct aa { void *ptr;};
> >>struct bb { int * ptr;};
> >>
> >>Which is actually required for Fortran interoperability.
>
> Just curious, is this sort of thing documented anywhere?
See http://www.j3-fortran.org/doc/year/10/10-007.pdf, section 15 (interoperability with C).
It defines that C_PTR is compatible with any C non-function pointer.
Honza
>
>
> Bernd