Do not fold SGPR->VGPR->AGPR copies, or AGPR->VGPR->AGPR copies. We
need to introduce a temporary VGPR. It's better if this this temp
register is explicitly visible to the register allocator, rather than
relying on the register scavenger later. A future change will
introduce the temporary VGPRs, and this combine would undo that.
Details
Details
Diff Detail
Diff Detail
Event Timeline
llvm/lib/Target/AMDGPU/SIRegisterInfo.h | ||
---|---|---|
175 | It is not a part of this change. |
Comment Actions
I'm working on eliminating some AGPR->VGPR->AGPR copies which commonly cause problems in loops where the VGPR is considered live across iterations by the register allocator even if the VGPR copy should be sunk. Why do we need this temp VGPR?
It is not a part of this change.