[llvm] [NVPTX] Rename register classes after float register removal (NFC) (PR #145255)
Artem Belevich via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 23 11:46:39 PDT 2025
================
@@ -77,20 +77,20 @@ constants: []
machineFunctionInfo: {}
body: |
bb.0:
- %0:int32regs, %1:int32regs, %2:int32regs, %3:int32regs = LoadParamMemV4I32 0
+ %0:b32, %1:b32, %2:b32, %3:b32 = LoadParamMemV4I32 0
; CHECK-NOT: ProxyReg
- %4:int32regs = ProxyRegB32 killed %0
- %5:int32regs = ProxyRegB32 killed %1
- %6:int32regs = ProxyRegB32 killed %2
- %7:int32regs = ProxyRegB32 killed %3
+ %4:b32 = ProxyRegB32 killed %0
----------------
Artem-B wrote:
The original purpose was to enable library calls on the GPU:
https://reviews.llvm.org/D34708
https://github.com/llvm/llvm-project/commit/49fac56ea3bd3aae02cf03bff812128dc30b4a53
I've completely forgot that. Recently we've been sort of abusing those proxy registers to eliminate redundant register moves. e.g.
https://github.com/llvm/llvm-project/blob/2756879000c5cde9e956bb38148ea13366cff439/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td#L3258-L3264
Your changes have largely rendered this use case obsolete.
However, I believe the original use case is still valid. So, to answer my own question -- yes, we still probably need those proxy registers.
https://github.com/llvm/llvm-project/pull/145255
More information about the llvm-commits
mailing list