[llvm] [AMDGPU] Add iglp_opt(3) for simple mfma / exp interleaving (PR #117269)

Jeffrey Byrnes via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 2 17:00:56 PST 2024


================
@@ -1845,6 +1846,50 @@ bool MFMAExpInterleaveOpt::applyIGLPStrategy(
   return true;
 }
 
+class MFMAExpSimpleInterleaveOpt final : public IGLPStrategy {
+private:
+public:
+  bool applyIGLPStrategy(
+      DenseMap<int, SUnitsToCandidateSGsMap> &SyncedInstrs,
+      DenseMap<int, SmallVector<SchedGroup, 4>> &SyncedSchedGroups,
----------------
jrbyrnes wrote:

The map keys are the SyncIDs for the SchedGroups. We try to enforce ordering of SchedGroups that have the same SyncIDs. If a user specifies SchedGroups with multiple SyncIDs, then we would construct multiple SchedGroup based pipelines that are overlayed on one another.

A multi-level structure works best with the Solver, but I suppose we could convert to a container for a vector of vectors with some SyncID -> index mapping. I think that should be done separately though.

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


More information about the llvm-commits mailing list