Skip to content

Commit 721a929

Browse files
committed
Pre-commit debug_scope_distinct.swift LIT test
1 parent 493a25f commit 721a929

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

test/IRGen/debug_scope_distinct.swift

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-swiftc_driver -DM -emit-module -emit-module-path %t/M.swiftmodule %s -module-name M
3+
// RUN: %target-swiftc_driver -O -g -I %t -c %s -emit-ir -o - | %FileCheck %s
4+
5+
// CHECK: define {{.*}} void @"$s4main1TV4move2byyAC13TangentVectorV_tF"
6+
// call void @llvm.dbg.value(metadata {{.*}}, metadata !225, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !220
7+
8+
// CHECK: %[[ARG0_GEP:.*]] = getelementptr inbounds %T4main1TV13TangentVectorV, %T4main1TV13TangentVectorV* %0, i64 0, i32 0, i32 0, i32 0
9+
// CHECK: %[[ARG0:.*]] = load {{.*}} %[[ARG0_GEP]]
10+
// CHECK: call void @llvm.dbg.value(metadata {{.*}} %[[ARG0]], metadata ![[VAR1:[0-9]+]], metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg ![[LOC1:[0-9]+]]
11+
// CHECK: %[[ARG1_GEP:.*]] = getelementptr inbounds %T4main1TV13TangentVectorV, %T4main1TV13TangentVectorV* %0, i64 0, i32 0, i32 0, i32 1, i32 0
12+
// CHECK: %[[ARG1:.*]] = load {{.*}} %[[ARG1_GEP]]
13+
// CHECK: call void @llvm.dbg.value(metadata {{.*}} %[[ARG1]], metadata ![[VAR1]], metadata !DIExpression(DW_OP_LLVM_fragment, 64, 8)), !dbg ![[LOC1]]
14+
//
15+
// CHECK: %[[ARG2_GEP:.*]] = getelementptr inbounds %T4main1TV13TangentVectorV, %T4main1TV13TangentVectorV* %0, i64 0, i32 2, i32 0, i32 0
16+
// CHECK: %[[ARG2:.*]] = load {{.*}} %[[ARG2_GEP]]
17+
// CHECK: call void @llvm.dbg.value(metadata {{.*}} %[[ARG2]], metadata ![[VAR1]], metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg ![[LOC1]]
18+
// CHECK: %[[ARG3_GEP:.*]] = getelementptr inbounds %T4main1TV13TangentVectorV, %T4main1TV13TangentVectorV* %0, i64 0, i32 2, i32 0, i32 1, i32 0
19+
// CHECK: %[[ARG3:.*]] = load {{.*}} %[[ARG3_GEP]]
20+
// CHECK: call void @llvm.dbg.value(metadata {{.*}} %[[ARG3]], metadata ![[VAR1]], metadata !DIExpression(DW_OP_LLVM_fragment, 64, 8)), !dbg ![[LOC1]]
21+
22+
// CHECK-DAG: ![[VAR1]] = !DILocalVariable(name: "offset", arg: 1, scope: ![[SCOPE:[0-9]+]]
23+
24+
// CHECK-DAG: ![[LOC1]] = !DILocation(line: 0, scope: ![[SCOPE]], inlinedAt: ![[LOCINL1:[0-9]+]])
25+
// CHECK-DAG: ![[LOCINL1]] = !DILocation(line: 0, scope: ![[SUBPROG:[0-9]+]])
26+
// CHECK-DAG: ![[SUBPROG]] = distinct !DISubprogram(name: "move", linkageName: "$s4main1TV4move2byyAC13TangentVectorV_tF"
27+
28+
#if M
29+
import _Differentiation
30+
31+
public struct S<T> {
32+
class C {}
33+
let c: C
34+
internal var b: Int8
35+
init(_ initb: Int8) {
36+
b = initb;
37+
c = C();
38+
}
39+
}
40+
41+
extension S: AdditiveArithmetic {
42+
public static var zero: S { let ret = S(0); return ret; }
43+
public static func == (_ lhs: S, _ rhs: S) -> Bool { return lhs.b == rhs.b; }
44+
public static func + (_ lhs: S, _ rhs: S) -> S { var ret = lhs; ret.b += rhs.b; return ret; }
45+
public static func - (_ lhs: S, _ rhs: S) -> S { var ret = lhs; ret.b -= rhs.b; return ret; }
46+
}
47+
48+
extension S: Differentiable {
49+
public typealias TangentVector = S
50+
}
51+
52+
#else
53+
import _Differentiation
54+
import M
55+
56+
struct T: Differentiable {
57+
var u1: U
58+
var u2: U
59+
}
60+
61+
struct U: Differentiable {
62+
var s: S<Float>
63+
var v: V
64+
}
65+
66+
struct V: Differentiable {
67+
var s: S<Float>
68+
}
69+
#endif

0 commit comments

Comments
 (0)