Skip to content

Commit aeefdeb

Browse files
matborzyszkowskiigcbot
authored andcommitted
Reverse sequence of locals in DWARF
Reverse sequence of locals in `DWARF` to unify locals order printed by debugger on CPU and GPU
1 parent 39d2dce commit aeefdeb

File tree

4 files changed

+38
-36
lines changed

4 files changed

+38
-36
lines changed

IGC/DebugInfo/DwarfDebug.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -727,7 +727,10 @@ DIE *DwarfDebug::createScopeChildrenDIE(CompileUnit *TheCU, LexicalScope *Scope,
727727

728728
{
729729
// Collect lexical scope variables.
730-
const DbgVariablesVect &Variables = ScopeVariables.lookup(Scope);
730+
DbgVariablesVect Variables = ScopeVariables.lookup(Scope);
731+
// Reverse the vector of the variables to unify locals order
732+
// printed by cpu & gpu under debugger.
733+
std::reverse(Variables.begin(), Variables.end());
731734
std::copy(Variables.begin(), Variables.end(),
732735
std::back_inserter(dbgVariables));
733736
}

IGC/VectorCompiler/test/DebugInfo/basic_var_locs.ll

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,40 +23,40 @@ target triple = "genx64-unknown-unknown"
2323
; RUN: llvm-dwarfdump dbginfo_%basename_t_vector_add_dwarf.elf | FileCheck %s --check-prefix DWARFDUMP
2424

2525
; CHECK: DW_TAG_variable
26-
; DWARFDUMP: DW_AT_name ("offset")
27-
; CHECK-NEXT: DW_AT_name : offset
26+
; DWARFDUMP: DW_AT_name ("ovector")
27+
; CHECK-NEXT: DW_AT_name : ovector
2828
; CHECK-NEXT: DW_AT_decl_file
2929
; CHECK-NEXT: DW_AT_decl_line
30-
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "unsigned int")
30+
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "int[16]")
3131
; CHECK-NEXT: DW_AT_type
32-
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[OFF_LOC:[0-9a-f]+]] (location list)
32+
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[OVEC_LOC:[0-9a-f]+]] (location list)
3333

3434
; CHECK: DW_TAG_variable
35-
; DWARFDUMP: DW_AT_name ("ivector1")
36-
; CHECK-NEXT: DW_AT_name : ivector1
35+
; DWARFDUMP: DW_AT_name ("ivector2")
36+
; CHECK-NEXT: DW_AT_name : ivector2
3737
; CHECK-NEXT: DW_AT_decl_file
3838
; CHECK-NEXT: DW_AT_decl_line
3939
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "int[16]")
4040
; CHECK-NEXT: DW_AT_type
41-
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[IVEC1_LOC:[0-9a-f]+]] (location list)
41+
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[IVEC2_LOC:[0-9a-f]+]] (location list)
4242

4343
; CHECK: DW_TAG_variable
44-
; DWARFDUMP: DW_AT_name ("ivector2")
45-
; CHECK-NEXT: DW_AT_name : ivector2
44+
; DWARFDUMP: DW_AT_name ("ivector1")
45+
; CHECK-NEXT: DW_AT_name : ivector1
4646
; CHECK-NEXT: DW_AT_decl_file
4747
; CHECK-NEXT: DW_AT_decl_line
4848
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "int[16]")
4949
; CHECK-NEXT: DW_AT_type
50-
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[IVEC2_LOC:[0-9a-f]+]] (location list)
50+
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[IVEC1_LOC:[0-9a-f]+]] (location list)
5151

5252
; CHECK: DW_TAG_variable
53-
; DWARFDUMP: DW_AT_name ("ovector")
54-
; CHECK-NEXT: DW_AT_name : ovector
53+
; DWARFDUMP: DW_AT_name ("offset")
54+
; CHECK-NEXT: DW_AT_name : offset
5555
; CHECK-NEXT: DW_AT_decl_file
5656
; CHECK-NEXT: DW_AT_decl_line
57-
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "int[16]")
57+
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "unsigned int")
5858
; CHECK-NEXT: DW_AT_type
59-
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[OVEC_LOC:[0-9a-f]+]] (location list)
59+
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[OFF_LOC:[0-9a-f]+]] (location list)
6060

6161
; locations in location-list
6262
; CHECK-DAG: [[OFF_LOC]] {{[^(]+}}(DW_OP_lit[[#]]; DW_OP_{{lit|const1u: }}[[#]]; DW_OP_INTEL_regval_bits: 32; DW_OP_constu: 6; DW_OP_shl; DW_OP_stack_value)

IGC/VectorCompiler/test/DebugInfo/basic_var_locs_small.ll

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,41 +23,40 @@ target triple = "genx64-unknown-unknown"
2323
; RUN: llvm-dwarfdump dbginfo_%basename_t_vector_add_dwarf.elf | FileCheck %s --check-prefix DWARFDUMP
2424

2525
; CHECK: DW_TAG_variable
26-
; DWARFDUMP: DW_AT_name ("offset")
27-
; CHECK-NEXT: DW_AT_name : offset
26+
; DWARFDUMP: DW_AT_name ("ovector")
27+
; CHECK-NEXT: DW_AT_name : ovector
2828
; CHECK-NEXT: DW_AT_decl_file
2929
; CHECK-NEXT: DW_AT_decl_line
30-
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "unsigned int")
30+
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "int[8]")
3131
; CHECK-NEXT: DW_AT_type
32-
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[OFF_LOC:[0-9a-f]+]] (location list)
33-
32+
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[OVEC_LOC:[0-9a-f]+]] (location list)
3433

