[llvm] [AMDGPU] Remove #if 0 code for fences in SIInsertWaitcnts (PR #92902)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Tue May 21 05:11:20 PDT 2024
https://github.com/jayfoad created https://github.com/llvm/llvm-project/pull/92902
We insert required waits for fences in SIMemoryLegalizer.
>From 2320bb9a191b5e97fdfffb2c42316182de3fcf3d Mon Sep 17 00:00:00 2001
From: Jay Foad <jay.foad at amd.com>
Date: Tue, 21 May 2024 13:10:04 +0100
Subject: [PATCH] [AMDGPU] Remove #if 0 code for fences in SIInsertWaitcnts
We insert required waits for fences in SIMemoryLegalizer.
---
llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp | 53 ---------------------
1 file changed, 53 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp b/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
index 5577ce9eb1282..4799b4cb20892 100644
--- a/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+++ b/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
@@ -1673,59 +1673,6 @@ bool SIInsertWaitcnts::generateWaitcntInstBefore(MachineInstr &MI,
AMDGPU::SendMsg::ID_GS_DONE_PreGFX11)) {
Wait.LoadCnt = 0;
}
-#if 0 // TODO: the following blocks of logic when we have fence.
- else if (MI.getOpcode() == SC_FENCE) {
- const unsigned int group_size =
- context->shader_info->GetMaxThreadGroupSize();
- // group_size == 0 means thread group size is unknown at compile time
- const bool group_is_multi_wave =
- (group_size == 0 || group_size > target_info->GetWaveFrontSize());
- const bool fence_is_global = !((SCInstInternalMisc*)Inst)->IsGroupFence();
-
- for (unsigned int i = 0; i < Inst->NumSrcOperands(); i++) {
- SCRegType src_type = Inst->GetSrcType(i);
- switch (src_type) {
- case SCMEM_LDS:
- if (group_is_multi_wave ||
- context->OptFlagIsOn(OPT_R1100_LDSMEM_FENCE_CHICKEN_BIT)) {
- EmitWaitcnt |= ScoreBrackets->updateByWait(DS_CNT,
- ScoreBrackets->getScoreUB(DS_CNT));
- // LDS may have to wait for VMcnt after buffer load to LDS
- if (target_info->HasBufferLoadToLDS()) {
- EmitWaitcnt |= ScoreBrackets->updateByWait(LOAD_CNT,
- ScoreBrackets->getScoreUB(LOAD_CNT));
- }
- }
- break;
-
- case SCMEM_GDS:
- if (group_is_multi_wave || fence_is_global) {
- EmitWaitcnt |= ScoreBrackets->updateByWait(EXP_CNT,
- ScoreBrackets->getScoreUB(EXP_CNT));
- EmitWaitcnt |= ScoreBrackets->updateByWait(DS_CNT,
- ScoreBrackets->getScoreUB(DS_CNT));
- }
- break;
-
- case SCMEM_UAV:
- case SCMEM_TFBUF:
- case SCMEM_RING:
- case SCMEM_SCATTER:
- if (group_is_multi_wave || fence_is_global) {
- EmitWaitcnt |= ScoreBrackets->updateByWait(EXP_CNT,
- ScoreBrackets->getScoreUB(EXP_CNT));
- EmitWaitcnt |= ScoreBrackets->updateByWait(LOAD_CNT,
- ScoreBrackets->getScoreUB(LOAD_CNT));
- }
- break;
-
- case SCMEM_SCRATCH:
- default:
- break;
- }
- }
- }
-#endif
// Export & GDS instructions do not read the EXEC mask until after the export
// is granted (which can occur well after the instruction is issued).
More information about the llvm-commits
mailing list