3
3
// RUN: %target-swift-frontend -parse-as-library -Xllvm -sil-disable-pass=alloc-stack-hoisting -g -c %s -o %t/out.o
4
4
// RUN: %llvm-dwarfdump --show-children %t/out.o | %FileCheck -check-prefix=DWARF %s
5
5
6
- // rdar://90028779
7
- // REQUIRES: rdar90028779
8
-
9
6
// This test checks that:
10
7
//
11
8
// 1. At the IR level, we insert the appropriate llvm.dbg.addr, llvm.dbg.value.
@@ -90,11 +87,11 @@ public func copyableValueTest() {
90
87
91
88
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo15copyableVarTestyyF"()
92
89
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
93
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k , metadata ![[K_COPYABLE_VAR_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
90
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** [[VAR:%.*]] , metadata ![[K_COPYABLE_VAR_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
94
91
// CHECK-NEXT: br
95
92
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC** undef, metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
96
93
// TODO: Should this be a deref like the original?
97
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k , metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
94
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** [[VAR]] , metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
98
95
// CHECK-NEXT: br
99
96
// CHECK: ret void
100
97
// CHECK-NEXT: }
@@ -263,7 +260,7 @@ public func copyableValueCCFlowTest() {
263
260
264
261
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo037copyableVarTestCCFlowReinitOutOfBlockF0yyF"(
265
262
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
266
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k , metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
263
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** [[VAR:%.*]] , metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
267
264
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
268
265
//
269
266
// CHECK: [[BB_NEXT]]:
@@ -278,7 +275,7 @@ public func copyableValueCCFlowTest() {
278
275
//
279
276
// CHECK: [[CONT_BB]]:
280
277
// TODO: Should this be a deref like the original?
281
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k , metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
278
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** [[VAR]] , metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
282
279
// CHECK-NEXT: br
283
280
// CHECK: ret void
284
281
// CHECK-NEXT: }
@@ -296,7 +293,7 @@ public func copyableVarTestCCFlowReinitOutOfBlockTest() {
296
293
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo034copyableVarTestCCFlowReinitInBlockF0yyF"(
297
294
// CHECK: entry:
298
295
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
299
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k , metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
296
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** [[VAR:%.*]] , metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
300
297
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
301
298
//
302
299
// CHECK: [[BB_NEXT]]:
@@ -305,7 +302,7 @@ public func copyableVarTestCCFlowReinitOutOfBlockTest() {
305
302
// CHECK: [[LHS]]:
306
303
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC** undef, metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
307
304
// TODO: Should this be a deref like the original?
308
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k , metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
305
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** [[VAR]] , metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
309
306
// CHECK-NEXT: br label %[[BB_NEXT_2:[a-z\.0-9]+]],
310
307
//
311
308
// CHECK: [[BB_NEXT_2]]:
@@ -330,7 +327,7 @@ public func copyableVarTestCCFlowReinitInBlockTest() {
330
327
331
328
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo040addressOnlyVarTestCCFlowReinitOutOfBlockG0yyxmAA1PRzlF"(
332
329
// CHECK: entry:
333
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP* %k , metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
330
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP* [[VAR:%.*]] , metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
334
331
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
335
332
//
336
333
// CHECK: [[BB_NEXT]]:
@@ -345,7 +342,7 @@ public func copyableVarTestCCFlowReinitInBlockTest() {
345
342
//
346
343
// CHECK: [[CONT_BB]]:
347
344
// TODO: Should this be a deref like the original?
348
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP* %k , metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
345
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP* [[VAR]] , metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
349
346
// CHECK-NEXT: br
350
347
// CHECK: ret void
351
348
// CHECK-NEXT: }
@@ -362,7 +359,7 @@ public func addressOnlyVarTestCCFlowReinitOutOfBlockTest<T : P>(_ x: T.Type) {
362
359
363
360
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo037addressOnlyVarTestCCFlowReinitInBlockG0yyxmAA1PRzlF"(
364
361
// CHECK: entry:
365
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP* %k , metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
362
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP* [[VAR:%.*]] , metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
366
363
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
367
364
//
368
365
// CHECK: [[BB_NEXT]]:
@@ -371,7 +368,7 @@ public func addressOnlyVarTestCCFlowReinitOutOfBlockTest<T : P>(_ x: T.Type) {
371
368
// CHECK: [[LHS]]:
372
369
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo1PP* undef, metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
373
370
// TODO: Should this be a deref like the original?
374
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP* %k , metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
371
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP* [[VAR]] , metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
375
372
// CHECK-NEXT: br label %[[BB_NEXT_2:[a-z\.0-9]+]],
376
373
//
377
374
// CHECK: [[BB_NEXT_2]]:
0 commit comments