aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Foad <jay.foad@amd.com>2024-05-21 13:33:20 +0100
committerGitHub <noreply@github.com>2024-05-21 13:33:20 +0100
commitf3aaaafe50697a1d9985836adb0b167aab05047c (patch)
treebd57f6eb657938963649b8cb09bd1aa11a124f08
parent45293b5edb7f320bc1b14b6ce8ac90ed111baa53 (diff)
downloadllvm-f3aaaafe50697a1d9985836adb0b167aab05047c.zip
llvm-f3aaaafe50697a1d9985836adb0b167aab05047c.tar.gz
llvm-f3aaaafe50697a1d9985836adb0b167aab05047c.tar.bz2
[AMDGPU] Remove #if 0 code for fences in SIInsertWaitcnts (#92902)
We insert required waits for fences in SIMemoryLegalizer.
-rw-r--r--llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp53
1 files changed, 0 insertions, 53 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp b/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
index 5577ce9..4799b4c 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).