diff options
author | Manman Ren <manman.ren@gmail.com> | 2016-03-18 23:38:49 +0000 |
---|---|---|
committer | Manman Ren <manman.ren@gmail.com> | 2016-03-18 23:38:49 +0000 |
commit | 2828c57b6f40a6d8a42ea6b72aedf39e58325764 (patch) | |
tree | 1dee52f3327a31a0e905d7b528a1cfb4d85f7571 /llvm/lib/Target | |
parent | 5e5d046a4f677a5099d01666f1411f1c0df2a036 (diff) | |
download | bcm5719-llvm-2828c57b6f40a6d8a42ea6b72aedf39e58325764.tar.gz bcm5719-llvm-2828c57b6f40a6d8a42ea6b72aedf39e58325764.zip |
[CXX_FAST_TLS] fix issues with O0 on ARM, AArch64 and X86.
Since at O0, explicit copies via SplitCSR may not be removed even if
they are unnecessary, we choose not to use SplitCSR at O0.
llvm-svn: 263855
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMFastISel.cpp | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp index 86d3bb0c761..86b006da75d 100644 --- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp +++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp @@ -2469,6 +2469,7 @@ CCAssignFn *AArch64TargetLowering::CCAssignFnForCall(CallingConv::ID CC, case CallingConv::C: case CallingConv::Fast: case CallingConv::PreserveMost: + case CallingConv::CXX_FAST_TLS: if (!Subtarget->isTargetDarwin()) return CC_AArch64_AAPCS; return IsVarArg ? CC_AArch64_DarwinPCS_VarArg : CC_AArch64_DarwinPCS; diff --git a/llvm/lib/Target/ARM/ARMFastISel.cpp b/llvm/lib/Target/ARM/ARMFastISel.cpp index 088638b10f7..361552568b6 100644 --- a/llvm/lib/Target/ARM/ARMFastISel.cpp +++ b/llvm/lib/Target/ARM/ARMFastISel.cpp @@ -1847,6 +1847,7 @@ CCAssignFn *ARMFastISel::CCAssignFnForCall(CallingConv::ID CC, } // Fallthrough case CallingConv::C: + case CallingConv::CXX_FAST_TLS: // Use target triple & subtarget features to do actual dispatch. if (Subtarget->isAAPCS_ABI()) { if (Subtarget->hasVFP2() && |