Skip to content

Commit 854dffb

Browse files
author
Davide Italiano
committed
[DebugInfo] Stop handling InOut types, they'll be gone soon.
<rdar://problem/46043909>
1 parent 9694851 commit 854dffb

File tree

9 files changed

+15
-48
lines changed

9 files changed

+15
-48
lines changed

lib/IRGen/IRGenDebugInfo.cpp

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -500,8 +500,6 @@ class IRGenDebugInfoImpl : public IRGenDebugInfo {
500500
SILType type, DeclContext *DeclCtx,
501501
GenericEnvironment *GE) {
502502
auto RealType = type.getASTType();
503-
if (type.isAddress())
504-
RealType = CanInOutType::get(RealType);
505503
auto DbgTy = DebugTypeInfo::getFromTypeInfo(DeclCtx, GE, RealType,
506504
IGM.getTypeInfo(type));
507505
Parameters.push_back(getOrCreateType(DbgTy));
@@ -1192,22 +1190,8 @@ class IRGenDebugInfoImpl : public IRGenDebugInfo {
11921190
AlignInBits, Flags, MangledName);
11931191
}
11941192

1195-
case TypeKind::InOut: {
1196-
// This is an inout type. Naturally we would be emitting them as
1197-
// DW_TAG_reference_type types, but LLDB can deal better with
1198-
// pointer-sized struct that has the appropriate mangled name.
1199-
auto ObjectTy = BaseTy->castTo<InOutType>()->getObjectType();
1200-
auto Name = MangledName;
1201-
if (auto *Decl = ObjectTy->getAnyNominal())
1202-
Name = Decl->getName().str();
1203-
if (Opts.DebugInfoLevel > IRGenDebugInfoLevel::ASTTypes) {
1204-
auto DT = getOrCreateDesugaredType(ObjectTy, DbgTy);
1205-
return createPointerSizedStruct(Scope, Name, DT, File, 0, Flags,
1206-
MangledName);
1207-
} else
1208-
return createOpaqueStruct(Scope, Name, File, 0, SizeInBits, AlignInBits,
1209-
Flags, MangledName);
1210-
}
1193+
case TypeKind::InOut:
1194+
break;
12111195

