Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
There is one thing I never really understood: is regunit really a register? On our target it is for the fact, but generally speaking? It looks like a quite artificial iterator for me. In particular regunit numerical value does not need to match any real physreg as far as I understand.
RegUnits are *not* registers, so you should not use Register for them
llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp | ||
---|---|---|
351 | This query doesn't make any sense |
llvm/include/llvm/CodeGen/RegisterPressure.h | ||
---|---|---|
40 | This is a pretty strange aliasing |
Fair enough. What are they?
llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp | ||
---|---|---|
351 | Any idea what it should say instead? |
They are the smallest tracked piece of a physical register. They aren't necessarily addressable. In VGPR0_VGPR1, since recently we have regunits VGPR0.lo16, VGPR0.hi16, VGPR1.lo16, VGPR1.hi16, even though the high halves can't be encoded in instructions
This is a pretty strange aliasing