[llvm] [AMDGPU][Scheduler] Support for rematerializing SGPRs and AGPRs (PR #140036)
Lucas Ramirez via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 17 08:20:10 PDT 2025
================
@@ -1707,26 +1709,34 @@ struct ExcessRP {
bool UnifiedRF;
/// Constructs the excess RP model; determines the excess pressure w.r.t. a
- /// maximum number of allowed VGPRs.
- ExcessRP(const GCNSubtarget &ST, const GCNRegPressure &RP, unsigned MaxVGPRs);
+ /// maximum number of allowed SGPRs/VGPRs.
+ ExcessRP(const GCNSubtarget &ST, const GCNRegPressure &RP, unsigned MaxSGPRs,
+ unsigned MaxVGPRs);
+
+ /// Accounts for \p NumRegs saved SGPRs in the model. Returns whether saving
+ /// these SGPRs helped reduce excess pressure.
+ bool saveSGPRs(unsigned NumRegs) { return saveRegs(SGPRs, NumRegs); }
/// Accounts for \p NumRegs saved ArchVGPRs in the model. If \p
/// UseArchVGPRForAGPRSpill is true, saved ArchVGPRs are used to save excess
/// AGPRs once excess ArchVGPR pressure has been eliminated. Returns whether
/// saving these ArchVGPRs helped reduce excess pressure.
bool saveArchVGPRs(unsigned NumRegs, bool UseArchVGPRForAGPRSpill);
- /// Accounts for \p NumRegs saved AGPRS in the model. Returns whether saving
- /// these ArchVGPRs helped reduce excess pressure.
- bool saveAGPRs(unsigned NumRegs);
+ /// Accounts for \p NumRegs saved AGPRs in the model. Returns whether saving
+ /// these AGPRs helped reduce excess pressure.
+ bool saveAGPRs(unsigned NumRegs) {
+ return saveRegs(AGPRs, NumRegs) || saveRegs(VGPRs, NumRegs);
----------------
lucas-rami wrote:
You're right, this is more consistent.
https://github.com/llvm/llvm-project/pull/140036
More information about the llvm-commits
mailing list