[PATCH] D103275: Update musttail verification to check all swiftasync->swiftasync tail calls.
Varun Gandhi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 27 13:17:22 PDT 2021
varungandhi-apple added inline comments.
================
Comment at: llvm/lib/IR/Verifier.cpp:3430-3437
+ if (EnableSwiftTailCCMustTailCheck &&
+ CI.getCallingConv() == CallingConv::SwiftTail &&
+ CI.getCaller()->getCallingConv() == CallingConv::SwiftTail &&
+ isa_and_nonnull<ReturnInst>(CI.getNextNode())) {
+ Assert(false,
+ "tail call from swifttail->swiftail should be marked musttail",
+ &CI);
----------------
dexonsmith wrote:
> I wonder if the verifier failure message would be more helpful if some of what's being asserted is in the assertion. Maybe, at least the `isa_and_nonnull` check; maybe also the calling convention checks, but I'm not sure.
So it would be like
```
Assert(!(CI.getCallingConv() == CallingConv::SwiftTail ||
CI.getCaller()->getCallingConv() == CallingConv::SwiftTail ||
isa_and_nonnull<ReturnInst>(CI.getNextNode()),
```
That's okay with me. The reason I wrote it this way is that since the conditions are kinda' long, I found the textual description to be more concise and direct.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D103275/new/
https://reviews.llvm.org/D103275
More information about the llvm-commits
mailing list