[Debug Info] Remove the mostly unused FragmentType from DebugTypeInfo

This cleanup allows for more consistent debug info emission since we depend less
on IRGen magic to emit debug info for types.
This commit is contained in:
Adrian Prantl
2025-01-27 17:26:56 -08:00
parent 266fa2af41
commit e70a3443e9
14 changed files with 102 additions and 142 deletions

View File

@@ -10,7 +10,7 @@ public let s = S<Int>(t: 0)
// CHECK-SAME: templateParams: ![[PARAMS:[0-9]+]]
// CHECK: ![[PARAMS]] = !{![[INTPARAM:[0-9]+]]}
// CHECK: ![[INTPARAM]] = !DITemplateTypeParameter(type: ![[INT:[0-9]+]])
// CHECK: ![[INT]] = !DICompositeType(tag: DW_TAG_structure_type, name: "$sSiD",
// CHECK: ![[INT]] = !DICompositeType(tag: DW_TAG_structure_type, {{.*}}identifier: "$sSiD"
// DWARF: !DICompositeType(tag: DW_TAG_structure_type,
@@ -56,4 +56,4 @@ public let inner = S2<Double>.Inner(t:4.2)
// DWARF: ![[ELEMENTS1]] = !{![[ELEMENTS2:[0-9]+]]}
// DWARF: ![[ELEMENTS2]] = !DIDerivedType(tag: DW_TAG_member, name: "t", scope: !27, file: !3, baseType: ![[GENERIC_PARAM_TYPE]])
// DWARF: ![[ELEMENTS2]] = !DIDerivedType(tag: DW_TAG_member, name: "t", {{.*}}, baseType: ![[GENERIC_PARAM_TYPE]])

View File

@@ -7,7 +7,7 @@
// RUN: %target-swift-frontend %S/../Inputs/empty.swift -primary-file %s \
// RUN: -emit-ir -g | %FileCheck %s
// CHECK: !DICompileUnit({{.*}}flags: {{[^,]*}}-private-discriminator [[DISCRIMINATOR:_[A-Z0-9]+]]
// CHECK: ![[MOD:.*]] = !DIModule(scope: null,
// CHECK: ![[MOD:.*]] = !DIModule(scope: null, name: "empty"
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "InA",
// CHECK-SAME: scope: ![[A:[0-9]+]],
// CHECK: ![[A]] = !DICompositeType(tag: DW_TAG_structure_type, name: "A",

View File

