[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:12:17 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);
----------------
arsenm wrote:

Multiple clauses can exist in a block? Can this just be done block at a time? 

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


More information about the llvm-commits mailing list