[llvm] r335861 - [DEBUG_INFO, NVPTX] Add test for .debug_loc section, NFC.

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 2 09:59:43 PDT 2018


Currently, debug info for NVPTX is disabled. It is emitted, but
commented out in the PTX file. I can try to generate the object file,
but it will generated without the debug info.

It tests, that debug info for the NVPTX target is correct, there are no
any extra lables in the output, that may break the compilation of the
resulting PTX file and we do not miss anything in the output (emission
of not supported sections, data etc., which, again, can break the
resulting PTX file). Unless the debug info is uncommented and , thus,
enabled, I can't update these tests to use llvm-darfdump.

-------------
Best regards,
Alexey Bataev

02.07.2018 12:47, David Blaikie пишет:
> What is it that prevents these being able to be dumped with
> llvm-dwarfdump?
>
> In any case - what's this test testing for? Even without dwarfdump,
> could it be more specialized/narrowed down so it isn't so constrained
> (looks more like a golden file test at this point, which are prone to
> break due to unrelated changes, etc)?
>
> On Mon, Jul 2, 2018 at 9:43 AM Alexey Bataev <a.bataev at outlook.com
> <mailto:a.bataev at outlook.com>> wrote:
>
>     Hi David, unfortunately not, at least at this moment. Later, when
>     we'll have full support of debug info for NVPTX target I would be
>     able to rework these tests to use  llvm-dwarfdump tool
>
>     -------------
>     Best regards,
>     Alexey Bataev
>
>     02.07.2018 12:36, David Blaikie пишет:
>>     Testing all that raw assembly output seems like that might make
>>     this test overly sensitive to other changes?
>>
>>     Could this test use llvm-dwarfdump like other DWARF tests? & only
>>     test the particularly relevant parts (what is it that needs to be
>>     tested in debug_loc?)
>>
>>     On Thu, Jun 28, 2018 at 8:19 AM Alexey Bataev via llvm-commits
>>     <llvm-commits at lists.llvm.org
>>     <mailto:llvm-commits at lists.llvm.org>> wrote:
>>
>>         Author: abataev
>>         Date: Thu Jun 28 08:14:58 2018
>>         New Revision: 335861
>>
>>         URL: http://llvm.org/viewvc/llvm-project?rev=335861&view=rev
>>         Log:
>>         [DEBUG_INFO, NVPTX] Add test for .debug_loc section, NFC.
>>
>>         Added:
>>             llvm/trunk/test/DebugInfo/NVPTX/debug-loc-offset.ll
>>
>>         Added: llvm/trunk/test/DebugInfo/NVPTX/debug-loc-offset.ll
>>         URL:
>>         http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/NVPTX/debug-loc-offset.ll?rev=335861&view=auto
>>         ==============================================================================
>>         --- llvm/trunk/test/DebugInfo/NVPTX/debug-loc-offset.ll (added)
>>         +++ llvm/trunk/test/DebugInfo/NVPTX/debug-loc-offset.ll Thu
>>         Jun 28 08:14:58 2018
>>         @@ -0,0 +1,506 @@
>>         +; RUN: llc -mtriple=nvptx64-nvidia-cuda < %s | FileCheck %s
>>         +
>>         +; CHECK: .target sm_{{[0-9]+}}//, debug
>>         +
>>         +; CHECK: .extern .func  (.param .b32 func_retval0) _ZN1A3fooEv
>>         +; CHECK: (
>>         +; CHECK: .param .b64 _ZN1A3fooEv_param_0
>>         +; CHECK: )
>>         +
>>         +%struct.A = type { i32 (...)**, i32 }
>>         +
>>         +; CHECK: .visible .func  (.param .b32 func_retval0) _Z3bari(
>>         +; CHECK: {
>>         +; CHECK: Lfunc_begin0:
>>         +; CHECK: .loc [[CU1:[0-9]+]] 1 0
>>         +
>>         +; CHECK: //DEBUG_VALUE: bar:b <- {{[0-9]+}}
>>         +; CHECK: //DEBUG_VALUE: bar:b <- {{[0-9]+}}
>>         +; CHECK: .loc [[CU1]] 2 0
>>         +; CHECK: ret;
>>         +; CHECK: }
>>         +
>>         +; Function Attrs: nounwind
>>         +define i32 @_Z3bari(i32 %b) #0 !dbg !4 {
>>         +entry:
>>         +  %b.addr = alloca i32, align 4
>>         +  store i32 %b, i32* %b.addr, align 4
>>         +  call void @llvm.dbg.value(metadata i32 0, metadata !21,
>>         metadata !DIExpression()), !dbg !22
>>         +  %0 = load i32, i32* %b.addr, align 4, !dbg !23
>>         +  call void @llvm.dbg.value(metadata i32 1, metadata !21,
>>         metadata !DIExpression()), !dbg !22
>>         +  %add = add nsw i32 %0, 4, !dbg !23
>>         +  ret i32 %add, !dbg !23
>>         +}
>>         +
>>         +; Function Attrs: nounwind readnone
>>         +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
>>         +
>>         +declare void @llvm.dbg.value(metadata, metadata, metadata) #1
>>         +
>>         +; CHECK: .visible .func _Z3baz1A(
>>         +; CHECK: {
>>         +; CHECK: Lfunc_begin1:
>>         +; CHECK: .loc [[CU2:[0-9]+]] 6 0
>>         +; CHECK: //DEBUG_VALUE: baz:z <- {{[0-9]+}}
>>         +; CHECK: //DEBUG_VALUE: baz:z <- {{[0-9]+}}
>>         +; CHECK: .loc [[CU2]] 10 0
>>         +; CHECK: ret;
>>         +; CHECK: }
>>         +
>>         +define void @_Z3baz1A(%struct.A* %a) #2 !dbg !14 {
>>         +entry:
>>         +  %z = alloca i32, align 4
>>         +  call void @llvm.dbg.declare(metadata %struct.A* %a,
>>         metadata !24, metadata !DIExpression(DW_OP_deref)), !dbg !25
>>         +  call void @llvm.dbg.declare(metadata i32* %z, metadata
>>         !26, metadata !DIExpression()), !dbg !27
>>         +  store i32 2, i32* %z, align 4, !dbg !27
>>         +  %var = getelementptr inbounds %struct.A, %struct.A* %a,
>>         i32 0, i32 1, !dbg !28
>>         +  %0 = load i32, i32* %var, align 4, !dbg !28
>>         +  %cmp = icmp sgt i32 %0, 2, !dbg !28
>>         +  br i1 %cmp, label %if.then, label %if.end, !dbg !28
>>         +
>>         +if.then:                                          ; preds =
>>         %entry
>>         +  %1 = load i32, i32* %z, align 4, !dbg !30
>>         +  %inc = add nsw i32 %1, 1, !dbg !30
>>         +  store i32 %inc, i32* %z, align 4, !dbg !30
>>         +  br label %if.end, !dbg !30
>>         +
>>         +if.end:                                           ; preds =
>>         %if.then, %entry
>>         +  %call = call signext i8 @_ZN1A3fooEv(%struct.A* %a), !dbg !31
>>         +  %conv = sext i8 %call to i32, !dbg !31
>>         +  %cmp1 = icmp eq i32 %conv, 97, !dbg !31
>>         +  br i1 %cmp1, label %if.then2, label %if.end4, !dbg !31
>>         +
>>         +if.then2:                                         ; preds =
>>         %if.end
>>         +  %2 = load i32, i32* %z, align 4, !dbg !33
>>         +  %inc3 = add nsw i32 %2, 1, !dbg !33
>>         +  store i32 %inc3, i32* %z, align 4, !dbg !33
>>         +  br label %if.end4, !dbg !33
>>         +
>>         +if.end4:                                          ; preds =
>>         %if.then2, %if.end
>>         +  ret void, !dbg !34
>>         +}
>>         +
>>         +; CHECK-DAG: .file [[CU1]]
>>         "/llvm_cmake_gcc{{/|\\\\}}debug-loc-offset1.cc"
>>         +; CHECK-DAG: .file [[CU2]]
>>         "/llvm_cmake_gcc{{/|\\\\}}debug-loc-offset2.cc"
>>         +
>>         +declare signext i8 @_ZN1A3fooEv(%struct.A*) #2
>>         +
>>         +attributes #0 = { nounwind "less-precise-fpmad"="false"
>>         "no-frame-pointer-elim"="true"
>>         "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
>>         "no-nans-fp-math"="false" "stack-protector-buffer-size"="8"
>>         "unsafe-fp-math"="false" "use-soft-float"="false" }
>>         +attributes #1 = { nounwind readnone }
>>         +attributes #2 = { "less-precise-fpmad"="false"
>>         "no-frame-pointer-elim"="true"
>>         "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
>>         "no-nans-fp-math"="false" "stack-protector-buffer-size"="8"
>>         "unsafe-fp-math"="false" "use-soft-float"="false" }
>>         +
>>         +!llvm.dbg.cu <http://llvm.dbg.cu> = !{!0, !9}
>>         +!llvm.module.flags = !{!18, !19}
>>         +!llvm.ident = !{!20, !20}
>>         +
>>         +!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus,
>>         producer: "clang version 3.5.0 (210479)", isOptimized: false,
>>         emissionKind: FullDebug, file: !1, enums: !2, retainedTypes:
>>         !2, globals: !2, imports: !2)
>>         +!1 = !DIFile(filename: "debug-loc-offset1.cc", directory:
>>         "/llvm_cmake_gcc")
>>         +!2 = !{}
>>         +!4 = distinct !DISubprogram(name: "bar", linkageName:
>>         "_Z3bari", line: 1, isLocal: false, isDefinition: true,
>>         virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false,
>>         unit: !0, scopeLine: 1, file: !1, scope: !5, type: !6,
>>         retainedNodes: !2)
>>         +!5 = !DIFile(filename: "debug-loc-offset1.cc", directory:
>>         "/llvm_cmake_gcc")
>>         +!6 = !DISubroutineType(types: !7)
>>         +!7 = !{!8, !8}
>>         +!8 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size:
>>         32, align: 32, encoding: DW_ATE_signed)
>>         +!9 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus,
>>         producer: "clang version 3.5.0 (210479)", isOptimized: false,
>>         emissionKind: FullDebug, file: !10, enums: !2, retainedTypes:
>>         !11, globals: !2, imports: !2)
>>         +!10 = !DIFile(filename: "debug-loc-offset2.cc", directory:
>>         "/llvm_cmake_gcc")
>>         +!11 = !{!12}
>>         +!12 = !DICompositeType(tag: DW_TAG_structure_type, name:
>>         "A", line: 1, flags: DIFlagFwdDecl, file: !10, identifier:
>>         "_ZTS1A")
>>         +!14 = distinct !DISubprogram(name: "baz", linkageName:
>>         "_Z3baz1A", line: 6, isLocal: false, isDefinition: true,
>>         virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false,
>>         unit: !9, scopeLine: 6, file: !10, scope: !15, type: !16,
>>         retainedNodes: !2)
>>         +!15 = !DIFile(filename: "debug-loc-offset2.cc", directory:
>>         "/llvm_cmake_gcc")
>>         +!16 = !DISubroutineType(types: !17)
>>         +!17 = !{null, !12}
>>         +!18 = !{i32 2, !"Dwarf Version", i32 4}
>>         +!19 = !{i32 2, !"Debug Info Version", i32 3}
>>         +!20 = !{!"clang version 3.5.0 (210479)"}
>>         +!21 = !DILocalVariable(name: "b", line: 1, arg: 1, scope:
>>         !4, file: !5, type: !8)
>>         +!22 = !DILocation(line: 1, scope: !4)
>>         +!23 = !DILocation(line: 2, scope: !4)
>>         +!24 = !DILocalVariable(name: "a", line: 6, arg: 1, scope:
>>         !14, file: !15, type: !12)
>>         +!25 = !DILocation(line: 6, scope: !14)
>>         +!26 = !DILocalVariable(name: "z", line: 7, scope: !14, file:
>>         !15, type: !8)
>>         +!27 = !DILocation(line: 7, scope: !14)
>>         +!28 = !DILocation(line: 8, scope: !29)
>>         +!29 = distinct !DILexicalBlock(line: 8, column: 0, file:
>>         !10, scope: !14)
>>         +!30 = !DILocation(line: 9, scope: !29)
>>         +!31 = !DILocation(line: 10, scope: !32)
>>         +!32 = distinct !DILexicalBlock(line: 10, column: 0, file:
>>         !10, scope: !14)
>>         +!33 = !DILocation(line: 11, scope: !32)
>>         +!34 = !DILocation(line: 12, scope: !14)
>>         +
>>         +
>>         +; CHECK: // .section .debug_loc
>>         +; CHECK: // {
>>         +; CHECK: Ldebug_loc0:
>>         +; CHECK: // .b64 Lfunc_begin0-Lfunc_begin0
>>         +; CHECK: // .b64 Ltmp0-Lfunc_begin0
>>         +; CHECK: // .b8 2                                // Loc expr
>>         size
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 17                               // DW_OP_consts
>>         +; CHECK: // .b8 0                                // 0
>>         +; CHECK: // .b64 Ltmp0-Lfunc_begin0
>>         +; CHECK: // .b64 Lfunc_end0-Lfunc_begin0
>>         +; CHECK: // .b8 2                                // Loc expr
>>         size
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 17                               // DW_OP_consts
>>         +; CHECK: // .b8 1                                // 1
>>         +; CHECK: // .b64 0
>>         +; CHECK: // .b64 0
>>         +; CHECK: Ldebug_loc1:
>>         +; CHECK: // .b64 Ltmp2-Lfunc_begin1
>>         +; CHECK: // .b64 Ltmp2-Lfunc_begin1
>>         +; CHECK: // .b8 2                                // Loc expr
>>         size
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 17                               // DW_OP_consts
>>         +; CHECK: // .b8 2                                // 2
>>         +; CHECK: // .b64 Ltmp2-Lfunc_begin1
>>         +; CHECK: // .b64 Lfunc_end1-Lfunc_begin1
>>         +; CHECK: // .b8 2                                // Loc expr
>>         size
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 17                               // DW_OP_consts
>>         +; CHECK: // .b8 3                                // 3
>>         +; CHECK: // .b64 0
>>         +; CHECK: // .b64 0
>>         +; CHECK: // }
>>         +; CHECK: // .section .debug_abbrev
>>         +; CHECK: // {
>>         +; CHECK: // .b8 1                                //
>>         Abbreviation Code
>>         +; CHECK: // .b8 17                               //
>>         DW_TAG_compile_unit
>>         +; CHECK: // .b8 1                                //
>>         DW_CHILDREN_yes
>>         +; CHECK: // .b8 37                               //
>>         DW_AT_producer
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 19                               //
>>         DW_AT_language
>>         +; CHECK: // .b8 5                                //
>>         DW_FORM_data2
>>         +; CHECK: // .b8 3                                // DW_AT_name
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 16                               //
>>         DW_AT_stmt_list
>>         +; CHECK: // .b8 6                                //
>>         DW_FORM_data4
>>         +; CHECK: // .b8 27                               //
>>         DW_AT_comp_dir
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 17                               // DW_AT_low_pc
>>         +; CHECK: // .b8 1                                // DW_FORM_addr
>>         +; CHECK: // .b8 18                               //
>>         DW_AT_high_pc
>>         +; CHECK: // .b8 1                                // DW_FORM_addr
>>         +; CHECK: // .b8 0                                // EOM(1)
>>         +; CHECK: // .b8 0                                // EOM(2)
>>         +; CHECK: // .b8 2                                //
>>         Abbreviation Code
>>         +; CHECK: // .b8 19                               //
>>         DW_TAG_structure_type
>>         +; CHECK: // .b8 0                                //
>>         DW_CHILDREN_no
>>         +; CHECK: // .b8 3                                // DW_AT_name
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 60                               //
>>         DW_AT_declaration
>>         +; CHECK: // .b8 12                               // DW_FORM_flag
>>         +; CHECK: // .b8 0                                // EOM(1)
>>         +; CHECK: // .b8 0                                // EOM(2)
>>         +; CHECK: // .b8 3                                //
>>         Abbreviation Code
>>         +; CHECK: // .b8 46                               //
>>         DW_TAG_subprogram
>>         +; CHECK: // .b8 1                                //
>>         DW_CHILDREN_yes
>>         +; CHECK: // .b8 17                               // DW_AT_low_pc
>>         +; CHECK: // .b8 1                                // DW_FORM_addr
>>         +; CHECK: // .b8 18                               //
>>         DW_AT_high_pc
>>         +; CHECK: // .b8 1                                // DW_FORM_addr
>>         +; CHECK: // .b8 135                              //
>>         DW_AT_MIPS_linkage_name
>>         +; CHECK: // .b8 64
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 3                                // DW_AT_name
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 58                               //
>>         DW_AT_decl_file
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 59                               //
>>         DW_AT_decl_line
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 63                               //
>>         DW_AT_external
>>         +; CHECK: // .b8 12                               // DW_FORM_flag
>>         +; CHECK: // .b8 0                                // EOM(1)
>>         +; CHECK: // .b8 0                                // EOM(2)
>>         +; CHECK: // .b8 4                                //
>>         Abbreviation Code
>>         +; CHECK: // .b8 52                               //
>>         DW_TAG_variable
>>         +; CHECK: // .b8 0                                //
>>         DW_CHILDREN_no
>>         +; CHECK: // .b8 2                                //
>>         DW_AT_location
>>         +; CHECK: // .b8 6                                //
>>         DW_FORM_data4
>>         +; CHECK: // .b8 3                                // DW_AT_name
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 58                               //
>>         DW_AT_decl_file
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 59                               //
>>         DW_AT_decl_line
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 73                               // DW_AT_type
>>         +; CHECK: // .b8 16                               //
>>         DW_FORM_ref_addr
>>         +; CHECK: // .b8 0                                // EOM(1)
>>         +; CHECK: // .b8 0                                // EOM(2)
>>         +; CHECK: // .b8 5                                //
>>         Abbreviation Code
>>         +; CHECK: // .b8 46                               //
>>         DW_TAG_subprogram
>>         +; CHECK: // .b8 1                                //
>>         DW_CHILDREN_yes
>>         +; CHECK: // .b8 17                               // DW_AT_low_pc
>>         +; CHECK: // .b8 1                                // DW_FORM_addr
>>         +; CHECK: // .b8 18                               //
>>         DW_AT_high_pc
>>         +; CHECK: // .b8 1                                // DW_FORM_addr
>>         +; CHECK: // .b8 135                              //
>>         DW_AT_MIPS_linkage_name
>>         +; CHECK: // .b8 64
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 3                                // DW_AT_name
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 58                               //
>>         DW_AT_decl_file
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 59                               //
>>         DW_AT_decl_line
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 73                               // DW_AT_type
>>         +; CHECK: // .b8 19                               // DW_FORM_ref4
>>         +; CHECK: // .b8 63                               //
>>         DW_AT_external
>>         +; CHECK: // .b8 12                               // DW_FORM_flag
>>         +; CHECK: // .b8 0                                // EOM(1)
>>         +; CHECK: // .b8 0                                // EOM(2)
>>         +; CHECK: // .b8 6                                //
>>         Abbreviation Code
>>         +; CHECK: // .b8 5                                //
>>         DW_TAG_formal_parameter
>>         +; CHECK: // .b8 0                                //
>>         DW_CHILDREN_no
>>         +; CHECK: // .b8 2                                //
>>         DW_AT_location
>>         +; CHECK: // .b8 6                                //
>>         DW_FORM_data4
>>         +; CHECK: // .b8 3                                // DW_AT_name
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 58                               //
>>         DW_AT_decl_file
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 59                               //
>>         DW_AT_decl_line
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 73                               // DW_AT_type
>>         +; CHECK: // .b8 19                               // DW_FORM_ref4
>>         +; CHECK: // .b8 0                                // EOM(1)
>>         +; CHECK: // .b8 0                                // EOM(2)
>>         +; CHECK: // .b8 7                                //
>>         Abbreviation Code
>>         +; CHECK: // .b8 36                               //
>>         DW_TAG_base_type
>>         +; CHECK: // .b8 0                                //
>>         DW_CHILDREN_no
>>         +; CHECK: // .b8 3                                // DW_AT_name
>>         +; CHECK: // .b8 8                                //
>>         DW_FORM_string
>>         +; CHECK: // .b8 62                               //
>>         DW_AT_encoding
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 11                               //
>>         DW_AT_byte_size
>>         +; CHECK: // .b8 11                               //
>>         DW_FORM_data1
>>         +; CHECK: // .b8 0                                // EOM(1)
>>         +; CHECK: // .b8 0                                // EOM(2)
>>         +; CHECK: // .b8 0                                // EOM(3)
>>         +; CHECK: // }
>>         +; CHECK: // .section .debug_info
>>         +; CHECK: // {
>>         +; CHECK: // .b32 152                             // Length
>>         of Unit
>>         +; CHECK: // .b8 2                                // DWARF
>>         version number
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b32 .debug_abbrev                   // Offset
>>         Into Abbrev. Section
>>         +; CHECK: // .b8 8                                // Address
>>         Size (in bytes)
>>         +; CHECK: // .b8 1                                // Abbrev
>>         [1] 0xb:0x91 DW_TAG_compile_unit
>>         +; CHECK: // .b8 99                               //
>>         DW_AT_producer
>>         +; CHECK: // .b8 108
>>         +; CHECK: // .b8 97
>>         +; CHECK: // .b8 110
>>         +; CHECK: // .b8 103
>>         +; CHECK: // .b8 32
>>         +; CHECK: // .b8 118
>>         +; CHECK: // .b8 101
>>         +; CHECK: // .b8 114
>>         +; CHECK: // .b8 115
>>         +; CHECK: // .b8 105
>>         +; CHECK: // .b8 111
>>         +; CHECK: // .b8 110
>>         +; CHECK: // .b8 32
>>         +; CHECK: // .b8 51
>>         +; CHECK: // .b8 46
>>         +; CHECK: // .b8 53
>>         +; CHECK: // .b8 46
>>         +; CHECK: // .b8 48
>>         +; CHECK: // .b8 32
>>         +; CHECK: // .b8 40
>>         +; CHECK: // .b8 50
>>         +; CHECK: // .b8 49
>>         +; CHECK: // .b8 48
>>         +; CHECK: // .b8 52
>>         +; CHECK: // .b8 55
>>         +; CHECK: // .b8 57
>>         +; CHECK: // .b8 41
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 4                                //
>>         DW_AT_language
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 100                              // DW_AT_name
>>         +; CHECK: // .b8 101
>>         +; CHECK: // .b8 98
>>         +; CHECK: // .b8 117
>>         +; CHECK: // .b8 103
>>         +; CHECK: // .b8 45
>>         +; CHECK: // .b8 108
>>         +; CHECK: // .b8 111
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 45
>>         +; CHECK: // .b8 111
>>         +; CHECK: // .b8 102
>>         +; CHECK: // .b8 102
>>         +; CHECK: // .b8 115
>>         +; CHECK: // .b8 101
>>         +; CHECK: // .b8 116
>>         +; CHECK: // .b8 50
>>         +; CHECK: // .b8 46
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b32 .debug_line                     //
>>         DW_AT_stmt_list
>>         +; CHECK: // .b8 47                               //
>>         DW_AT_comp_dir
>>         +; CHECK: // .b8 108
>>         +; CHECK: // .b8 108
>>         +; CHECK: // .b8 118
>>         +; CHECK: // .b8 109
>>         +; CHECK: // .b8 95
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 109
>>         +; CHECK: // .b8 97
>>         +; CHECK: // .b8 107
>>         +; CHECK: // .b8 101
>>         +; CHECK: // .b8 95
>>         +; CHECK: // .b8 103
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b64 Lfunc_begin1                    // DW_AT_low_pc
>>         +; CHECK: // .b64 Lfunc_end1                      //
>>         DW_AT_high_pc
>>         +; CHECK: // .b8 2                                // Abbrev
>>         [2] 0x64:0x4 DW_TAG_structure_type
>>         +; CHECK: // .b8 65                               // DW_AT_name
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 1                                //
>>         DW_AT_declaration
>>         +; CHECK: // .b8 3                                // Abbrev
>>         [3] 0x68:0x33 DW_TAG_subprogram
>>         +; CHECK: // .b64 Lfunc_begin1                    // DW_AT_low_pc
>>         +; CHECK: // .b64 Lfunc_end1                      //
>>         DW_AT_high_pc
>>         +; CHECK: // .b8 95                               //
>>         DW_AT_MIPS_linkage_name
>>         +; CHECK: // .b8 90
>>         +; CHECK: // .b8 51
>>         +; CHECK: // .b8 98
>>         +; CHECK: // .b8 97
>>         +; CHECK: // .b8 122
>>         +; CHECK: // .b8 49
>>         +; CHECK: // .b8 65
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 98                               // DW_AT_name
>>         +; CHECK: // .b8 97
>>         +; CHECK: // .b8 122
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 2                                //
>>         DW_AT_decl_file
>>         +; CHECK: // .b8 6                                //
>>         DW_AT_decl_line
>>         +; CHECK: // .b8 1                                //
>>         DW_AT_external
>>         +; CHECK: // .b8 4                                // Abbrev
>>         [4] 0x89:0x11 DW_TAG_variable
>>         +; CHECK: // .b32 Ldebug_loc1                     //
>>         DW_AT_location
>>         +; CHECK: // .b8 122                              // DW_AT_name
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 2                                //
>>         DW_AT_decl_file
>>         +; CHECK: // .b8 7                                //
>>         DW_AT_decl_line
>>         +; CHECK: // .b64 .debug_info+306                 // DW_AT_type
>>         +; CHECK: // .b8 0                                // End Of
>>         Children Mark
>>         +; CHECK: // .b8 0                                // End Of
>>         Children Mark
>>         +; CHECK: // .b32 154                             // Length
>>         of Unit
>>         +; CHECK: // .b8 2                                // DWARF
>>         version number
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b32 .debug_abbrev                   // Offset
>>         Into Abbrev. Section
>>         +; CHECK: // .b8 8                                // Address
>>         Size (in bytes)
>>         +; CHECK: // .b8 1                                // Abbrev
>>         [1] 0xb:0x93 DW_TAG_compile_unit
>>         +; CHECK: // .b8 99                               //
>>         DW_AT_producer
>>         +; CHECK: // .b8 108
>>         +; CHECK: // .b8 97
>>         +; CHECK: // .b8 110
>>         +; CHECK: // .b8 103
>>         +; CHECK: // .b8 32
>>         +; CHECK: // .b8 118
>>         +; CHECK: // .b8 101
>>         +; CHECK: // .b8 114
>>         +; CHECK: // .b8 115
>>         +; CHECK: // .b8 105
>>         +; CHECK: // .b8 111
>>         +; CHECK: // .b8 110
>>         +; CHECK: // .b8 32
>>         +; CHECK: // .b8 51
>>         +; CHECK: // .b8 46
>>         +; CHECK: // .b8 53
>>         +; CHECK: // .b8 46
>>         +; CHECK: // .b8 48
>>         +; CHECK: // .b8 32
>>         +; CHECK: // .b8 40
>>         +; CHECK: // .b8 50
>>         +; CHECK: // .b8 49
>>         +; CHECK: // .b8 48
>>         +; CHECK: // .b8 52
>>         +; CHECK: // .b8 55
>>         +; CHECK: // .b8 57
>>         +; CHECK: // .b8 41
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 4                                //
>>         DW_AT_language
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 100                              // DW_AT_name
>>         +; CHECK: // .b8 101
>>         +; CHECK: // .b8 98
>>         +; CHECK: // .b8 117
>>         +; CHECK: // .b8 103
>>         +; CHECK: // .b8 45
>>         +; CHECK: // .b8 108
>>         +; CHECK: // .b8 111
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 45
>>         +; CHECK: // .b8 111
>>         +; CHECK: // .b8 102
>>         +; CHECK: // .b8 102
>>         +; CHECK: // .b8 115
>>         +; CHECK: // .b8 101
>>         +; CHECK: // .b8 116
>>         +; CHECK: // .b8 49
>>         +; CHECK: // .b8 46
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b32 .debug_line                     //
>>         DW_AT_stmt_list
>>         +; CHECK: // .b8 47                               //
>>         DW_AT_comp_dir
>>         +; CHECK: // .b8 108
>>         +; CHECK: // .b8 108
>>         +; CHECK: // .b8 118
>>         +; CHECK: // .b8 109
>>         +; CHECK: // .b8 95
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 109
>>         +; CHECK: // .b8 97
>>         +; CHECK: // .b8 107
>>         +; CHECK: // .b8 101
>>         +; CHECK: // .b8 95
>>         +; CHECK: // .b8 103
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 99
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b64 Lfunc_begin0                    // DW_AT_low_pc
>>         +; CHECK: // .b64 Lfunc_end0                      //
>>         DW_AT_high_pc
>>         +; CHECK: // .b8 5                                // Abbrev
>>         [5] 0x64:0x32 DW_TAG_subprogram
>>         +; CHECK: // .b64 Lfunc_begin0                    // DW_AT_low_pc
>>         +; CHECK: // .b64 Lfunc_end0                      //
>>         DW_AT_high_pc
>>         +; CHECK: // .b8 95                               //
>>         DW_AT_MIPS_linkage_name
>>         +; CHECK: // .b8 90
>>         +; CHECK: // .b8 51
>>         +; CHECK: // .b8 98
>>         +; CHECK: // .b8 97
>>         +; CHECK: // .b8 114
>>         +; CHECK: // .b8 105
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 98                               // DW_AT_name
>>         +; CHECK: // .b8 97
>>         +; CHECK: // .b8 114
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 1                                //
>>         DW_AT_decl_file
>>         +; CHECK: // .b8 1                                //
>>         DW_AT_decl_line
>>         +; CHECK: // .b32 150                             // DW_AT_type
>>         +; CHECK: // .b8 1                                //
>>         DW_AT_external
>>         +; CHECK: // .b8 6                                // Abbrev
>>         [6] 0x88:0xd DW_TAG_formal_parameter
>>         +; CHECK: // .b32 Ldebug_loc0                     //
>>         DW_AT_location
>>         +; CHECK: // .b8 98                               // DW_AT_name
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 1                                //
>>         DW_AT_decl_file
>>         +; CHECK: // .b8 1                                //
>>         DW_AT_decl_line
>>         +; CHECK: // .b32 150                             // DW_AT_type
>>         +; CHECK: // .b8 0                                // End Of
>>         Children Mark
>>         +; CHECK: // .b8 7                                // Abbrev
>>         [7] 0x96:0x7 DW_TAG_base_type
>>         +; CHECK: // .b8 105                              // DW_AT_name
>>         +; CHECK: // .b8 110
>>         +; CHECK: // .b8 116
>>         +; CHECK: // .b8 0
>>         +; CHECK: // .b8 5                                //
>>         DW_AT_encoding
>>         +; CHECK: // .b8 4                                //
>>         DW_AT_byte_size
>>         +; CHECK: // .b8 0                                // End Of
>>         Children Mark
>>         +; CHECK: // }
>>         +; CHECK: // .section .debug_macinfo
>>         +; CHECK: // {
>>         +; CHECK: // .b8 0                                // End Of
>>         Macro List Mark
>>         +; CHECK: // }
>>
>>
>>         _______________________________________________
>>         llvm-commits mailing list
>>         llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
>>         http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180702/30cd33f0/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180702/30cd33f0/attachment-0001.sig>


More information about the llvm-commits mailing list