[llvm] [AArch64][SME] Save VG for unwind info when changing streaming-mode (PR #83301)
Eli Friedman via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 12 14:54:18 PDT 2024
efriedma-quic wrote:
Streaming caller -> non-streaming callee works, sure.
>From your description, not completely sure how you plan to handle the streaming-compatible caller -> non-streaming callee case; there's no such thing as a conditional cfi_offset, as far as I know. I'd at least like to see the proposed assembly sequence, even if you don't implement it in this patch.
The problem case is "non-streaming SVE-enabled caller -> locally-streaming SVE-disabled callee". The caller doesn't set VG because it doesn't know anything about streaming. The callee can't set VG because it can't read the non-streaming vector length. The only way I can think of to make it work, given the specified structure of the unwind data, is a runtime check for whether SVE is available. But the ABI doesn't provide any way to check that at the moment.
I don't have a problem with splitting the patches however you think is appropriate, but we need to make sure the proposed scheme actually works before we go forward with it.
https://github.com/llvm/llvm-project/pull/83301
More information about the llvm-commits
mailing list