@@ -27,7 +27,7 @@ func main() -> Int64 {
// CHECK-DAG: ![[BAZPTR]] = !DIDerivedType(tag: DW_TAG_pointer_type,{{.*}} baseType: ![[BAZT:[0-9]+]]
// CHECK-DAG: ![[BAZT]] = !DISubroutineType(types: ![[BAZARGS:.*]])
// CHECK-DAG: ![[BAZARGS]] = !{![[INT:.*]], ![[FLOAT:.*]]}
// CHECK-DAG: ![[INT]] = {{.*}}name: "$ss5Int64VD"
// CHECK-DAG: ![[INT]] = {{.*}}identifier: "$ss5Int64VD"
// CHECK-DAG: ![[FLOAT]] = {{.*}}identifier: "$sSfD"
var baz_fnptr = baz
baz_fnptr(2.89)

View File

@@ -12,17 +12,14 @@ public func foo<Type>(_ values : [S<Type>])
// CHECK-SAME: ![[ARG:[0-9]+]],
// CHECK-SAME: !DIExpression(DW_OP_deref)
// CHECK: store ptr %1, ptr %[[ALLOCA]], align
// CHECK: ![[TYP:[0-9]+]] = !DICompositeType({{.*}}, name: "$s12generic_arg51SVyxGD"
// CHECK-DAG: ![[TYP:[0-9]+]] = !DICompositeType({{.*}}, name: "$s12generic_arg51SVyxGD"
// The argument is a by-ref struct and thus needs to be dereferenced.
// CHECK: ![[ARG]] = !DILocalVariable(name: "arg", arg: 1,
// CHECK-SAME: line: [[@LINE+8]],
// CHECK-SAME: type: ![[LET_TYP:[0-9]+]])
// CHECK: ![[LET_TYP]] = !DIDerivedType(tag: DW_TAG_const_type,
// CHECK-SAME: baseType: ![[TYP_CONTAINER:[0-9]+]])
// CHECK: ![[TYP_CONTAINER]] = !DICompositeType({{.*}}elements: ![[TYP_ELTS:[0-9]+]]
// CHECK: ![[TYP_ELTS]] = !{![[TYP_MEMBER:[0-9]+]]}
// CHECK: ![[TYP_MEMBER]] = !DIDerivedType(tag: DW_TAG_member, {{.*}}baseType: ![[TYP_:[0-9]+]]
// CHECK: ![[TYP_]] = !DICompositeType({{.*}}, name: "$s12generic_arg51SVyxGD"
// CHECK-DAG: ![[ARG]] = !DILocalVariable(name: "arg", arg: 1,{{.*}}line: [[@LINE+6]],{{.*}} type: ![[LET_TYP:[0-9]+]])
// CHECK-DAG: ![[LET_TYP]] = !DIDerivedType(tag: DW_TAG_const_type,{{.*}} baseType: ![[TYP_CONTAINER:[0-9]+]])
// CHECK-DAG: ![[TYP_CONTAINER]] = !DICompositeType({{.*}}elements: ![[TYP_ELTS:[0-9]+]]
// CHECK-DAG: ![[TYP_ELTS]] = !{![[TYP_MEMBER:[0-9]+]]}
// CHECK-DAG: ![[TYP_MEMBER]] = !DIDerivedType(tag: DW_TAG_member, {{.*}}baseType: ![[TYP_:[0-9]+]]
// CHECK-DAG: ![[TYP_]] = !DICompositeType({{.*}}, name: "$s12generic_arg51SVyxGD"
let _ = values.flatMap { arg in
return .some(arg)
}

View File

@@ -7,7 +7,7 @@ import local_type_originally_defined_in_other
public func definedInOtherModule() {
let s = Sheep()
// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "Sheep"{{.*}}identifier: "$s4Barn5SheepCD
// CHECK-DAG: DICompositeType(tag: DW_TAG_structure_type, name: "Sheep"{{.*}}identifier: "$s4Barn5SheepCD
}
public func localTypeAliasTest(horse: Horse) {
// The local type mangling for 'A' mentions 'Horse', which must
@@ -18,7 +18,7 @@ public func localTypeAliasTest(horse: Horse) {
let info = UnsafeMutablePointer<A>.allocate(capacity: 1)
_ = info
// CHECK: DIDerivedType(tag: DW_TAG_typedef, name: "$s32local_type_originally_defined_in0A13TypeAliasTest5horsey4Barn5HorseV_tF1AL_aD"
// CHECK-DAG: DIDerivedType(tag: DW_TAG_typedef, name: "$s32local_type_originally_defined_in0A13TypeAliasTest5horsey4Barn5HorseV_tF1AL_aD"
}
@@ -31,7 +31,7 @@ public func localTypeTest(horse: Horse) {
let info = UnsafeMutablePointer<LocalStruct>.allocate(capacity: 1)
_ = info
// CHECK: DICompositeType(tag: DW_TAG_structure_type, name: "$s32local_type_originally_defined_in0A8TypeTest5horsey4Barn5HorseV_tF11LocalStructL_VD"
// CHECK-DAG: DICompositeType(tag: DW_TAG_structure_type, {{.*}}identifier: "$s32local_type_originally_defined_in0A8TypeTest5horsey4Barn5HorseV_tF11LocalStructL_VD"
}
public func localTypeAliasTest() -> Horse {
@@ -40,7 +40,7 @@ public func localTypeAliasTest() -> Horse {
let info = UnsafeMutablePointer<B>.allocate(capacity: 1)
_ = info
return Horse()
// CHECK: DIDerivedType(tag: DW_TAG_typedef, name: "$s32local_type_originally_defined_in0A13TypeAliasTest4Barn5HorseVyF1BL_aD"
// CHECK-DAG: DIDerivedType(tag: DW_TAG_typedef, name: "$s32local_type_originally_defined_in0A13TypeAliasTest4Barn5HorseVyF1BL_aD"
}
public func localTypeAliasTestGeneric<T: Cow>(cow: T) {

View File

@@ -15,6 +15,5 @@ public extension P {
}
}
// CHECK: ![[SELFMETA]] = !DILocalVariable(name: "$\CF\84_0_0",
// CHECK-SAME: type: ![[SELFTY:[0-9]+]], flags: DIFlagArtificial)
// CHECK: ![[SELFTY]] = !DIDerivedType(tag: DW_TAG_typedef, name: "Self"
// CHECK-DAG: ![[SELFMETA]] = !DILocalVariable(name: "$\CF\84_0_0", {{.*}}type: ![[SELFTY:[0-9]+]], flags: DIFlagArtificial)
// CHECK-DAG: ![[SELFTY]] = !DIDerivedType(tag: DW_TAG_typedef, name: "Self"

View File

@@ -18,7 +18,7 @@ class MyObject : NSObject {
// LOC-CHECK: ret
@objc var MyArr = NSArray()
// IMPORT-CHECK: filename: "{{.*}}test-foundation.swift"
// IMPORT-CHECK-DAG: [[FOUNDATION:[0-9]+]] = !DIModule({{.*}} name: "Foundation",{{.*}} includePath: {{.*}}Foundation.framework
// IMPORT-CHECK-DAG: [[FOUNDATION:[0-9]+]] = !DIModule({{.*}} name: "Foundation",{{.*}} includePath: {{.*}}Foundation.framework"
// IMPORT-CHECK-DAG: [[OVERLAY:[0-9]+]] = !DIModule({{.*}} name: "Foundation",{{.*}} includePath: {{.*}}Foundation.swiftmodule
// IMPORT-CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "NSArray", scope: ![[NSARRAY:[0-9]+]]
// IMPORT-CHECK-DAG: ![[NSARRAY]] = !DIModule(scope: ![[FOUNDATION:[0-9]+]], name: "NSArray"

View File

@@ -9,12 +9,9 @@ class AClass : AProtocol {
// CHECK: define hidden {{.*}}void @{{.*}}aFunction
// CHECK: #dbg_declare(ptr %{{.*}}, ![[TYPEARG:.*]], !DIExpression(),
// CHECK: ![[TYPEARG]] = !DILocalVariable(name: "$\CF\84_0_0"
// CHECK-SAME: type: ![[SWIFTMETATYPE:[^,)]+]]
// CHECK-SAME: flags: DIFlagArtificial
// CHECK: ![[SWIFTMETATYPE]] = !DIDerivedType(tag: DW_TAG_typedef, name: "T",
// CHECK-SAME: baseType: ![[VOIDPTR:[0-9]+]]
// CHECK: ![[VOIDPTR]] = !DIDerivedType(tag: DW_TAG_pointer_type, name: "$sBpD", baseType: null
// CHECK-DAG: ![[TYPEARG]] = !DILocalVariable(name: "$\CF\84_0_0"{{.*}}type: ![[SWIFTMETATYPE:[^,)]+]]{{.*}}flags: DIFlagArtificial
// CHECK-DAG: ![[SWIFTMETATYPE]] = !DIDerivedType(tag: DW_TAG_typedef, name: "T",{{.*}}baseType: ![[VOIDPTR:[0-9]+]]
// CHECK-DAG: ![[VOIDPTR]] = !DIDerivedType(tag: DW_TAG_pointer_type, name: "$sBpD", baseType: null
func aFunction<T : AProtocol>(_ x: T) {
print("I am in aFunction: \(x.f())")
}

View File

@@ -10,7 +10,7 @@ struct Slab<let N: Int, Element: ~Copyable>: ~Copyable {
extension Slab: Copyable where Element: Copyable {}
// CHECK-DAG: !DICompositeType({{.*}}name: "Builtin.FixedArray", {{.*}}identifier: "$sxq_BVD"
// CHECK-DAG: !DICompositeType({{.*}}name: "$sxq_BVD"
func genericBA<let N: Int, Element>(_: Builtin.FixedArray<N, Element>) {}
// CHECK-DAG: !DICompositeType({{.*}}name: "$s4main4SlabVyxq_GD"
@@ -24,5 +24,5 @@ func concreteBA(_: Builtin.FixedArray<4, Int>) {}
// CHECK-DAG: ![[COUNT_PARAM]] = !DITemplateTypeParameter(type: ![[COUNT_TYPE:.*]])
// CHECK-DAG: ![[COUNT_TYPE]] = !DICompositeType({{.*}}name: "$s$1_D"
// CHECK-DAG: ![[ELEMENT_PARAM]] = !DITemplateTypeParameter(type: ![[ELEMENT_TYPE:.*]])
// CHECK-DAG: ![[ELEMENT_TYPE]] = !DICompositeType({{.*}}name: "$sSiD"
// CHECK-DAG: ![[ELEMENT_TYPE]] = !DICompositeType({{.*}}identifier: "$sSiD"
func concreteV(_: Slab<2, Int>) {}