Add 96-bit, 160-bit and 256-bit AReg classes to match VReg and SReg.
NFC as far as I know, but it may avoid weird legalization problems.
Details
- Reviewers
arsenm rampitec - Commits
- rGd625b4b081f9: [AMDGPU] Add missing AReg classes
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Missing changes to: AMDGPUAsmPrinter::analyzeResourceUsage(), AMDGPUAsmParser.cpp:getRegClass(), SITargetLowering::getRegForInlineAsmConstraint().
llvm/lib/Target/AMDGPU/SIRegisterInfo.td | ||
---|---|---|
778 | They all missing let Weight = ... I have somehow missed it. | |
llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp | ||
1107 | Missing AGPR* classes. |
Add weights for all AReg classes.
Update AMDGPUAsmPrinter, AMDGPUAsmParser, AMDGPUDisassembler,
SIMCCodeEmitter and SITargetLowering::getRegForInlineAsmConstraint.
llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp | ||
---|---|---|
1107 | True, but it is also missing most VGPR* classes and some SGPR* classes. Are they really all supposed to be included here? |
LGTM
llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp | ||
---|---|---|
1107 | I think they are. If these will appear in MI operand definitions eventually it will assert. |
Actually SIMCCodeEmitter.cpp changes are an error.
llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp | ||
---|---|---|
422 | Ugh. This should not be here. It never can be SrcA or SrcB. |
llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp | ||
---|---|---|
422 | Ugh again. I did some testing and it turns to be right. Please disregard. |
Ugh. This should not be here. It never can be SrcA or SrcB.