[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