From eb7a5e530104550b29c1f1ca1c4dcfd5a3db0277 Mon Sep 17 00:00:00 2001 From: sguo35 Date: Wed, 27 Apr 2022 23:21:46 -0700 Subject: [PATCH] Fix tail call guarantee setting for GHC on arm64 backend --- lib/Target/AArch64/AArch64ISelLowering.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Target/AArch64/AArch64ISelLowering.cpp b/lib/Target/AArch64/AArch64ISelLowering.cpp index 494554ae7b3..f5de1a7db25 100644 --- a/lib/Target/AArch64/AArch64ISelLowering.cpp +++ b/lib/Target/AArch64/AArch64ISelLowering.cpp @@ -5526,7 +5526,7 @@ SDValue AArch64TargetLowering::LowerCallResult( /// Return true if the calling convention is one that we can guarantee TCO for. static bool canGuaranteeTCO(CallingConv::ID CC, bool GuaranteeTailCalls) { return (CC == CallingConv::Fast && GuaranteeTailCalls) || - CC == CallingConv::Tail || CC == CallingConv::SwiftTail; + CC == CallingConv::Tail || CC == CallingConv::SwiftTail || CC == CallingConv::GHC; } /// Return true if we might ever do TCO for calls with this calling convention. @@ -5539,6 +5539,7 @@ static bool mayTailCallThisCC(CallingConv::ID CC) { case CallingConv::SwiftTail: case CallingConv::Tail: case CallingConv::Fast: + case CallingConv::GHC: return true; default: return false;