[all-commits] [llvm/llvm-project] 5d070c: SwiftAsync: use runtime-provided flag for extended...

Tim Northover via All-commits all-commits at lists.llvm.org
Mon Sep 13 05:54:58 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5d070c8259ac64355a5b5d3fd28710a335c2a16f
      https://github.com/llvm/llvm-project/commit/5d070c8259ac64355a5b5d3fd28710a335c2a16f
  Author: Tim Northover <t.p.northover at gmail.com>
  Date:   2021-09-13 (Mon, 13 Sep 2021)

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

  Log Message:
  -----------
  SwiftAsync: use runtime-provided flag for extended frame if back-deploying

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.




More information about the All-commits mailing list