[llvm] [AMDGPU] Speedup SIFormMemoryClauses live-in register set calculation. (PR #89919)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 25 05:10:50 PDT 2024


================
@@ -275,10 +275,29 @@ bool SIFormMemoryClauses::runOnMachineFunction(MachineFunction &MF) {
   unsigned FuncMaxClause = MF.getFunction().getFnAttributeAsParsedInteger(
       "amdgpu-max-memory-clause", MaxClause);
 
-  for (MachineBasicBlock &MBB : MF) {
-    GCNDownwardRPTracker RPT(*LIS);
+  SmallVector<MachineInstr *, 16> FirstBBClauseMI;
+  for (auto &MBB : MF) {
+    for (auto &MI : MBB) {
+      if (!MI.isMetaInstruction() &&
+          isValidClauseInst(MI, isVMEMClauseInst(MI))) {
+        FirstBBClauseMI.push_back(&MI);
+        break;
+      }
+    }
+  }
+  if (FirstBBClauseMI.empty())
+    return false;
+
+  auto LRM = getLiveRegMap(FirstBBClauseMI, false /*After*/, *LIS);
----------------
arsenm wrote:

```suggestion
  auto LRM = getLiveRegMap(FirstBBClauseMI, /*After=*/false, *LIS);
```

https://github.com/llvm/llvm-project/pull/89919


More information about the llvm-commits mailing list