[llvm] [AMDGPU] Switch default dwarf register encoding to wave32 (PR #149515)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 18 06:47:21 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mc
@llvm/pr-subscribers-debuginfo
Author: Emma Pilkington (epilk)
<details>
<summary>Changes</summary>
This affects tools that don't set up the full subtarget, like llvm-dwarfdump or llvm-mc.
---
Full diff: https://github.com/llvm/llvm-project/pull/149515.diff
3 Files Affected:
- (modified) llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp (+2-1)
- (modified) llvm/test/DebugInfo/AMDGPU/print-reg-name.s (+2-2)
- (modified) llvm/unittests/MC/AMDGPU/DwarfRegMappings.cpp (+15)
``````````diff
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
index d66725d3a6c4b..d01f49f911a4a 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
@@ -64,7 +64,8 @@ static MCRegisterInfo *createAMDGPUMCRegisterInfo(const Triple &TT) {
if (TT.getArch() == Triple::r600)
InitR600MCRegisterInfo(X, 0);
else
- InitAMDGPUMCRegisterInfo(X, AMDGPU::PC_REG);
+ InitAMDGPUMCRegisterInfo(X, AMDGPU::PC_REG, AMDGPUDwarfFlavour::Wave32,
+ AMDGPUDwarfFlavour::Wave32);
return X;
}
diff --git a/llvm/test/DebugInfo/AMDGPU/print-reg-name.s b/llvm/test/DebugInfo/AMDGPU/print-reg-name.s
index fdd2c59bdd168..fd453696556d1 100644
--- a/llvm/test/DebugInfo/AMDGPU/print-reg-name.s
+++ b/llvm/test/DebugInfo/AMDGPU/print-reg-name.s
@@ -10,7 +10,7 @@ f:
; CHECK: .cfi_undefined 2560
.cfi_undefined 2560
; FIXME: Until we implement a distinct set of DWARF register names we
-; will continue to parse physical registers and pick an arbitrary encoding.
-; CHECK: .cfi_undefined 2560
+; will continue to parse physical registers and pick the default encoding.
+; CHECK: .cfi_undefined 1536
.cfi_undefined v0
.cfi_endproc
diff --git a/llvm/unittests/MC/AMDGPU/DwarfRegMappings.cpp b/llvm/unittests/MC/AMDGPU/DwarfRegMappings.cpp
index 8236509fd0a47..4fc06f098adce 100644
--- a/llvm/unittests/MC/AMDGPU/DwarfRegMappings.cpp
+++ b/llvm/unittests/MC/AMDGPU/DwarfRegMappings.cpp
@@ -81,3 +81,18 @@ TEST(AMDGPUDwarfRegMappingTests, TestWave32DwarfRegMapping) {
}
}
}
+
+TEST(AMDGPUDwarfRegMappingTests, TestDefaultDwarfRegMapping) {
+ InitializeAMDGPUTarget();
+ std::string Error;
+ const Target *TheTarget =
+ TargetRegistry::lookupTarget("amdgcn-amd-amdhsa", Error);
+ ASSERT_TRUE(Error.empty()) << Error;
+ std::unique_ptr<MCRegisterInfo> MRI{
+ TheTarget->createMCRegInfo("amdgcn-amd-amdhsa")};
+ // Verify that we use the wave32 encodings by default.
+ EXPECT_TRUE(MRI->getLLVMRegNum(1536, false));
+ EXPECT_TRUE(MRI->getLLVMRegNum(2048, false));
+ EXPECT_FALSE(MRI->getLLVMRegNum(2560, false));
+ EXPECT_FALSE(MRI->getLLVMRegNum(3072, false));
+}
``````````
</details>
https://github.com/llvm/llvm-project/pull/149515
More information about the llvm-commits
mailing list