Skip to content

Commit 5f73a17

Browse files
committed
[debug-info] Re-enable alloc-stack-hoisting on the move function tests.
I fixed the issues exposed with alloc-stack-hoisting for llvm.dbg.addr some time ago but didn't update this test. The test changes are b/c I did not fix this for llvm.dbg.declare resulting in us losing the variable "m" in certain situations. "k" the thing we care about is actually fine though.
1 parent f9c1534 commit 5f73a17

File tree

2 files changed

+8
-31
lines changed

2 files changed

+8
-31
lines changed

test/DebugInfo/move_function_dbginfo.swift

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// RUN: %empty-directory(%t)
2-
// RUN: %target-swift-frontend -parse-as-library -Xllvm -sil-disable-pass=alloc-stack-hoisting -g -emit-ir -o - %s | %FileCheck %s
3-
// RUN: %target-swift-frontend -parse-as-library -Xllvm -sil-disable-pass=alloc-stack-hoisting -g -c %s -o %t/out.o
2+
// RUN: %target-swift-frontend -parse-as-library -g -emit-ir -o - %s | %FileCheck %s
3+
// RUN: %target-swift-frontend -parse-as-library -g -c %s -o %t/out.o
44
// RUN: %llvm-dwarfdump --show-children %t/out.o | %FileCheck -check-prefix=DWARF %s
55

66
// This test checks that:
@@ -219,10 +219,7 @@ public func copyableVarArgTest(_ k: inout Klass) {
219219
}
220220

221221
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo20addressOnlyValueTestyyxAA1PRzlF"(%swift.opaque* noalias nocapture %0, %swift.type* %T, i8** %T.P)
222-
// CHECK: @llvm.dbg.declare(metadata %swift.type** %T1,
223-
// CHECK: @llvm.dbg.declare(metadata %swift.opaque** %x.debug,
224-
// CHECK: @llvm.dbg.declare(metadata i8** %m.debug,
225-
// CHECK: @llvm.dbg.addr(metadata i8** %k.debug, metadata ![[K_ADDR_LET_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
222+
// CHECK: @llvm.dbg.addr(metadata %swift.opaque** %k.debug, metadata ![[K_ADDR_LET_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
226223
// CHECK-NEXT: br
227224
// CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDR_LET_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
228225
// CHECK: ret void
@@ -312,13 +309,10 @@ public func addressOnlyValueArgTest<T : P>(_ k: __owned T) {
312309
}
313310

314311
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo18addressOnlyVarTestyyxAA1PRzlF"(%swift.opaque* noalias nocapture %0, %swift.type* %T, i8** %T.P)
315-
// CHECK: @llvm.dbg.declare(metadata %swift.type** %T1,
316-
// CHECK: @llvm.dbg.declare(metadata %swift.opaque** %x.debug,
317-
// CHECK: @llvm.dbg.declare(metadata i8** %m.debug,
318-
// CHECK: @llvm.dbg.addr(metadata i8** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
312+
// CHECK: @llvm.dbg.addr(metadata %swift.opaque** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
319313
// CHECK-NEXT: br
320314
// CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
321-
// CHECK: @llvm.dbg.addr(metadata i8** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
315+
// CHECK: @llvm.dbg.addr(metadata %swift.opaque** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
322316
// CHECK-NEXT: br
323317
// CHECK: ret void
324318
// CHECK-NEXT: }
@@ -344,13 +338,6 @@ public func addressOnlyValueArgTest<T : P>(_ k: __owned T) {
344338
// DWARF-NEXT: DW_AT_artificial (true)
345339
//
346340
// DWARF: DW_TAG_variable
347-
// DWARF-NEXT: DW_AT_location (
348-
// DWARF-NEXT: DW_AT_name ("m")
349-
// DWARF-NEXT: DW_AT_decl_file (
350-
// DWARF-NEXT: DW_AT_decl_line (
351-
// DWARF-NEXT: DW_AT_type (
352-
//
353-
// DWARF: DW_TAG_variable
354341
// DWARF-NEXT: DW_AT_location (0x{{[a-z0-9]+}}:
355342
// DWARF-NEXT: [0x{{[a-z0-9]+}}, 0x{{[a-z0-9]+}}):
356343
// TODO: Missing def in dbg info here.
@@ -369,9 +356,6 @@ public func addressOnlyVarTest<T : P>(_ x: T) {
369356
}
370357

371358
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo21addressOnlyVarArgTestyyxz_xtAA1PRzlF"(
372-
// CHECK: call void @llvm.dbg.declare(metadata %swift.type** %T1,
373-
// CHECK: call void @llvm.dbg.declare(metadata %swift.opaque** %x.debug,
374-
// CHECK: call void @llvm.dbg.declare(metadata i8** %m.debug,
375359
// CHECK: call void @llvm.dbg.addr(metadata %swift.opaque** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
376360
// CHECK-NEXT: br
377361
// CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
@@ -408,13 +392,6 @@ public func addressOnlyVarTest<T : P>(_ x: T) {
408392
// DWARF-NEXT: DW_AT_name ("$\317\204_0_0")
409393
// DWARF-NEXT: DW_AT_type (
410394
// DWARF-NEXT: DW_AT_artificial (true)
411-
//
412-
// DWARF: DW_TAG_variable
413-
// DWARF-NEXT: DW_AT_location (
414-
// DWARF-NEXT: DW_AT_name ("m")
415-
// DWARF-NEXT: DW_AT_decl_file (
416-
// DWARF-NEXT: DW_AT_decl_line (
417-
// DWARF-NEXT: DW_AT_type (
418395
public func addressOnlyVarArgTest<T : P>(_ k: inout T, _ x: T) {
419396
k.doSomething()
420397
let m = _move(k)

test/DebugInfo/move_function_dbginfo_async.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// RUN: %empty-directory(%t)
2-
// RUN: %target-swift-frontend -parse-as-library -disable-availability-checking -Xllvm -sil-disable-pass=alloc-stack-hoisting -g -emit-ir -o - %s | %FileCheck %s
3-
// RUN: %target-swift-frontend -parse-as-library -disable-availability-checking -Xllvm -sil-disable-pass=alloc-stack-hoisting -g -c %s -o %t/out.o
2+
// RUN: %target-swift-frontend -parse-as-library -disable-availability-checking -g -emit-ir -o - %s | %FileCheck %s
3+
// RUN: %target-swift-frontend -parse-as-library -disable-availability-checking -g -c %s -o %t/out.o
44
// RUN: %llvm-dwarfdump --show-children %t/out.o | %FileCheck -check-prefix=DWARF %s
55

66
// This test checks that:
@@ -97,7 +97,7 @@ public func letSimpleTest<T>(_ msg: __owned T) async {
9797
// CHECK: entryresume.1:
9898
// CHECK: call void @llvm.dbg.addr(metadata i8* %0, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
9999
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
100-
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async10forceSplityyYaF"(%swift.context* swiftasync %34)
100+
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async10forceSplityyYaF"(%swift.context* swiftasync
101101
// CHECK-NEXT: ret void
102102
// CHECK-NEXT: }
103103
//

0 commit comments

Comments
 (0)