Skip to content

Commit a96dbb9

Browse files
committed
CodeGen: Use asm register names in warning message
This was using the ugly tablegenerated register enum names, which are really hideous for register tuples on AMDGPU. Use the prettier names which are recognized by the asm parser.
1 parent 245e25f commit a96dbb9

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,9 +398,9 @@ void AsmPrinter::emitInlineAsm(const MachineInstr *MI) const {
398398
if (!RestrRegs.empty()) {
399399
std::string Msg = "inline asm clobber list contains reserved registers: ";
400400
ListSeparator LS;
401-
for (const Register &RR : RestrRegs) {
401+
for (const Register RR : RestrRegs) {
402402
Msg += LS;
403-
Msg += TRI->getName(RR);
403+
Msg += TRI->getRegAsmName(RR);
404404
}
405405
const char *Note =
406406
"Reserved registers on the clobber list may not be "

llvm/test/CodeGen/AMDGPU/inline-asm-reserved-regs.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -verify-machineinstrs -o /dev/null 2>&1 %s | FileCheck -check-prefix=ERR %s
22

3-
; ERR: warning: inline asm clobber list contains reserved registers: VGPR42
3+
; ERR: warning: inline asm clobber list contains reserved registers: v42
44
; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.
55
define amdgpu_kernel void @clobber_occupancy_limited_vgpr() #0 {
66
entry:
77
call void asm sideeffect "; clobber $0", "~{v42}"()
88
ret void
99
}
1010

11-
; ERR: warning: inline asm clobber list contains reserved registers: VGPR42_VGPR43
11+
; ERR: warning: inline asm clobber list contains reserved registers: v[42:43]
1212
; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.
1313
define amdgpu_kernel void @clobber_occupancy_limited_vgpr64() #0 {
1414
entry:
1515
call void asm sideeffect "; clobber $0", "~{v[42:43]}"()
1616
ret void
1717
}
1818

19-
; ERR: warning: inline asm clobber list contains reserved registers: M0
19+
; ERR: warning: inline asm clobber list contains reserved registers: m0
2020
; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.
2121
define amdgpu_kernel void @clobber_m0() {
2222
entry:
2323
call void asm sideeffect "; clobber $0", "~{m0}"()
2424
ret void
2525
}
2626

27-
; ERR: warning: inline asm clobber list contains reserved registers: EXEC
27+
; ERR: warning: inline asm clobber list contains reserved registers: exec
2828
; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.
2929
define amdgpu_kernel void @clobber_exec() {
3030
entry:
3131
call void asm sideeffect "; clobber $0", "~{exec}"()
3232
ret void
3333
}
3434

35-
; ERR: warning: inline asm clobber list contains reserved registers: EXEC_LO
35+
; ERR: warning: inline asm clobber list contains reserved registers: exec_lo
3636
; ERR: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.
3737
define amdgpu_kernel void @clobber_exec_lo() {
3838
entry:

0 commit comments

Comments
 (0)