[llvm-branch-commits] [llvm] [AMDGPU][InsertWaitCnts] Move TENSOR/ASYNC event detection to separate header (PR #204544)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Jun 18 03:11:27 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-amdgpu
Author: Pierre van Houtryve (Pierre-vh)
<details>
<summary>Changes</summary>
I forgot to move those out of the way as they were not grouped with the other.
Now `getEventsFor` does all the work.
---
Full diff: https://github.com/llvm/llvm-project/pull/204544.diff
2 Files Affected:
- (modified) llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp (+7)
- (modified) llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp (-5)
``````````diff
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp b/llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
index 94af63796c94a..04c4e045e231d 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
@@ -123,9 +123,16 @@ static HWEvents getEventsForImpl(const MachineInstr &Inst,
if (TII.mayAccessLDSThroughFlat(Inst))
E |= HWEvents::LDS_ACCESS;
+
+ if (SIInstrInfo::usesASYNC_CNT(Inst))
+ E |= HWEvents::ASYNC_ACCESS;
+
return E;
}
+ if (SIInstrInfo::usesTENSOR_CNT(Inst))
+ return HWEvents::TENSOR_ACCESS;
+
if (SIInstrInfo::isVMEM(Inst) &&
(!AMDGPU::getMUBUFIsBufferInv(Inst.getOpcode()) ||
Inst.getOpcode() == AMDGPU::BUFFER_WBL2)) {
diff --git a/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp b/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
index 498f92e5a6d10..65089858a8fbf 100644
--- a/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+++ b/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
@@ -2668,11 +2668,6 @@ void SIInsertWaitcnts::updateEventWaitcntAfter(MachineInstr &Inst,
// pointers so that both VM and LGKM counters are flushed.
ScoreBrackets->setPendingFlat();
}
- if (SIInstrInfo::usesASYNC_CNT(Inst)) {
- ScoreBrackets->updateByEvent(HWEvents::ASYNC_ACCESS, Inst);
- }
- } else if (SIInstrInfo::usesTENSOR_CNT(Inst)) {
- ScoreBrackets->updateByEvent(HWEvents::TENSOR_ACCESS, Inst);
} else if (Inst.isCall()) {
// Act as a wait on everything, but AsyncCnt and TensorCnt are never
// included in such blanket waits.
``````````
</details>
https://github.com/llvm/llvm-project/pull/204544
More information about the llvm-branch-commits
mailing list