aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineScheduler.cpp
diff options
context:
space:
mode:
authorEli Friedman <efriedma@quicinc.com>2025-06-02 18:28:23 -0700
committerGitHub <noreply@github.com>2025-06-02 18:28:23 -0700
commit6f64a600649a95141526043b170aa4244d54c94b (patch)
tree3f5a876466db6183c20bd1522ca91407e8feae27 /llvm/lib/CodeGen/MachineScheduler.cpp
parentb6f9800eae9326f4873f4103257e5a63b932de66 (diff)
downloadllvm-6f64a600649a95141526043b170aa4244d54c94b.zip
llvm-6f64a600649a95141526043b170aa4244d54c94b.tar.gz
llvm-6f64a600649a95141526043b170aa4244d54c94b.tar.bz2
[AArch64] Initial compiler support for SVE unwind on Windows. (#138609)
Most bits of this are straightforward: when we emit SVE instructions in the prologue/epilogue, emit corresponding opcodes. The unfortunately nasty bit is the handling of the frame pointer in functions that use the SVE calling convention. If we have SVE callee saves, and need to restore the stack pointer from the frame pointer, it's impossible to encode callee saves that happen after the frame pointer. So this patch rearranges the stack to put SVE callee saves first. This isn't really that complicated on its own, but it leads to a lot of tricky conditionals (see FPAfterSVECalleeSaves).
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
0 files changed, 0 insertions, 0 deletions