bool IsStructRet = (Outs.empty()) ? false : Outs[0].Flags.isSRet();
bool IsSibCall = false;
// Temporarily disable tail calls so things don't break.
- if (!EnableARMTailCalls && !Subtarget->supportsTailCall())
+ if (!EnableARMTailCalls)
isTailCall = false;
if (isTailCall) {
// Check if it's really possible to do a tail call.
, PostRAScheduler(false)
, IsR9Reserved(ReserveR9)
, UseMovt(false)
- , SupportsTailCall(false)
, HasFP16(false)
, HasD16(false)
, HasHardwareDivide(false)
else {
IsR9Reserved = ReserveR9 | (ARMArchVersion < V6);
UseMovt = DarwinUseMOVT && hasV6T2Ops();
- const Triple &T = getTargetTriple();
- SupportsTailCall = T.getOS() == Triple::IOS && !T.isOSVersionLT(5, 0);
}
if (!isThumb() || hasThumb2())
/// imms (including global addresses).
bool UseMovt;
- /// SupportsTailCall - True if the OS supports tail call. The dynamic linker
- /// must be able to synthesize call stubs for interworking between ARM and
- /// Thumb.
- bool SupportsTailCall;
-
/// HasFP16 - True if subtarget supports half-precision FP (We support VFP+HF
/// only so far)
bool HasFP16;
bool isR9Reserved() const { return IsR9Reserved; }
bool useMovt() const { return UseMovt && hasV6T2Ops(); }
- bool supportsTailCall() const { return SupportsTailCall; }
bool allowsUnalignedMem() const { return AllowsUnalignedMem; }