Skip to content

Commit 87f1d60

Browse files
committed
Remove an incorrect assert in MFMASmallGemmSingleWaveOpt.
This assert was failing in a fuzzing test. I consulted with @jrbyrnes who said: The MFMASmallGemmSingleWaveOpt::apply() method is invoked if and only if the user has inserted an intrinsic llvm.amdgcn.iglp.opt(i32 1) into their source code. This intrinsic applies a highly specialized DAG mutation to result in specific scheduling for a specific set of kernels. These assertions are really just confirming that the characteristics of the kernel match what is expected (i.e. The kernels are similar to the ones this DAG mutation strategy were designed against). However, if we apply this DAG mutation to kernels for which is was not designed, then we may not find the types of instructions we are looking for, and may end up with empty caches. I think it should be fine to just return false if the cache is empty instead of the assert.
1 parent 3c74262 commit 87f1d60

File tree

1 file changed

+0
-1
lines changed

1 file changed

+0
-1
lines changed

llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1891,7 +1891,6 @@ class MFMASmallGemmSingleWaveOpt final : public IGLPStrategy {
18911891
}
18921892
}
18931893

1894-
assert(Cache->size());
18951894
auto *DAG = SyncPipe[0].DAG;
18961895
for (auto &Elt : *Cache) {
18971896
if (DAG->IsReachable(Elt, const_cast<SUnit *>(SU)))

0 commit comments

Comments
 (0)