[llvm] [AMDGPU] Add scheduling stage to rewrite MFMA from VGPR to AGPR (PR #170335)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 7 13:33:46 PST 2025
================
@@ -1216,6 +1223,107 @@ bool GCNSchedStage::initGCNSchedStage() {
return true;
}
+void RewriteScheduleStage::findReachingDefs(
+ MachineOperand &UseMO, LiveIntervals *LIS,
+ SmallVectorImpl<SlotIndex> &DefIdxs) {
+ assert(UseMO.isReg());
+ MachineInstr *UseMI = UseMO.getParent();
+ LiveInterval &UseLI = LIS->getInterval(UseMO.getReg());
+ VNInfo *VNI = UseLI.getVNInfoAt(LIS->getInstructionIndex(*UseMI));
+
+ // If the def is not a PHI, then it must be the only reaching def.
+ if (!VNI->isPHIDef()) {
+ DefIdxs.push_back(VNI->def);
+ return;
+ }
+
+ SmallPtrSet<MachineBasicBlock *, 8> Visited;
+ SmallVector<MachineBasicBlock *, 8> Worklist;
+
+ Visited.insert(UseMI->getParent());
----------------
arsenm wrote:
```suggestion
SmallPtrSet<MachineBasicBlock *, 8> Visited = {UseMI->getParent()};
SmallVector<MachineBasicBlock *, 8> Worklist;
```
https://github.com/llvm/llvm-project/pull/170335
More information about the llvm-commits
mailing list