3534
; CHECK: DW_TAG_variable
36-
; DWARFDUMP: DW_AT_name ("ivector1")
37-
; CHECK-NEXT: DW_AT_name : ivector1
35+
; DWARFDUMP: DW_AT_name ("ivector2")
36+
; CHECK-NEXT: DW_AT_name : ivector2
3837
; CHECK-NEXT: DW_AT_decl_file
3938
; CHECK-NEXT: DW_AT_decl_line
4039
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "int[8]")
4140
; CHECK-NEXT: DW_AT_type
42-
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[IVEC1_LOC:[0-9a-f]+]] (location list)
41+
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[IVEC2_LOC:[0-9a-f]+]] (location list)
4342

4443
; CHECK: DW_TAG_variable
45-
; DWARFDUMP: DW_AT_name ("ivector2")
46-
; CHECK-NEXT: DW_AT_name : ivector2
44+
; DWARFDUMP: DW_AT_name ("ivector1")
45+
; CHECK-NEXT: DW_AT_name : ivector1
4746
; CHECK-NEXT: DW_AT_decl_file
4847
; CHECK-NEXT: DW_AT_decl_line
4948
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "int[8]")
5049
; CHECK-NEXT: DW_AT_type
51-
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[IVEC2_LOC:[0-9a-f]+]] (location list)
50+
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[IVEC1_LOC:[0-9a-f]+]] (location list)
5251

5352
; CHECK: DW_TAG_variable
54-
; DWARFDUMP: DW_AT_name ("ovector")
55-
; CHECK-NEXT: DW_AT_name : ovector
53+
; DWARFDUMP: DW_AT_name ("offset")
54+
; CHECK-NEXT: DW_AT_name : offset
5655
; CHECK-NEXT: DW_AT_decl_file
5756
; CHECK-NEXT: DW_AT_decl_line
58-
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "int[8]")
57+
; DWARFDUMP: DW_AT_type ({{0x[0-9a-f]+}} "unsigned int")
5958
; CHECK-NEXT: DW_AT_type
60-
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[OVEC_LOC:[0-9a-f]+]] (location list)
59+
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[OFF_LOC:[0-9a-f]+]] (location list)
6160

6261
; CHECK-DAG: [[OFF_LOC]] {{[^(]+}}(DW_OP_lit[[#]]; DW_OP_{{lit|const1u: }}[[#]]; DW_OP_INTEL_regval_bits: 32; DW_OP_constu: 6; DW_OP_shl; DW_OP_stack_value)
6362
; CHECK-DAG: [[IVEC1_LOC]] {{[^(]+}}(DW_OP_{{reg|regx: }}[[#]] ({{r|xmm}}[[#]]); DW_OP_bit_piece: size: 256 offset: 0 )

IGC/VectorCompiler/test/DebugInfo/var_loc_ptr.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@
1919
; CHECK-NEXT: DW_AT_type : <{{0x[0-9a-f]+}}>
2020
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[BUF_LOC:[0-9a-f]+]] (location list)
2121

22-
; CHECK: DW_AT_name : artificial_vect
22+
; CHECK: DW_AT_name : data
2323
; CHECK-NEXT: DW_AT_decl_file : 1
24-
; CHECK-NEXT: DW_AT_decl_line : 777
24+
; CHECK-NEXT: DW_AT_decl_line : 7
2525
; CHECK-NEXT: DW_AT_type : <[[VECT_TYPE:0x[0-9a-f]+]]>
26-
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[VECT_LOC:[0-9a-f]+]] (location list)
26+
; CHECK-NEXT: DW_AT_const_value : 64 byte block: 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 6 0 0 0 7 0 0 0 8 0 0 0 9 0 0 0 a 0 0 0 b 0 0 0 c 0 0 0 d 0 0 0 e 0 0 0 f 0 0 0
2727

28-
; CHECK: DW_AT_name : data
28+
; CHECK: DW_AT_name : artificial_vect
2929
; CHECK-NEXT: DW_AT_decl_file : 1
30-
; CHECK-NEXT: DW_AT_decl_line : 7
30+
; CHECK-NEXT: DW_AT_decl_line : 777
3131
; CHECK-NEXT: DW_AT_type : <[[VECT_TYPE]]>
32-
; CHECK-NEXT: DW_AT_const_value : 64 byte block: 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 6 0 0 0 7 0 0 0 8 0 0 0 9 0 0 0 a 0 0 0 b 0 0 0 c 0 0 0 d 0 0 0 e 0 0 0 f 0 0 0
32+
; CHECK-NEXT: DW_AT_location : {{(0x)?}}[[VECT_LOC:[0-9a-f]+]] (location list)
3333

3434
; debug_loc section
3535
; CHECK-DAG: [[BUF_LOC]] {{[^(]+}}(DW_OP_lit[[#]]; DW_OP_{{lit|const1u: }}[[#]]; DW_OP_INTEL_regval_bits: 64; DW_OP_stack_value)

0 commit comments

Comments
 (0)