[llvm] 01967e2 - [AMDGPU] Shrink a live interval instead of recomputing it. NFCI. (#108171)

via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 11 06:55:18 PDT 2024


Author: Jay Foad
Date: 2024-09-11T14:55:14+01:00
New Revision: 01967e265889a9e242122087c41a97139e84bdc0

URL: https://github.com/llvm/llvm-project/commit/01967e265889a9e242122087c41a97139e84bdc0
DIFF: https://github.com/llvm/llvm-project/commit/01967e265889a9e242122087c41a97139e84bdc0.diff

LOG: [AMDGPU] Shrink a live interval instead of recomputing it. NFCI. (#108171)

Added: 
    

Modified: 
    llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp b/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
index f9d7ead4ff3ecc..38ebda6cde1e59 100644
--- a/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
+++ b/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
@@ -1527,13 +1527,18 @@ bool SIWholeQuadMode::lowerCopyInstrs() {
   for (MachineInstr *MI : LowerToCopyInstrs) {
     LLVM_DEBUG(dbgs() << "simplify: " << *MI);
 
-    Register RecomputeReg = 0;
     if (MI->getOpcode() == AMDGPU::V_SET_INACTIVE_B32 ||
         MI->getOpcode() == AMDGPU::V_SET_INACTIVE_B64) {
       assert(MI->getNumExplicitOperands() == 3);
+
+      LiveInterval *RecomputeLI = nullptr;
       if (MI->getOperand(2).isReg())
-        RecomputeReg = MI->getOperand(2).getReg();
+        RecomputeLI = &LIS->getInterval(MI->getOperand(2).getReg());
+
       MI->removeOperand(2);
+
+      if (RecomputeLI)
+        LIS->shrinkToUses(RecomputeLI);
     } else {
       assert(MI->getNumExplicitOperands() == 2);
     }
@@ -1550,11 +1555,6 @@ bool SIWholeQuadMode::lowerCopyInstrs() {
 
     MI->setDesc(TII->get(CopyOp));
     LLVM_DEBUG(dbgs() << " -> " << *MI);
-
-    if (RecomputeReg) {
-      LIS->removeInterval(RecomputeReg);
-      LIS->createAndComputeVirtRegInterval(RecomputeReg);
-    }
   }
   return !LowerToCopyInstrs.empty() || !LowerToMovInstrs.empty();
 }


        


More information about the llvm-commits mailing list