[PATCH] D108830: [AMDGPU] Propagate defining src reg for AGPR to AGPR Copys
    Matt Arsenault via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Aug 27 10:03:28 PDT 2021
    
    
  
arsenm added inline comments.
================
Comment at: llvm/lib/Target/AMDGPU/GCNPreRAOptimizations.cpp:160
   }
 
+  for (MachineFunction::iterator BI = MF.begin(), BE = MF.end(); BI != BE;
----------------
Can skip this whole pass if this isn't gfx908
================
Comment at: llvm/lib/Target/AMDGPU/GCNPreRAOptimizations.cpp:161-162
 
+  for (MachineFunction::iterator BI = MF.begin(), BE = MF.end(); BI != BE;
+       ++BI) {
+    MachineBasicBlock *MBB = &*BI;
----------------
Since you're visiting all the defs anyway, could you unify this with the previous loop when an agpr register is found?
================
Comment at: llvm/lib/Target/AMDGPU/GCNPreRAOptimizations.cpp:201
+          if (Def.getOpcode() == AMDGPU::V_ACCVGPR_WRITE_B32_e64) {
+            MachineOperand DefSrcMO = Def.getOperand(1);
+
----------------
I'm worried this might not work correctly with overlapping subregisters
================
Comment at: llvm/lib/Target/AMDGPU/GCNPreRAOptimizations.cpp:211-214
+              LIS->removeInterval(DefSrcMO.getReg());
+              LIS->removeInterval(SrcReg);
+              LIS->createAndComputeVirtRegInterval(DefSrcMO.getReg());
+              LIS->createAndComputeVirtRegInterval(SrcReg);
----------------
Should not need to totally trash the liveness and start over
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D108830/new/
https://reviews.llvm.org/D108830
    
    
More information about the llvm-commits
mailing list