[llvm] [AMDGPU] Marking super-reg as implicit-def in first spill instruction (PR #114773)

Vikash Gupta via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 19 01:56:55 PST 2024


vg0204 wrote:

> > $vgpr254 = V_ACCVGPR_READ_B32_e64 $agpr0, implicit $exec, implicit-def $agpr0_agpr1
> 
> That implicit def looks completely wrong to me. If anything, it should be an implicit def of `$vgpr254_vgpr255`, i.e. the entire tuple of which this instruction is only explicitly deffing one part.

Just want to point this again what jayfoad said, there seems one major difference besides the way implicit is used(in spill tuple(first & last spill only) expansion and copyPhysReg(all subregs) expansion), i.e. in usage of implicit-def. The spill version uses implicit-def with SrcRegister, whereas, copyPhysReg makes use of it for its DestRegister. In both scenarios, SrcReg are implicitly defined identically. Can anyone comment on this!



https://github.com/llvm/llvm-project/pull/114773


More information about the llvm-commits mailing list