forked from OSchip/llvm-project
[AMDGPU] Set wait state for meta instructions to zero
It looked more reasonable to set the wait state to zero for all non-instructions. With that we can avoid the special handling for them in `getWaitStatesSince` and `AdvanceCycle`. This NFC patch makes the handling more generic.
This commit is contained in:
parent
803270c0c6
commit
4f5ba46e16
|
@ -349,14 +349,6 @@ void GCNHazardRecognizer::AdvanceCycle() {
|
|||
return;
|
||||
}
|
||||
|
||||
// Do not track non-instructions which do not affect the wait states.
|
||||
// If included, these instructions can lead to buffer overflow such that
|
||||
// detectable hazards are missed.
|
||||
if (CurrCycleInstr->isMetaInstruction()) {
|
||||
CurrCycleInstr = nullptr;
|
||||
return;
|
||||
}
|
||||
|
||||
if (CurrCycleInstr->isBundle()) {
|
||||
processBundle();
|
||||
return;
|
||||
|
@ -413,7 +405,7 @@ static int getWaitStatesSince(GCNHazardRecognizer::IsHazardFn IsHazard,
|
|||
if (IsHazard(*I))
|
||||
return WaitStates;
|
||||
|
||||
if (I->isInlineAsm() || I->isMetaInstruction())
|
||||
if (I->isInlineAsm())
|
||||
continue;
|
||||
|
||||
WaitStates += SIInstrInfo::getNumWaitStates(*I);
|
||||
|
|
|
@ -1637,7 +1637,10 @@ void SIInstrInfo::insertReturn(MachineBasicBlock &MBB) const {
|
|||
|
||||
unsigned SIInstrInfo::getNumWaitStates(const MachineInstr &MI) {
|
||||
switch (MI.getOpcode()) {
|
||||
default: return 1; // FIXME: Do wait states equal cycles?
|
||||
default:
|
||||
if (MI.isMetaInstruction())
|
||||
return 0;
|
||||
return 1; // FIXME: Do wait states equal cycles?
|
||||
|
||||
case AMDGPU::S_NOP:
|
||||
return MI.getOperand(0).getImm() + 1;
|
||||
|
|
Loading…
Reference in New Issue