[llvm] [LiveDebugVariables] Fix a DBG_VALUE reordering issue (PR #111124)
David Stenberg via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 4 06:43:50 PDT 2024
================
@@ -12,11 +12,11 @@ define <4 x float> @Scene_transformT(i32 %subshapeIdx, <4 x float> %v, float %ti
entry:
; CHECK: v_mov_b32_e32 v[[COPIED_ARG_PIECE:[0-9]+]], v9
- ; CHECK: ;DEBUG_VALUE: Scene_transformT:gScene <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 0 32] $vgpr6
+ ; CHECK: ;DEBUG_VALUE: Scene_transformT:gSceneOffsets <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 32 32] $vgpr[[COPIED_ARG_PIECE]]
+ ; CHECK: ;DEBUG_VALUE: Scene_transformT:gSceneOffsets <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 0 32] $vgpr8
; CHECK: ;DEBUG_VALUE: Scene_transformT:gScene <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 32 32] $vgpr7
+ ; CHECK: ;DEBUG_VALUE: Scene_transformT:gScene <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 0 32] $vgpr6
call void @llvm.dbg.value(metadata ptr addrspace(1) %gScene, metadata !120, metadata !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef)), !dbg !154
- ; CHECK: ;DEBUG_VALUE: Scene_transformT:gSceneOffsets <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 0 32] $vgpr8
- ; CHECK: ;DEBUG_VALUE: Scene_transformT:gSceneOffsets <- [DW_OP_constu 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment 32 32] $vgpr[[COPIED_ARG_PIECE]]
call void @llvm.dbg.value(metadata ptr addrspace(1) %gSceneOffsets, metadata !121, metadata !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef)), !dbg !155
%call = tail call ptr addrspace(1) @Scene_getSubShapeData(i32 %subshapeIdx, ptr addrspace(1) %gScene, ptr addrspace(1) %gSceneOffsets)
----------------
dstenb wrote:
In this case the debug values get reordered at isel due to the order of the lowered parameters. I should perhaps have added an XXX note about that in the test. I can do that.
```
define <4 x float> @Scene_transformT(i32 %subshapeIdx, <4 x float> %v, float %time, ptr addrspace(1) %gScene, ptr addrspace(1) %gSceneOffsets) local_unnamed_addr !dbg !110 {
entry:
#dbg_value(ptr addrspace(1) %gScene, !120, !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef), !154)
#dbg_value(ptr addrspace(1) %gSceneOffsets, !121, !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef), !155)
```
```
# *** IR Dump After AMDGPU DAG->DAG Pattern Instruction Selection (amdgpu-isel) ***:
# Machine code for function Scene_transformT: IsSSA, TracksLiveness
Function Live Ins: $sgpr4_sgpr5 in %55, $sgpr8_sgpr9 in %56, $sgpr10_sgpr11 in %57, $sgpr12 in %58, $sgpr13 in %59, $sgpr14 in %60, $sgpr15 in %61, $vgpr0 in %62, $vgpr1 in %63, $vgpr2 in %64, $vgpr3 in %65, $vgpr4 in %66, $vgpr5 in %67, $vgpr6 in %68, $vgpr7 in %69, $vgpr8 in %70, $vgpr9 in %71, $sgpr6_sgpr7 in %73, $vgpr31 in %74
bb.0.entry:
successors: %bb.1(0x40000000), %bb.9(0x40000000); %bb.1(50.00%), %bb.9(50.00%)
liveins: $sgpr4_sgpr5, $sgpr8_sgpr9, $sgpr10_sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $sgpr6_sgpr7, $vgpr31
%74:vgpr_32 = COPY $vgpr31
%73:sgpr_64 = COPY $sgpr6_sgpr7
%71:vgpr_32 = COPY $vgpr9
DBG_VALUE %71:vgpr_32, $noreg, !"gSceneOffsets", !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment, 32, 32), debug-location !155; GraphMaterialSystemKernels1.cl:2182:102 line no:2182
%70:vgpr_32 = COPY $vgpr8
DBG_VALUE %70:vgpr_32, $noreg, !"gSceneOffsets", !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment, 0, 32), debug-location !155; GraphMaterialSystemKernels1.cl:2182:102 line no:2182
%69:vgpr_32 = COPY $vgpr7
DBG_VALUE %69:vgpr_32, $noreg, !"gScene", !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment, 32, 32), debug-location !154; GraphMaterialSystemKernels1.cl:2182:80 line no:2182
%68:vgpr_32 = COPY $vgpr6
DBG_VALUE %68:vgpr_32, $noreg, !"gScene", !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef, DW_OP_LLVM_fragment, 0, 32), debug-location !154; GraphMaterialSystemKernels1.cl:2182:80 line no:2182
```
https://github.com/llvm/llvm-project/pull/111124
More information about the llvm-commits
mailing list