[all-commits] [llvm/llvm-project] 1132e8: [MIR] Support save/restore points with independent...
Elizaveta Noskova via All-commits
all-commits at lists.llvm.org
Tue Sep 23 01:55:13 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 1132e82a61104930070904c1baedca364f943909
https://github.com/llvm/llvm-project/commit/1132e82a61104930070904c1baedca364f943909
Author: Elizaveta Noskova <159026035+enoskova-sc at users.noreply.github.com>
Date: 2025-09-23 (Tue, 23 Sep 2025)
Changed paths:
M llvm/include/llvm/CodeGen/MIRYamlMapping.h
M llvm/include/llvm/CodeGen/MachineFrameInfo.h
M llvm/lib/CodeGen/MIRParser/MIRParser.cpp
M llvm/lib/CodeGen/MIRPrinter.cpp
M llvm/lib/CodeGen/MachineFrameInfo.cpp
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/lib/CodeGen/ShrinkWrap.cpp
M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
M llvm/test/CodeGen/MIR/X86/frame-info-multiple-save-restore-points-parse.mir
A llvm/test/CodeGen/MIR/X86/frame-info-save-restore-points-with-regs-parse.mir
M llvm/tools/llvm-reduce/ReducerWorkItem.cpp
Log Message:
-----------
[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)
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list