This is an archive of the discontinued LLVM Phabricator instance.

AArch64: take compact unwind frame size from last CFI instruction.
AbandonedPublic

Authored by t.p.northover on Mar 7 2022, 7:16 AM.

Details

Reviewers
None
Summary

Asynchronous exception support for the prologue means that there can be multiple .cfi_def_cfa_offset instructions in a single function, which tripped up an assertion in the compact unwind generator.

In reality the compact unwind format is far too restrictive to represent asynchronous frames so if we ever wanted that on Darwin we'd fall back to DWARF (possibly keeping compact unwind around for synchronous users). So the compact format should continue to represent the synchronous situation, and the assertion can be removed.

Diff Detail