[llvm-dev] Representing MIPS ABI information in the triple as ARM/X86 do for EABI/EABIHF/X32

Rafael EspĂ­ndola via llvm-dev llvm-dev at lists.llvm.org
Wed Jun 29 12:50:17 PDT 2016


On 24 June 2016 at 06:02, Daniel Sanders <Daniel.Sanders at imgtec.com> wrote:
> Hi,
>
> Having recently enabled IAS by default for the MIPS O32 ABI, I'm now trying to do the same thing for the MIPS N64 ABI. Unfortunately, it is not currently possible to enable IAS by default for the N64 ABI without also enabling it for the N32 ABI because this information is not reflected in the triple and that's the only information MipsMCAsmInfo has.

What would it take to pass more information to MipsMCAsmInfo?

> For MIPS, I'm defining Triple::GNUABI32, Triple::GNUABIN32, and Triple::GNUABI64. All three of these are supported by tools like binutils (by virtue of a wildcard match '*linux-gnu*') and of these three, Triple::GNUABI32 is not in general use, Triple::GNUABIN32 will be used by Debian if/when we do an N32 port, and Triple::GNUABI64 is currently used by Debian for our N64 port. Once the ABI is in our backend triples, it can be used by MipsMCAsmInfo to enable IAS by default for N64 without also enabling it for N32. In later patches, such as D1292 this same information will also be used to fix the N32 support for IAS.

I would be perfectly fine with this if instead of just hitting an
wildcard these different triples actually meant different things to
binutils.

Also, do you plan to deprecate the other ways of passing mips abi info
and use only a normalized triple? If so I am OK with adding these
extra triples.

Eric, what do you think?

Cheers,
Rafael


More information about the llvm-dev mailing list