[llvm] r253102 - AArch64: Default AArch64Subtarget::ReserveX18 to true on darwin

Justin Bogner via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 13 15:05:46 PST 2015


Author: bogner
Date: Fri Nov 13 17:05:46 2015
New Revision: 253102

URL: http://llvm.org/viewvc/llvm-project?rev=253102&view=rev
Log:
AArch64: Default AArch64Subtarget::ReserveX18 to true on darwin

Darwin reserves x18, so it's never ABI compliant to generate code that
uses it. Set the default value based on the OS part of the triple
rather than forcing front-ends to set the +reserve-x18 target feature
in order to build correct code for Darwin.

This will make r243310 redundant, so I'll revert that shortly.

Modified:
    llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp

Modified: llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp?rev=253102&r1=253101&r2=253102&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp Fri Nov 13 17:05:46 2015
@@ -53,8 +53,9 @@ AArch64Subtarget::AArch64Subtarget(const
     : AArch64GenSubtargetInfo(TT, CPU, FS), ARMProcFamily(Others),
       HasV8_1aOps(false), HasFPARMv8(false), HasNEON(false), HasCrypto(false),
       HasCRC(false), HasPerfMon(false), HasZeroCycleRegMove(false),
-      HasZeroCycleZeroing(false), StrictAlign(false), ReserveX18(false),
-      IsLittle(LittleEndian), CPUString(CPU), TargetTriple(TT), FrameLowering(),
+      HasZeroCycleZeroing(false), StrictAlign(false),
+      ReserveX18(TT.isOSDarwin()), IsLittle(LittleEndian), CPUString(CPU),
+      TargetTriple(TT), FrameLowering(),
       InstrInfo(initializeSubtargetDependencies(FS)), TSInfo(),
       TLInfo(TM, *this) {}
 




More information about the llvm-commits mailing list