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