Fortran vector math header

Jakub Jelinek jakub@redhat.com
Tue Jan 22 11:15:00 GMT 2019


On Tue, Jan 22, 2019 at 12:01:29PM +0100, Martin Liška wrote:
> I discussed with Jakub possibility of generating canonical triples that will
> be then used in Fortran FE to filter the 'GCC$ builtin' directives. However,
> the approach bring some possibilities and thus I enhanced the previous
> version of patch to catch x32 ABI (I call it lp64ilp32), similarly to Debian:

lp64ilp32 makes no sense.  long and pointer are 64-bit and integer, long and
pointer are 32-bit?  That is impossible.  Both ia32 and x32 are ilp32.

What I was suggesting is either use normalized tuples like Debian
multi-arch, but as it would be exposed to users on all targets, it would
need to be something done for all targets.  My suggestion was start with
the canonical triplet and adjust it for multilibs in a target hook if
needed.  So, e.g. in config/i386, it would replace the first part of the
triplet with x86_64 if not ia32, if ia32 with i386, and append x32 to the
triplet if x32.  For e.g. rs6000, it could modify the first part of the
triplet to powerpc{,64}{,le} depending on endianity and if it is 64-bit ABI
or not.  For aarch64 it would modify the first part of the triplet to
aarch64{,be} depending on endianity, and append _ilp32 if 32-bit ABI, etc.

Or instead just come up with target specific strings to determine the ABI,
say i386, x86_64 and x32 for the 3 ABIs on x86, powerpc{,64}{,le} on rs6000
etc.

	Jakub



More information about the Gcc-patches mailing list