[llvm-branch-commits] [llvm] [AMDGPU][Scheduler] Prepare remat stage for rematerializer integration (NFC) (PR #189489)
Lucas Ramirez via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Apr 2 03:59:08 PDT 2026
================
@@ -3123,6 +3121,28 @@ bool PreRARematStage::isReMaterializable(const MachineInstr &MI) {
return true;
}
+void PreRARematStage::removeFromLiveMaps(Register Reg, const BitVector &LiveIn,
+ const BitVector &LiveOut) {
+ assert(LiveIn.size() == DAG.Regions.size() && "region num mismatch");
+ assert(LiveOut.size() == DAG.Regions.size() && "region num mismatch");
+ for (unsigned I : LiveIn.set_bits())
+ DAG.LiveIns[I].erase(Reg);
+ for (unsigned I : LiveOut.set_bits())
+ DAG.RegionLiveOuts.getLiveRegsForRegionIdx(I).erase(Reg);
+}
+
+void PreRARematStage::addToLiveMaps(Register Reg, LaneBitmask Mask,
+ const BitVector &LiveIn,
+ const BitVector &LiveOut) {
+ assert(LiveIn.size() == DAG.Regions.size() && "region num mismatch");
+ assert(LiveOut.size() == DAG.Regions.size() && "region num mismatch");
+ std::pair<Register, LaneBitmask> LiveReg(Reg, Mask);
+ for (unsigned I : LiveIn.set_bits())
+ DAG.LiveIns[I].insert(LiveReg);
----------------
lucas-rami wrote:
For `I`? It represents a region index so it is supposed to be `unsigned`. `LiveReg` already uses an explicit `Register`.
https://github.com/llvm/llvm-project/pull/189489
More information about the llvm-branch-commits
mailing list