diff options
author | Jay Foad <jay.foad@amd.com> | 2024-05-21 13:33:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-21 13:33:20 +0100 |
commit | f3aaaafe50697a1d9985836adb0b167aab05047c (patch) | |
tree | bd57f6eb657938963649b8cb09bd1aa11a124f08 | |
parent | 45293b5edb7f320bc1b14b6ce8ac90ed111baa53 (diff) | |
download | llvm-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.cpp | 53 |
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). |