- It should be mapped to LLVM's swifttailcc, which is now available.
- We should make sure we generate a tail call instead of an ordinary call.
Fixes rdar://73762895.
Paths
| Differential D95984
[CodeGen] Fix codegen for __attribute__((swiftasynccall)). AbandonedPublic Authored by varungandhi-apple on Feb 3 2021, 3:43 PM.
Details
Summary
Fixes rdar://73762895.
Diff Detail
Event Timelinevarungandhi-apple created this revision. Comment Actions I am planning to add more tests, figured it is better to put up the patch sooner rather than later. Comment Actions Okay, seems fine to me.
This revision is now accepted and ready to land.Mar 1 2021, 9:06 PM Comment Actions Add null check for callee; instead of using getFunctionType() directly. Otherwise, it leads to a crash when compiling gtest-all.cc. Comment Actions Use musttail call instead of tail call. (This patch needs to be marked as dependent on another patch which implements proper musttail support, but that is not available yet.)
Comment Actions
Revision Contents
Diff 333421 clang/lib/AST/ExprCXX.cpp
clang/lib/CodeGen/CGCall.cpp
clang/lib/CodeGen/CGStmt.cpp
clang/test/CodeGen/64bit-swiftcall.c
clang/test/CodeGen/arm-swiftcall.c
clang/test/CodeGen/swift-async-call-conv.c
clang/test/CodeGen/swift-call-conv.c
|
Hmm. I guess this should work in any situation where we can successfully actually do a tail call.