Hazard recognizer fails to see hazard with V_READLANE_B32_gfx10.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 39788 Build 39834: arc lint + arc unit
Event Timeline
Comment Actions
It is OK as a w/a, but real opcode should not appear that early.
@arsenm What is the reason to use MC opcode in the SIFrameLowering::emitEpilogue()?
BuildMI(MBB, MBBI, DL, TII->getMCOpcodeFromPseudo(AMDGPU::V_READLANE_B32), FuncInfo->getFrameOffsetReg())
Comment Actions
There is a reason for it, but I don't remember what it is. I've tried to fix this multiple times in the past, and then rediscovered why. I think it had something to do with an operand constraint/encoding change in VI
Comment Actions
The same is also done in spillSGPR/restoreSGPR, the PEI version was just reproducing the same
Comment Actions
Hi @kerbowa, why is this needed for gfx10? The public RDNA documentation says:
4.5. Manually Inserted Wait States (NOPs) Inserting S_NOP is never required to achieve correct operation.
Is this not the full story?
Comment Actions
It does not have data hazards, but then it has some bugs. This one is SMEMtoVectorWriteHazard.