[mlir][llvm] Make additional int debug attribute parameters optional.
The revision makes additional integer debug info parameters such as line or column numbers optional (e.g. the line and column numbers 0 are elided when printing, which is in line with the LLVM implementation). Depends on D138405 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D138437
This commit is contained in:
parent
5f77ee4011
commit
36fa80b046
|
@ -175,12 +175,12 @@ def LLVM_DICompositeTypeAttr : LLVM_Attr<"DICompositeType", "di_composite_type",
|
|||
LLVM_DITagParameter:$tag,
|
||||
"StringAttr":$name,
|
||||
OptionalParameter<"DIFileAttr">:$file,
|
||||
"uint32_t":$line,
|
||||
OptionalParameter<"uint32_t">:$line,
|
||||
OptionalParameter<"DIScopeAttr">:$scope,
|
||||
OptionalParameter<"DITypeAttr">:$baseType,
|
||||
OptionalParameter<"DIFlags", "DIFlags::Zero">:$flags,
|
||||
"uint64_t":$sizeInBits,
|
||||
"uint64_t":$alignInBits,
|
||||
OptionalParameter<"uint64_t">:$sizeInBits,
|
||||
OptionalParameter<"uint64_t">:$alignInBits,
|
||||
OptionalArrayRefParameter<"DINodeAttr">:$elements
|
||||
);
|
||||
let assemblyFormat = "`<` struct(params) `>`";
|
||||
|
@ -197,9 +197,9 @@ def LLVM_DIDerivedTypeAttr : LLVM_Attr<"DIDerivedType", "di_derived_type", [
|
|||
LLVM_DITagParameter:$tag,
|
||||
OptionalParameter<"StringAttr">:$name,
|
||||
"DITypeAttr":$baseType,
|
||||
"uint64_t":$sizeInBits,
|
||||
"uint32_t":$alignInBits,
|
||||
"uint64_t":$offsetInBits
|
||||
OptionalParameter<"uint64_t">:$sizeInBits,
|
||||
OptionalParameter<"uint32_t">:$alignInBits,
|
||||
OptionalParameter<"uint64_t">:$offsetInBits
|
||||
);
|
||||
let assemblyFormat = "`<` struct(params) `>`";
|
||||
}
|
||||
|
@ -228,8 +228,8 @@ def LLVM_DILexicalBlockAttr : LLVM_Attr<"DILexicalBlock", "di_lexical_block", [
|
|||
let parameters = (ins
|
||||
"DIScopeAttr":$scope,
|
||||
OptionalParameter<"DIFileAttr">:$file,
|
||||
"unsigned":$line,
|
||||
"unsigned":$column
|
||||
OptionalParameter<"unsigned">:$line,
|
||||
OptionalParameter<"unsigned">:$column
|
||||
);
|
||||
let builders = [
|
||||
AttrBuilderWithInferredContext<(ins
|
||||
|
@ -307,8 +307,8 @@ def LLVM_DISubprogramAttr : LLVM_Attr<"DISubprogram", "di_subprogram", [
|
|||
"StringAttr":$name,
|
||||
OptionalParameter<"StringAttr">:$linkageName,
|
||||
"DIFileAttr":$file,
|
||||
"unsigned":$line,
|
||||
"unsigned":$scopeLine,
|
||||
OptionalParameter<"unsigned">:$line,
|
||||
OptionalParameter<"unsigned">:$scopeLine,
|
||||
"DISubprogramFlags":$subprogramFlags,
|
||||
OptionalParameter<"DISubroutineTypeAttr">:$type
|
||||
);
|
||||
|
|
|
@ -21,38 +21,36 @@
|
|||
sizeInBits = 32, encoding = DW_ATE_signed
|
||||
>
|
||||
|
||||
// CHECK-DAG: #[[PTR0:.*]] = #llvm.di_derived_type<tag = DW_TAG_pointer_type, baseType = #[[INT0]], sizeInBits = 0, alignInBits = 0, offsetInBits = 0>
|
||||
// CHECK-DAG: #[[PTR0:.*]] = #llvm.di_derived_type<tag = DW_TAG_pointer_type, baseType = #[[INT0]], sizeInBits = 64, alignInBits = 32, offsetInBits = 4>
|
||||
#ptr0 = #llvm.di_derived_type<
|
||||
tag = DW_TAG_pointer_type, baseType = #int0,
|
||||
sizeInBits = 0, alignInBits = 0, offsetInBits = 0
|
||||
sizeInBits = 64, alignInBits = 32, offsetInBits = 4
|
||||
>
|
||||
|
||||
// CHECK-DAG: #[[PTR1:.*]] = #llvm.di_derived_type<tag = DW_TAG_pointer_type, name = "ptr1", baseType = #[[INT0]], sizeInBits = 64, alignInBits = 32, offsetInBits = 4>
|
||||
// CHECK-DAG: #[[PTR1:.*]] = #llvm.di_derived_type<tag = DW_TAG_pointer_type, name = "ptr1", baseType = #[[INT0]]>
|
||||
#ptr1 = #llvm.di_derived_type<
|
||||
// Specify the name parameter.
|
||||
tag = DW_TAG_pointer_type, name = "ptr1", baseType = #int0,
|
||||
sizeInBits = 64, alignInBits = 32, offsetInBits = 4
|
||||
tag = DW_TAG_pointer_type, name = "ptr1", baseType = #int0
|
||||
>
|
||||
|
||||
// CHECK-DAG: #[[COMP0:.*]] = #llvm.di_composite_type<tag = DW_TAG_array_type, name = "array0", line = 10, sizeInBits = 128, alignInBits = 32>
|
||||
#comp0 = #llvm.di_composite_type<
|
||||
// Omit optional parameters.
|
||||
tag = DW_TAG_array_type, name = "array0",
|
||||
line = 10, sizeInBits = 128, alignInBits = 32
|
||||
>
|
||||
|
||||
// CHECK-DAG: #[[COMP1:.*]] = #llvm.di_composite_type<tag = DW_TAG_array_type, name = "array1", file = #[[FILE]], line = 0, scope = #[[FILE]], baseType = #[[INT0]], sizeInBits = 0, alignInBits = 0, elements = #llvm.di_subrange<count = 4 : i64>>
|
||||
// CHECK-DAG: #[[COMP1:.*]] = #llvm.di_composite_type<tag = DW_TAG_array_type, name = "array1", file = #[[FILE]], scope = #[[FILE]], baseType = #[[INT0]], elements = #llvm.di_subrange<count = 4 : i64>>
|
||||
#comp1 = #llvm.di_composite_type<
|
||||
tag = DW_TAG_array_type, name = "array1", file = #file,
|
||||
line = 0, scope = #file, baseType = #int0, sizeInBits = 0, alignInBits = 0,
|
||||
scope = #file, baseType = #int0,
|
||||
// Specify the subrange count.
|
||||
elements = #llvm.di_subrange<count = 4>
|
||||
>
|
||||
|
||||
// CHECK-DAG: #[[COMP2:.*]] = #llvm.di_composite_type<tag = DW_TAG_array_type, name = "array2", file = #[[FILE]], line = 0, scope = #[[FILE]], baseType = #[[INT0]], sizeInBits = 0, alignInBits = 0, elements = #llvm.di_subrange<lowerBound = 0 : i64, upperBound = 4 : i64, stride = 1 : i64>>
|
||||
// CHECK-DAG: #[[COMP2:.*]] = #llvm.di_composite_type<tag = DW_TAG_array_type, name = "array2", file = #[[FILE]], scope = #[[FILE]], baseType = #[[INT0]], elements = #llvm.di_subrange<lowerBound = 0 : i64, upperBound = 4 : i64, stride = 1 : i64>>
|
||||
#comp2 = #llvm.di_composite_type<
|
||||
tag = DW_TAG_array_type, name = "array2", file = #file,
|
||||
line = 0, scope = #file, baseType = #int0, sizeInBits = 0, alignInBits = 0,
|
||||
scope = #file, baseType = #int0,
|
||||
// Specify the subrange bounds.
|
||||
elements = #llvm.di_subrange<lowerBound = 0, upperBound = 4, stride = 1>
|
||||
>
|
||||
|
@ -74,23 +72,29 @@
|
|||
file = #file, line = 3, scopeLine = 3, subprogramFlags = "Definition|Optimized", type = #spType0
|
||||
>
|
||||
|
||||
// CHECK-DAG: #[[SP1:.*]] = #llvm.di_subprogram<compileUnit = #[[CU]], scope = #[[FILE]], name = "value", file = #[[FILE]], line = 4, scopeLine = 4, subprogramFlags = Definition, type = #[[SPTYPE1]]>
|
||||
// CHECK-DAG: #[[SP1:.*]] = #llvm.di_subprogram<compileUnit = #[[CU]], scope = #[[FILE]], name = "value", file = #[[FILE]], subprogramFlags = Definition, type = #[[SPTYPE1]]>
|
||||
#sp1 = #llvm.di_subprogram<
|
||||
// Omit the optional linkageName parameter.
|
||||
compileUnit = #cu, scope = #file, name = "value",
|
||||
file = #file, line = 4, scopeLine = 4, subprogramFlags = "Definition", type = #spType1
|
||||
file = #file, subprogramFlags = "Definition", type = #spType1
|
||||
>
|
||||
|
||||
// CHECK-DAG: #[[VAR0:.*]] = #llvm.di_local_variable<scope = #[[SP0]], name = "alloc", file = #[[FILE]], line = 6, arg = 1, alignInBits = 32, type = #[[INT0]]>
|
||||
// CHECK-DAG: #[[BLOCK0:.*]] = #llvm.di_lexical_block<scope = #[[SP0]], line = 1, column = 2>
|
||||
#block0 = #llvm.di_lexical_block<scope = #sp0, line = 1, column = 2>
|
||||
|
||||
// CHECK-DAG: #[[BLOCK1:.*]] = #llvm.di_lexical_block<scope = #[[SP1]]>
|
||||
#block1 = #llvm.di_lexical_block<scope = #sp1>
|
||||
|
||||
// CHECK-DAG: #[[VAR0:.*]] = #llvm.di_local_variable<scope = #[[BLOCK0]], name = "alloc", file = #[[FILE]], line = 6, arg = 1, alignInBits = 32, type = #[[INT0]]>
|
||||
#var0 = #llvm.di_local_variable<
|
||||
scope = #sp0, name = "alloc", file = #file,
|
||||
scope = #block0, name = "alloc", file = #file,
|
||||
line = 6, arg = 1, alignInBits = 32, type = #int0
|
||||
>
|
||||
|
||||
// CHECK-DAG: #[[VAR1:.*]] = #llvm.di_local_variable<scope = #[[SP1]], name = "arg">
|
||||
// CHECK-DAG: #[[VAR1:.*]] = #llvm.di_local_variable<scope = #[[BLOCK1]], name = "arg">
|
||||
#var1 = #llvm.di_local_variable<
|
||||
// Omit the optional parameters.
|
||||
scope = #sp1, name = "arg"
|
||||
scope = #block1, name = "arg"
|
||||
>
|
||||
|
||||
// CHECK: llvm.func @addr(%[[ARG:.*]]: i64)
|
||||
|
|
|
@ -38,8 +38,8 @@ define i32 @instruction_loc(i32 %arg1) {
|
|||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!1 = distinct !DICompileUnit(language: DW_LANG_C, file: !2)
|
||||
!2 = !DIFile(filename: "debug-info.ll", directory: "/")
|
||||
!3 = distinct !DISubprogram(name: "instruction_loc", scope: !2, file: !2, line: 42, scopeLine: 42, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!4 = distinct !DISubprogram(name: "callee", scope: !2, file: !2, line: 43, scopeLine: 42, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!3 = distinct !DISubprogram(name: "instruction_loc", scope: !2, file: !2, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!4 = distinct !DISubprogram(name: "callee", scope: !2, file: !2, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!5 = !DILocation(line: 1, column: 2, scope: !3)
|
||||
!6 = !DILocation(line: 2, column: 2, scope: !3)
|
||||
!7 = !DILocation(line: 7, column: 4, scope: !4, inlinedAt: !6)
|
||||
|
@ -48,7 +48,7 @@ define i32 @instruction_loc(i32 %arg1) {
|
|||
|
||||
; CHECK: #[[FILE:.+]] = #llvm.di_file<"debug-info.ll" in "/">
|
||||
; CHECK: #[[SP:.+]] = #llvm.di_subprogram<compileUnit =
|
||||
; CHECK: #[[$LB0:.+]] = #llvm.di_lexical_block<scope = #[[SP]], line = 0, column = 0>
|
||||
; CHECK: #[[$LB0:.+]] = #llvm.di_lexical_block<scope = #[[SP]]>
|
||||
; CHECK: #[[$LB1:.+]] = #llvm.di_lexical_block<scope = #[[SP]], file = #[[FILE]], line = 2, column = 2>
|
||||
|
||||
; CHECK-LABEL: @lexical_block
|
||||
|
@ -69,7 +69,7 @@ define i32 @lexical_block(i32 %arg1) {
|
|||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!1 = distinct !DICompileUnit(language: DW_LANG_C, file: !2)
|
||||
!2 = !DIFile(filename: "debug-info.ll", directory: "/")
|
||||
!3 = distinct !DISubprogram(name: "lexical_block", scope: !2, file: !2, line: 42, scopeLine: 42, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!3 = distinct !DISubprogram(name: "lexical_block", scope: !2, file: !2, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!4 = !DILexicalBlock(scope: !3)
|
||||
!5 = !DILexicalBlock(scope: !3, file: !2, line: 2, column: 2)
|
||||
!6 = !DILocation(line: 1, column: 2, scope: !4)
|
||||
|
@ -100,7 +100,7 @@ define i32 @lexical_block_file(i32 %arg1) {
|
|||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!1 = distinct !DICompileUnit(language: DW_LANG_C, file: !2)
|
||||
!2 = !DIFile(filename: "debug-info.ll", directory: "/")
|
||||
!3 = distinct !DISubprogram(name: "lexical_block_file", scope: !2, file: !2, line: 42, scopeLine: 42, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!3 = distinct !DISubprogram(name: "lexical_block_file", scope: !2, file: !2, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!4 = !DILexicalBlockFile(scope: !3, discriminator: 0)
|
||||
!5 = !DILexicalBlockFile(scope: !3, file: !2, discriminator: 0)
|
||||
!6 = !DILocation(line: 1, column: 2, scope: !4)
|
||||
|
@ -121,7 +121,7 @@ define void @basic_type() !dbg !3 {
|
|||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!1 = distinct !DICompileUnit(language: DW_LANG_C, file: !2)
|
||||
!2 = !DIFile(filename: "debug-info.ll", directory: "/")
|
||||
!3 = distinct !DISubprogram(name: "basic_type", scope: !2, file: !2, line: 42, scopeLine: 42, spFlags: DISPFlagDefinition, unit: !1, type: !4)
|
||||
!3 = distinct !DISubprogram(name: "basic_type", scope: !2, file: !2, spFlags: DISPFlagDefinition, unit: !1, type: !4)
|
||||
!4 = !DISubroutineType(types: !5)
|
||||
!5 = !{null, !6, !7}
|
||||
!6 = !DIBasicType(name: "int1")
|
||||
|
@ -130,7 +130,7 @@ define void @basic_type() !dbg !3 {
|
|||
; // -----
|
||||
|
||||
; CHECK: #[[INT:.+]] = #llvm.di_basic_type<tag = DW_TAG_base_type, name = "int">
|
||||
; CHECK: #[[PTR1:.+]] = #llvm.di_derived_type<tag = DW_TAG_pointer_type, baseType = #[[INT]], sizeInBits = 0, alignInBits = 0, offsetInBits = 0>
|
||||
; CHECK: #[[PTR1:.+]] = #llvm.di_derived_type<tag = DW_TAG_pointer_type, baseType = #[[INT]]>
|
||||
; CHECK: #[[PTR2:.+]] = #llvm.di_derived_type<tag = DW_TAG_pointer_type, name = "mypointer", baseType = #[[INT]], sizeInBits = 64, alignInBits = 32, offsetInBits = 4>
|
||||
; CHECK: #llvm.di_subroutine_type<argumentTypes = #[[PTR1]], #[[PTR2]]>
|
||||
|
||||
|
@ -143,7 +143,7 @@ define void @derived_type() !dbg !3 {
|
|||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!1 = distinct !DICompileUnit(language: DW_LANG_C, file: !2)
|
||||
!2 = !DIFile(filename: "debug-info.ll", directory: "/")
|
||||
!3 = distinct !DISubprogram(name: "derived_type", scope: !2, file: !2, line: 42, scopeLine: 42, spFlags: DISPFlagDefinition, unit: !1, type: !4)
|
||||
!3 = distinct !DISubprogram(name: "derived_type", scope: !2, file: !2, spFlags: DISPFlagDefinition, unit: !1, type: !4)
|
||||
!4 = !DISubroutineType(types: !5)
|
||||
!5 = !{null, !7, !8}
|
||||
!6 = !DIBasicType(name: "int")
|
||||
|
@ -155,9 +155,9 @@ define void @derived_type() !dbg !3 {
|
|||
; CHECK-DAG: #[[INT:.+]] = #llvm.di_basic_type<tag = DW_TAG_base_type, name = "int">
|
||||
; CHECK-DAG: #[[FILE:.+]] = #llvm.di_file<"debug-info.ll" in "/">
|
||||
; CHECK-DAG: #[[COMP1:.+]] = #llvm.di_composite_type<tag = DW_TAG_array_type, name = "array1", line = 10, sizeInBits = 128, alignInBits = 32>
|
||||
; CHECK-DAG: #[[COMP2:.+]] = #llvm.di_composite_type<{{.*}}, file = #[[FILE]], line = 0, scope = #[[FILE]], baseType = #[[INT]], sizeInBits = 0, alignInBits = 0>
|
||||
; CHECK-DAG: #[[COMP3:.+]] = #llvm.di_composite_type<{{.*}}, flags = Vector, {{.*}}, elements = #llvm.di_subrange<count = 4 : i64>>
|
||||
; CHECK-DAG: #[[COMP4:.+]] = #llvm.di_composite_type<{{.*}}, elements = #llvm.di_subrange<lowerBound = 0 : i64, upperBound = 4 : i64, stride = 1 : i64>>
|
||||
; CHECK-DAG: #[[COMP2:.+]] = #llvm.di_composite_type<{{.*}}, file = #[[FILE]], scope = #[[FILE]], baseType = #[[INT]]>
|
||||
; CHECK-DAG: #[[COMP3:.+]] = #llvm.di_composite_type<{{.*}}, flags = Vector, elements = #llvm.di_subrange<count = 4 : i64>>
|
||||
; CHECK-DAG: #[[COMP4:.+]] = #llvm.di_composite_type<{{.*}}, flags = Vector, elements = #llvm.di_subrange<lowerBound = 0 : i64, upperBound = 4 : i64, stride = 1 : i64>>
|
||||
; CHECK-DAG: #llvm.di_subroutine_type<argumentTypes = #[[COMP1]], #[[COMP2]], #[[COMP3]], #[[COMP4]]>
|
||||
|
||||
define void @composite_type() !dbg !3 {
|
||||
|
@ -169,7 +169,7 @@ define void @composite_type() !dbg !3 {
|
|||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!1 = distinct !DICompileUnit(language: DW_LANG_C, file: !2)
|
||||
!2 = !DIFile(filename: "debug-info.ll", directory: "/")
|
||||
!3 = distinct !DISubprogram(name: "composite_type", scope: !2, file: !2, line: 42, scopeLine: 42, spFlags: DISPFlagDefinition, unit: !1, type: !4)
|
||||
!3 = distinct !DISubprogram(name: "composite_type", scope: !2, file: !2, spFlags: DISPFlagDefinition, unit: !1, type: !4)
|
||||
!4 = !DISubroutineType(types: !5)
|
||||
!5 = !{null, !7, !8, !9, !10}
|
||||
!6 = !DIBasicType(name: "int")
|
||||
|
@ -206,7 +206,7 @@ define void @subprogram() !dbg !3 {
|
|||
|
||||
; // -----
|
||||
|
||||
; CHECK: #[[$SP:.+]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #{{.*}}, name = "func_loc", file = #{{.*}}, line = 42, scopeLine = 42, subprogramFlags = Definition>
|
||||
; CHECK: #[[$SP:.+]] = #llvm.di_subprogram<compileUnit = #{{.*}}, scope = #{{.*}}, name = "func_loc", file = #{{.*}}, subprogramFlags = Definition>
|
||||
|
||||
; CHECK-LABEL: @func_loc
|
||||
define void @func_loc() !dbg !3 {
|
||||
|
@ -219,7 +219,7 @@ define void @func_loc() !dbg !3 {
|
|||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!1 = distinct !DICompileUnit(language: DW_LANG_C, file: !2)
|
||||
!2 = !DIFile(filename: "debug-info.ll", directory: "/")
|
||||
!3 = distinct !DISubprogram(name: "func_loc", scope: !2, file: !2, line: 42, scopeLine: 42, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!3 = distinct !DISubprogram(name: "func_loc", scope: !2, file: !2, spFlags: DISPFlagDefinition, unit: !1)
|
||||
|
||||
; // -----
|
||||
|
||||
|
@ -259,7 +259,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata)
|
|||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!1 = distinct !DICompileUnit(language: DW_LANG_C, file: !2)
|
||||
!2 = !DIFile(filename: "debug-info.ll", directory: "/")
|
||||
!3 = distinct !DISubprogram(name: "intrinsic", scope: !2, file: !2, line: 42, scopeLine: 42, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!3 = distinct !DISubprogram(name: "intrinsic", scope: !2, file: !2, spFlags: DISPFlagDefinition, unit: !1)
|
||||
!4 = !DIBasicType(name: "int")
|
||||
!5 = !DILocalVariable(scope: !3, name: "arg", file: !2, line: 1, arg: 1, align: 32, type: !4);
|
||||
!6 = !DILocalVariable(scope: !3, name: "arg")
|
||||
|
|
|
@ -28,12 +28,11 @@ llvm.func @func_no_debug() {
|
|||
>
|
||||
#ptr = #llvm.di_derived_type<
|
||||
tag = DW_TAG_pointer_type, baseType = #si32,
|
||||
sizeInBits = 64, alignInBits = 0, offsetInBits = 0
|
||||
sizeInBits = 64, alignInBits = 32, offsetInBits = 8
|
||||
>
|
||||
#named = #llvm.di_derived_type<
|
||||
// Specify the name parameter.
|
||||
tag = DW_TAG_pointer_type, name = "named", baseType = #si32,
|
||||
sizeInBits = 64, alignInBits = 0, offsetInBits = 0
|
||||
tag = DW_TAG_pointer_type, name = "named", baseType = #si32
|
||||
>
|
||||
#cu = #llvm.di_compile_unit<
|
||||
sourceLanguage = DW_LANG_C, file = #file, producer = "MLIR",
|
||||
|
@ -41,12 +40,12 @@ llvm.func @func_no_debug() {
|
|||
>
|
||||
#composite = #llvm.di_composite_type<
|
||||
tag = DW_TAG_structure_type, name = "composite", file = #file,
|
||||
line = 0, sizeInBits = 0, alignInBits = 0,
|
||||
line = 42, sizeInBits = 64, alignInBits = 32,
|
||||
elements = #llvm.di_subrange<count = 4>
|
||||
>
|
||||
#vector = #llvm.di_composite_type<
|
||||
tag = DW_TAG_array_type, name = "array", file = #file,
|
||||
line = 0, baseType = #si64, sizeInBits = 0, alignInBits = 0, flags = Vector,
|
||||
baseType = #si64, flags = Vector,
|
||||
elements = #llvm.di_subrange<lowerBound = 0, upperBound = 4, stride = 1>
|
||||
>
|
||||
#spType = #llvm.di_subroutine_type<callingConvention = DW_CC_normal, argumentTypes = #si64, #ptr, #named, #composite, #vector>
|
||||
|
@ -58,13 +57,14 @@ llvm.func @func_no_debug() {
|
|||
// Omit the optional callingConvention parameter but specify a result type.
|
||||
resultType = #si64, argumentTypes = #si64>
|
||||
#callee = #llvm.di_subprogram<
|
||||
// Omit the linkageName parameter.
|
||||
// Omit the optional linkageName, line, and scopeLine parameters.
|
||||
compileUnit = #cu, scope = #file, name = "callee",
|
||||
file = #file, line = 4, scopeLine = 4, subprogramFlags = "Definition", type = #calleeType
|
||||
file = #file, subprogramFlags = "Definition", type = #calleeType
|
||||
>
|
||||
#fileScope = #llvm.di_lexical_block_file<scope = #sp, file = #file, discriminator = 0>
|
||||
#variable = #llvm.di_local_variable<scope = #fileScope, name = "arg", file = #file, line = 6, arg = 1, alignInBits = 0, type = #si64>
|
||||
#variableAddr = #llvm.di_local_variable<scope = #fileScope, name = "alloc">
|
||||
#blockScope = #llvm.di_lexical_block<scope = #sp>
|
||||
#variable = #llvm.di_local_variable<scope = #fileScope, name = "arg", file = #file, line = 6, arg = 1, alignInBits = 32, type = #si64>
|
||||
#variableAddr = #llvm.di_local_variable<scope = #blockScope, name = "alloc">
|
||||
|
||||
// CHECK-LABEL: define void @func_with_debug(
|
||||
// CHECK-SAME: i64 %[[ARG:.*]]) !dbg ![[FUNC_LOC:[0-9]+]]
|
||||
|
@ -105,19 +105,20 @@ llvm.func @func_with_debug(%arg: i64) {
|
|||
// CHECK: ![[FUNC_TYPE]] = !DISubroutineType(cc: DW_CC_normal, types: ![[FUNC_ARGS:.*]])
|
||||
// CHECK: ![[FUNC_ARGS]] = !{null, ![[ARG_TYPE:.*]], ![[PTR_TYPE:.*]], ![[NAMED_TYPE:.*]], ![[COMPOSITE_TYPE:.*]], ![[VECTOR_TYPE:.*]]}
|
||||
// CHECK: ![[ARG_TYPE]] = !DIBasicType(name: "si64")
|
||||
// CHECK: ![[PTR_TYPE]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: ![[BASE_TYPE:.*]], size: 64)
|
||||
// CHECK: ![[PTR_TYPE]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: ![[BASE_TYPE:.*]], size: 64, align: 32, offset: 8)
|
||||
// CHECK: ![[BASE_TYPE]] = !DIBasicType(name: "si32", size: 32, encoding: DW_ATE_signed)
|
||||
// CHECK: ![[NAMED_TYPE]] = !DIDerivedType(tag: DW_TAG_pointer_type, name: "named", baseType: ![[BASE_TYPE:.*]], size: 64)
|
||||
// CHECK: ![[COMPOSITE_TYPE]] = !DICompositeType(tag: DW_TAG_structure_type, name: "composite", file: ![[CU_FILE_LOC]], elements: ![[COMPOSITE_ELEMENTS:.*]])
|
||||
// CHECK: ![[NAMED_TYPE]] = !DIDerivedType(tag: DW_TAG_pointer_type, name: "named", baseType: ![[BASE_TYPE:.*]])
|
||||
// CHECK: ![[COMPOSITE_TYPE]] = !DICompositeType(tag: DW_TAG_structure_type, name: "composite", file: ![[CU_FILE_LOC]], line: 42, size: 64, align: 32, elements: ![[COMPOSITE_ELEMENTS:.*]])
|
||||
// CHECK: ![[COMPOSITE_ELEMENTS]] = !{![[COMPOSITE_ELEMENT:.*]]}
|
||||
// CHECK: ![[COMPOSITE_ELEMENT]] = !DISubrange(count: 4)
|
||||
// CHECK: ![[VECTOR_TYPE]] = !DICompositeType(tag: DW_TAG_array_type, name: "array", file: ![[CU_FILE_LOC]], baseType: ![[ARG_TYPE]], flags: DIFlagVector, elements: ![[VECTOR_ELEMENTS:.*]])
|
||||
// CHECK: ![[VECTOR_ELEMENTS]] = !{![[VECTOR_ELEMENT:.*]]}
|
||||
// CHECK: ![[VECTOR_ELEMENT]] = !DISubrange(lowerBound: 0, upperBound: 4, stride: 1)
|
||||
|
||||
// CHECK: ![[VAR_LOC]] = !DILocalVariable(name: "arg", arg: 1, scope: ![[VAR_SCOPE:.*]], file: ![[CU_FILE_LOC]], line: 6, type: ![[ARG_TYPE]])
|
||||
// CHECK: ![[VAR_LOC]] = !DILocalVariable(name: "arg", arg: 1, scope: ![[VAR_SCOPE:.*]], file: ![[CU_FILE_LOC]], line: 6, type: ![[ARG_TYPE]], align: 32)
|
||||
// CHECK: ![[VAR_SCOPE]] = distinct !DILexicalBlockFile(scope: ![[FUNC_LOC]], file: ![[CU_FILE_LOC]], discriminator: 0)
|
||||
// CHECK: ![[ADDR_LOC]] = !DILocalVariable(name: "alloc", scope: ![[VAR_SCOPE:.*]])
|
||||
// CHECK: ![[ADDR_LOC]] = !DILocalVariable(name: "alloc", scope: ![[BLOCK_LOC:.*]])
|
||||
// CHECK: ![[BLOCK_LOC]] = distinct !DILexicalBlock(scope: ![[FUNC_LOC]])
|
||||
|
||||
// CHECK-DAG: ![[CALLSITE_LOC]] = !DILocation(line: 3, column: 4,
|
||||
// CHECK-DAG: ![[FILE_LOC]] = !DILocation(line: 1, column: 2,
|
||||
|
@ -126,7 +127,7 @@ llvm.func @func_with_debug(%arg: i64) {
|
|||
|
||||
// CHECK: ![[FUSEDWITH_LOC]] = !DILocation(line: 2, column: 4, scope: ![[FUSEDWITH_SCOPE:.*]], inlinedAt: ![[INLINE_LOC:.*]])
|
||||
// CHECK: ![[FUSEDWITH_SCOPE]] = !DILexicalBlockFile(scope: ![[CALLEE_LOC:.*]], file:
|
||||
// CHECK: ![[CALLEE_LOC]] = distinct !DISubprogram(name: "callee", scope: ![[CU_FILE_LOC]], file: ![[CU_FILE_LOC]], line: 4, type: ![[CALLEE_TYPE:.*]], scopeLine: 4, spFlags: DISPFlagDefinition, unit: ![[CU_LOC]])
|
||||
// CHECK: ![[CALLEE_LOC]] = distinct !DISubprogram(name: "callee", scope: ![[CU_FILE_LOC]], file: ![[CU_FILE_LOC]], type: ![[CALLEE_TYPE:.*]], spFlags: DISPFlagDefinition, unit: ![[CU_LOC]])
|
||||
// CHECK: ![[CALLEE_TYPE]] = !DISubroutineType(types: ![[CALLEE_ARGS:.*]])
|
||||
// CHECK: ![[CALLEE_ARGS]] = !{![[ARG_TYPE:.*]], ![[ARG_TYPE:.*]]}
|
||||
// CHECK: ![[INLINE_LOC]] = !DILocation(line: 28, column: 5,
|
||||
|
|
Loading…
Reference in New Issue