12121196
case TypeKind::Archetype: {
12131197
auto *Archetype = BaseTy->castTo<ArchetypeType>();
@@ -1384,10 +1368,6 @@ class IRGenDebugInfoImpl : public IRGenDebugInfo {
13841368
case TypeKind::SILBlockStorage: // Not supported at all.
13851369
case TypeKind::SILBox:
13861370
return false;
1387-
case TypeKind::InOut: {
1388-
auto *ObjectTy = Ty->castTo<InOutType>()->getObjectType().getPointer();
1389-
return canMangle(ObjectTy);
1390-
}
13911371
default:
13921372
return true;
13931373
}

test/DebugInfo/archetypes2.swift

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,9 @@ func markUsed<T>(_ t: T) {}
44

55
class C<A> {
66
// CHECK: ![[A:.*]] = !DICompositeType(tag: DW_TAG_structure_type,{{.*}}identifier: "$sxD"
7-
// CHECK: !DILocalVariable(name: "x", arg: 1,
8-
// CHECK-SAME: line: [[@LINE+7]],
9-
// CHECK-SAME: type: ![[A]]
10-
// CHECK: !DILocalVariable(name: "y", arg: 2,
11-
// CHECK-SAME: line: [[@LINE+4]],
12-
// CHECK-SAME: type: ![[B:[0-9]+]]
13-
// CHECK: ![[B]] = !DICompositeType(tag: DW_TAG_structure_type,
14-
// CHECK-SAME: identifier: "$sqd__D"
7+
// CHECK: ![[B:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type,{{.*}}identifier: "$sqd__D")
8+
// CHECK: !DILocalVariable(name: "x", arg: 1,{{.*}}line: [[@LINE+2]],{{.*}}type: ![[A]]
9+
// CHECK: !DILocalVariable(name: "y", arg: 2,{{.*}}line: [[@LINE+1]],{{.*}}type: ![[B]])
1510
func foo<B>(_ x: A, y :B) {
1611
markUsed("hello world")
1712
}

test/DebugInfo/enum.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ func foo<T>(_ x : Rose<T>) -> Rose<T> { return x }
7474
// DWARF: !DICompositeType({{.*}}name: "Tuple", {{.*}}elements: ![[ELTS:[0-9]+]],
7575
// DWARF-SAME: {{.*}}identifier: "$s4enum5TupleOyxG{{z?}}D")
7676
public enum Tuple<P> {
77-
// DWARF: !DICompositeType({{.*}}name: "Tuple",{{.*}}identifier: "$s4enum5TupleOyxGD")
7877
case C(P, () -> Tuple)
7978
}
8079

test/DebugInfo/generic_arg.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ func foo<T>(_ x: T) -> () {
1010
// CHECK-SAME: metadata ![[X1:.*]], metadata !DIExpression(DW_OP_deref))
1111
// CHECK: store %swift.type* %T, %swift.type** %[[T]],
1212
// CHECK: store %swift.opaque* %0, %swift.opaque** %[[X]],
13+
// CHECK: ![[TY2:.*]] = !DICompositeType({{.*}}identifier: "$sxD")
1314
// CHECK: ![[T1]] = !DILocalVariable(name: "$\CF\84_0_0",
1415
// CHECK-SAME: flags: DIFlagArtificial)
1516
// CHECK: ![[X1]] = !DILocalVariable(name: "x", arg: 1,
16-
// CHECK-SAME: line: 3, type: ![[TY:.*]])
17-
// CHECK: ![[TY]] = !DICompositeType({{.*}}identifier: "$sxD")
17+
// CHECK-SAME: line: 3, type: ![[TY2]])
1818
_blackHole(x)
1919
}
2020

test/DebugInfo/generic_arg5.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@ public func foo<Type>(_ values : [S<Type>])
1212
// CHECK-SAME: metadata ![[ARG:[0-9]+]],
1313
// CHECK-SAME: metadata !DIExpression(DW_OP_deref))
1414
// CHECK: store %[[TY]]* %1, %[[TY]]** %[[ALLOCA]], align
15+
// CHECK: ![[TYP:.*]] = !DICompositeType({{.*}}, identifier: "$s12generic_arg51SVyxGD")
1516
// The argument is a by-ref struct and thus needs to be dereferenced.
1617
// CHECK: ![[ARG]] = !DILocalVariable(name: "arg", arg: 1,
17-
// CHECK-SAME: line: [[@LINE+4]],
18-
// CHECK-SAME: type: ![[TY:.*]])
19-
// CHECK: ![[TY]] = !DICompositeType(
20-
// CHECK-SAME: identifier: "$s12generic_arg51SVyxGD")
18+
// CHECK-SAME: line: [[@LINE+2]],
19+
// CHECK-SAME: type: ![[TYP]])
2120
let _ = values.flatMap { arg in
2221
return .some(arg)
2322
}

test/DebugInfo/generic_args.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@ class AnotherClass : AProtocol {
1313
func f() -> String { return "B" }
1414
}
1515

16-
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "$sq_D",{{.*}} elements: ![[PROTOS:[0-9]+]]
17-
// CHECK-DAG: ![[PROTOS]] = !{![[INHERIT:.*]]}
18-
// CHECK-DAG: ![[INHERIT]] = !DIDerivedType(tag: DW_TAG_inheritance,{{.*}} baseType: ![[PROTOCOL:[0-9]+]]
19-
// CHECK-DAG: ![[PROTOCOL]] = !DICompositeType(tag: DW_TAG_structure_type, name: "$s12generic_args9AProtocol_pmD",
16+
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "$sq_D",{{.*}}
2017
// CHECK-DAG: !DILocalVariable(name: "x", arg: 1,{{.*}} type: ![[T:.*]])
2118
// CHECK-DAG: ![[T]] = !DICompositeType(tag: DW_TAG_structure_type, name: "$sxD"
2219
// CHECK-DAG: !DILocalVariable(name: "y", arg: 2,{{.*}} type: ![[Q:.*]])

test/DebugInfo/inlined-generics-basic.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ public class C<R> {
8585
// IR: ![[BOOL:[0-9]+]] = !DICompositeType({{.*}}name: "Bool"
8686
// IR: ![[INT:[0-9]+]] = !DICompositeType({{.*}}name: "Int"
8787
// IR: ![[TAU_0_0:[0-9]+]] = {{.*}}DW_TAG_structure_type, name: "$sxD",
88+
// IR: ![[TAU_1_0:[0-9]+]] = {{.*}}DW_TAG_structure_type, name: "$sqd__D",
8889
// IR: ![[MD_1_0]] = !DILocalVariable(name: "$\CF\84_1_0"
89-
// IR: ![[S]] = !DILocalVariable(name: "s", {{.*}} type: ![[TAU_1_0:[0-9]+]]
90-
// IR: ![[TAU_1_0]] = {{.*}}DW_TAG_structure_type, name: "$sqd__D",
90+
// IR: ![[S]] = !DILocalVariable(name: "s", {{.*}} type: ![[TAU_1_0]]
9191
// IR: ![[GS_T]] = !DILocalVariable(name: "t", {{.*}} scope: ![[SP_GS_T:[0-9]+]], {{.*}} type: ![[TAU_1_0]])
9292
// IR: ![[SP_GS_T]] = {{.*}}linkageName: "$s1A1gyyxlFqd___Ti5"
9393
// IR: ![[GS_U]] = !DILocalVariable(name: "u", {{.*}} scope: ![[SP_GS_U:[0-9]+]], {{.*}} type: ![[TAU_1_0]])

test/DebugInfo/protocolarg.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ public protocol IGiveOutInts {
1717
public func printSomeNumbers(_ gen: IGiveOutInts) {
1818
var gen = gen
1919
// FIXME: Should be DW_TAG_interface_type
20+
// CHECK: ![[PT:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "IGiveOutInts"
2021
// CHECK: ![[ARG]] = !DILocalVariable(name: "gen", arg: 1,
21-
// CHECK-SAME: line: [[@LINE-4]], type: ![[PT:[0-9]+]]
22-
// CHECK: ![[PT]] = !DICompositeType(tag: DW_TAG_structure_type, name: "IGiveOutInts"
22+
// CHECK-SAME: line: [[@LINE-5]], type: ![[PT]]
2323
// CHECK: ![[VAR]] = !DILocalVariable(name: "gen", {{.*}} line: [[@LINE-5]]
2424
markUsed(gen.callMe())
2525
use(&gen)

test/DebugInfo/struct_resilience.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,9 @@ func f() {
3737
}
3838
f()
3939

40-
// CHECK: ![[TY:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Size",
4140
// CHECK: ![[TY:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Size",
4241

4342
// CHECK: ![[V1]] = !DILocalVariable(name: "s1", {{.*}}type: ![[TY]])
4443

45-
// CHECK-LLDB: ![[TY:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Size",
4644
// CHECK-LLDB: ![[TY:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Size",
4745
// CHECK-LLDB: ![[V1]] = !DILocalVariable(name: "s1", {{.*}}type: ![[TY]])
48-

0 commit comments

Comments
 (0)