[llvm] [AMDGPU] Extend DS loop wait optimization with flush point tracking (PR #175658)

Sameer Sahasrabuddhe via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 22 18:46:45 PST 2026


================
@@ -3442,22 +3463,41 @@ SIInsertWaitcnts::getPreheaderFlushFlags(MachineLoop *ML,
             VgprDefVMEM.insert(RU);
           }
         }
-        // Early exit if both optimizations are invalidated
-        if (VMemInvalidated && DSInvalidated)
+        // Early exit if all optimizations are invalidated
+        if (VMemInvalidated && DSInvalidated && FlushPointTrackingInvalid)
           return Flags;
       }
 
+      bool IsDSRead = isDSRead(MI);
----------------
ssahasra wrote:

> Aligning with MIR reaching here, i.e., DS read.

That's a relief. Where a choice is available, I would strongly recommend using "read". "read" and "write" are important events in the memory model, and this pass is definitely part of the memory model.

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


More information about the llvm-commits mailing list