[PATCH] D109218: SwiftAsync: use runtime-provided flag for extended frame if back-deploying

Tim Northover via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 3 02:50:08 PDT 2021


t.p.northover created this revision.
t.p.northover added reviewers: aschwaighofer, doug.gregor.
Herald added subscribers: pengfei, hiraditya, mcrosier.
t.p.northover requested review of this revision.
Herald added a project: LLVM.

When back-deploying Swift async code we can't always toggle the flag showing an extended frame is present because it will confuse unwinders on systems released before this feature. So in cases where the code might run there, we `or` in a mask provided by the runtime (as an absolute symbol) telling us whether the unwinders can cope.

When deploying only for newer OSs, we can still hard-code the bit-set for greater efficiency.


https://reviews.llvm.org/D109218

Files:
  llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
  llvm/lib/Target/AArch64/AArch64Subtarget.h
  llvm/lib/Target/X86/X86FrameLowering.cpp
  llvm/lib/Target/X86/X86Subtarget.h
  llvm/test/CodeGen/AArch64/swift-async.ll
  llvm/test/CodeGen/AArch64/swift-dynamic-async-frame.ll
  llvm/test/CodeGen/X86/swift-async.ll
  llvm/test/CodeGen/X86/swift-dynamic-async-frame.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D109218.370521.patch
Type: text/x-patch
Size: 9195 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210903/23387839/attachment.bin>


More information about the llvm-commits mailing list