r216662 - [ARM] Change default ABI for AArch32 to be "aapcs" (was "apcs-gnu")

Eric Christopher echristo at gmail.com
Tue Dec 9 13:55:57 PST 2014


On Fri Dec 05 2014 at 3:56:09 PM Eric Christopher <echristo at gmail.com>
wrote:

> Hi Oliver,
>
> I'm sorry for the thread archaeology, but I didn't see this when it went
> in.
>
>
>> [ARM] Change default ABI for AArch32 to be "aapcs" (was "apcs-gnu")
>>
>> The current default abi when no environment is given is "apcs-gnu",
>> which is obsolete. This patch changes the default to "aapcs". "aapcs" has
>> both
>> hard- and soft-float variants, so the -mhard-float, -msoft-float and
>> -mfloat-abi= options now all behave as expected when no environment is
>> specified in the triple.
>>
>>
> Is there an actual compelling reason to make this change? Does it get us
> conformity with any other tools?
>
> As a note, you also didn't change the backend to match this which is
> causing me some amount of annoyance in trying to get everything to agree.
> I'm unraveling it, but it's taking some time. :)
>
>

Ping? Do you have a reason for this change? Basically it means a lot of
updating the back end if we want them to agree for no good reason so I'm of
mind to revert this.

-eric


> While writing this I also noticed that a preprocessor test claims to be
>> checking darwin, but is actually checking the defaults, which are
>> different for darwin.
>>
>>
> Weird.
>
>
>>
>> -// RUN: %clang -target arm -arch armv7s -x c -E -dM %s -o - | FileCheck
>> --check-prefix=ARM-DARWIN-NO-EABI %s
>> -// RUN: %clang -target arm -arch armv6m -x c -E -dM %s -o - | FileCheck
>> --check-prefix=ARM-DARWIN-NO-EABI %s
>> -// RUN: %clang -target arm -arch armv7m -x c -E -dM %s -o - | FileCheck
>> --check-prefix=ARM-DARWIN-NO-EABI %s
>> -// RUN: %clang -target arm -arch armv7em -x c -E -dM %s -o - | FileCheck
>> --check-prefix=ARM-DARWIN-NO-EABI %s
>> +// RUN: %clang -target arm-apple-darwin-eabi -arch armv7s -x c -E -dM %s
>> -o - | FileCheck --check-prefix=ARM-DARWIN-NO-EABI %s
>> +// RUN: %clang -target arm-apple-darwin-eabi -arch armv6m -x c -E -dM %s
>> -o - | FileCheck --check-prefix=ARM-DARWIN-EABI %s
>> +// RUN: %clang -target arm-apple-darwin-eabi -arch armv7m -x c -E -dM %s
>> -o - | FileCheck --check-prefix=ARM-DARWIN-EABI %s
>> +// RUN: %clang -target arm-apple-darwin-eabi -arch armv7em -x c -E -dM
>> %s -o - | FileCheck --check-prefix=ARM-DARWIN-EABI %s
>>  // RUN: %clang -target thumbv7-apple-darwin-eabi -arch armv7 -x c -E -dM
>> %s -o - | FileCheck --check-prefix=ARM-DARWIN-NO-EABI %s
>>  // ARM-DARWIN-NO-EABI-NOT: #define __ARM_EABI__ 1
>> +// ARM-DARWIN-EABI: #define __ARM_EABI__ 1
>>
>>
> I don't think this change is quite correct, it would be better to use a
> triple that acutally exists and then maybe -mabi instead? cc'ing Tim as he
> put that part in originally.
>
> -eric
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141209/a3bc3a86/attachment.html>


More information about the cfe-commits mailing list