================ @@ -2551,8 +2551,34 @@ int GCNHazardRecognizer::checkPermlaneHazards(MachineInstr *MI) { return isVCmpXWritesExec(*TII, *TRI, MI); }; - const int NumWaitStates = 4; - return NumWaitStates - getWaitStatesSince(IsVCmpXWritesExecFn, NumWaitStates); + auto IsVALUFn = [](const MachineInstr &MI) { + return SIInstrInfo::isVALU(MI); + }; + + const int VCmpXWritesExecWaitStates = 4; + const int VALUWritesVDstWaitStates = 2; + int WaitStatesNeeded = 0; + + for (const MachineOperand &Op : MI->explicit_uses()) { + if (!Op.isReg() || !TRI->isVGPR(MF.getRegInfo(), Op.getReg())) + continue; + Register Reg = Op.getReg(); + + int WaitStatesSinceDef = + VALUWritesVDstWaitStates - + getWaitStatesSinceDef(Reg, IsVALUFn, + /*MaxWaitStates=*/VALUWritesVDstWaitStates); ---------------- arsenm wrote:
The usage doesn't exactly map to the definition name though https://github.com/llvm/llvm-project/pull/117287 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits