diff options
author | Elizaveta Noskova <159026035+enoskova-sc@users.noreply.github.com> | 2025-09-23 11:54:52 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-23 11:54:52 +0300 |
commit | 1132e82a61104930070904c1baedca364f943909 (patch) | |
tree | 9e0708041d405fcc8d180f2e96d85cf1bfa69a11 /llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp | |
parent | 191dbcaf4d49a7cd25c8f9b80bd1b8c427673e0b (diff) | |
download | llvm-1132e82a61104930070904c1baedca364f943909.zip llvm-1132e82a61104930070904c1baedca364f943909.tar.gz llvm-1132e82a61104930070904c1baedca364f943909.tar.bz2 |
[MIR] Support save/restore points with independent sets of registers (#119358)
This patch adds the MIR parsing and serialization support for save and
restore points with subsets of callee saved registers. That is, it
syntactically allows a function to contain two or more distinct
sub-regions in which distinct subsets of registers are spilled/filled as
callee save. This is useful if e.g. one of the CSRs isn't modified in
one of the sub-regions, but is in the other(s).
Support for actually using this capability in code generation is still
forthcoming. This patch is the next logical step for multiple
save/restore points support.
All points are now stored in DenseMap from MBB to vector of
CalleeSavedInfo.
Shrink-Wrap points split Part 4.
RFC:
https://discourse.llvm.org/t/shrink-wrap-save-restore-points-splitting/83581
Part 1: https://github.com/llvm/llvm-project/pull/117862 (landed)
Part 2: https://github.com/llvm/llvm-project/pull/119355 (landed)
Part 3: https://github.com/llvm/llvm-project/pull/119357 (landed)
Part 5: https://github.com/llvm/llvm-project/pull/119359 (likely to be
further split)
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions