case CallingConv::X86_StdCall:
case CallingConv::X86_VectorCall:
case CallingConv::X86_FastCall:
+ // Swift:
+ case CallingConv::Swift:
return true;
default:
return canGuaranteeTCO(CC);
-; RUN: llc -mtriple x86_64-unknown-windows-msvc -filetype asm -o - %s | FileCheck %s
+; RUN: llc -mtriple x86_64-- -filetype asm -o - %s | FileCheck %s
+; RUN: llc -mtriple x86_64-unknown-windows-msvc -filetype asm -o - %s | FileCheck %s --check-prefix=MSVC
define swiftcc void @f() {
%1 = alloca i8
ret void
}
-; CHECK-LABEL: f
-; CHECK: .seh_stackalloc 8
-; CHECK: .seh_endprologue
+; MSVC-LABEL: f
+; MSVC: .seh_stackalloc 8
+; MSVC: .seh_endprologue
+declare swiftcc i64 @myFunc()
+define swiftcc i64 @myFunc2() nounwind {
+ %r = tail call swiftcc i64 @myFunc()
+ ret i64 %r
+}
+
+; CHECK-LABEL: myFunc2
+; CHECK: jmp myFunc
+; CHECK-NOT: call