mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[DebugInfo] Update tests to use opaque ptrs
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -Onone -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -Onone -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -Onone -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
public class C<T>
|
||||
{
|
||||
@@ -7,7 +6,7 @@ public class C<T>
|
||||
{
|
||||
// Ensure that the type metadata for T is eagerly loaded at -Onone.
|
||||
// CHECK: define {{.*}} @"$s17EagerTypeMetadata1CC1cyyxF"
|
||||
// CHECK: %T = load %swift.type*, %swift.type**
|
||||
// CHECK: %T = load ptr, ptr
|
||||
// CHECK-SAME: !dbg ![[LOC:[0-9]+]], !invariant.load
|
||||
var x = [i]
|
||||
}
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
// Check we don't crash when verifying debug info.
|
||||
// Ideally this should print the output after loadable by address runs
|
||||
// but there's no way of doing this in SIL (for IRGen passes).
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -emit-sil %s -Onone \
|
||||
// RUN: -sil-verify-all -Xllvm -verify-di-holes -emit-ir \
|
||||
// RUN: -Xllvm -sil-print-debuginfo -g -o - | %FileCheck %s
|
||||
|
||||
// RUN: %target-swift-frontend -emit-sil %s -Onone \
|
||||
// RUN: -sil-verify-all -Xllvm -verify-di-holes -emit-ir \
|
||||
// RUN: -Xllvm -sil-print-debuginfo -g -o -
|
||||
// RUN: -Xllvm -sil-print-debuginfo -g -o - | %FileCheck %s
|
||||
|
||||
struct m {
|
||||
let major: Int
|
||||
@@ -50,4 +46,4 @@ struct h<i>{
|
||||
}
|
||||
}
|
||||
|
||||
// CHECK: define internal %swift.opaque* @"$s4main1mVwCP"
|
||||
// CHECK: define internal ptr @"$s4main1mVwCP"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
func markUsed<T>(_ t: T) {}
|
||||
|
||||
@@ -15,7 +14,7 @@ class AClass : AProtocol {
|
||||
// CHECK: define hidden {{.*}}void @"$s17ProtocolContainer3foo{{[_0-9a-zA-Z]*}}F"
|
||||
// CHECK-NEXT: entry:
|
||||
// CHECK: %[[X:.*]] = alloca %T17ProtocolContainer9AProtocolP, align {{(4|8)}}
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %T17ProtocolContainer9AProtocolP* %[[X]], metadata ![[XMD:.*]], metadata !DIExpression())
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[X]], metadata ![[XMD:.*]], metadata !DIExpression())
|
||||
// CHECK-NOT: !DILocalVariable({{.*}} name: "x"
|
||||
// CHECK-NOT: !DILocalVariable({{.*}} name: "x"
|
||||
func foo (_ x : AProtocol) {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
class A {
|
||||
init(handler: (() -> ())) { }
|
||||
}
|
||||
@@ -11,9 +10,9 @@ func function() {
|
||||
let b = B()
|
||||
|
||||
// Ensure that the local b and its weak copy are distinct local variables.
|
||||
// CHECK: call void @llvm.dbg.{{.*}}(metadata %T11WeakCapture1BC*
|
||||
// CHECK: call void @llvm.dbg.{{.*}}(metadata ptr
|
||||
// CHECK-SAME: metadata [[B:.*]], metadata
|
||||
// CHECK: call void @llvm.dbg.{{.*}}(metadata %swift.weak*
|
||||
// CHECK: call void @llvm.dbg.{{.*}}(metadata ptr
|
||||
// CHECK-NOT: metadata [[B]]
|
||||
// CHECK: call
|
||||
A(handler: { [weak b] in
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
func markUsed<T>(_ t: T) {}
|
||||
|
||||
func main() {
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %Any* {{.*}}, metadata ![[S:.*]], metadata !DIExpression()), !dbg ![[DBG:.*]]
|
||||
// CHECK: define hidden swiftcc void @"$s3any4mainyyF"
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr {{.*}}, metadata ![[S:.*]], metadata !DIExpression()), !dbg ![[DBG:.*]]
|
||||
// CHECK: ![[S]] = !DILocalVariable(name: "s", {{.*}}line: [[@LINE+2]]
|
||||
// CHECK: ![[DBG]] = !DILocation(line: [[@LINE+1]], column: 7,
|
||||
var s: Any = "hello world"
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - \
|
||||
// RUN: -module-name M -disable-availability-checking \
|
||||
// RUN: -parse-as-library | %FileCheck %s
|
||||
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - \
|
||||
// RUN: -module-name M -disable-availability-checking \
|
||||
// RUN: -parse-as-library
|
||||
// RUN: -parse-as-library | %FileCheck %s
|
||||
|
||||
// REQUIRES: concurrency
|
||||
|
||||
@@ -14,14 +10,14 @@ func forceSplit() async {
|
||||
func withGenericArg<T>(_ msg: T) async {
|
||||
// This odd debug info is part of a contract with CoroSplit/CoroFrame to fix
|
||||
// this up after coroutine splitting.
|
||||
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYalF"(%swift.context* swiftasync %0
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata %swift.context* %0, metadata ![[MSG:[0-9]+]], metadata !DIExpression({{.*}}DW_OP_plus_uconst, {{.*}}DW_OP_deref))
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata %swift.context* %0, metadata ![[TAU:[0-9]+]], metadata !DIExpression({{.*}}DW_OP_plus_uconst,
|
||||
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYalF"(ptr swiftasync %0
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata ptr %0, metadata ![[MSG:[0-9]+]], metadata !DIExpression({{.*}}DW_OP_plus_uconst, {{.*}}DW_OP_deref))
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata ptr %0, metadata ![[TAU:[0-9]+]], metadata !DIExpression({{.*}}DW_OP_plus_uconst,
|
||||
|
||||
await forceSplit()
|
||||
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYalFTQ0_"(i8* swiftasync %0)
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata i8* %0, metadata ![[MSG_R:[0-9]+]], metadata !DIExpression({{.*}}DW_OP_plus_uconst, [[OFFSET:[0-9]+]], DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata i8* %0, metadata ![[TAU_R:[0-9]+]], metadata !DIExpression({{.*}}DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]], DW_OP_plus_uconst, {{[0-9]+}}))
|
||||
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYalFTQ0_"(ptr swiftasync %0)
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata ptr %0, metadata ![[MSG_R:[0-9]+]], metadata !DIExpression({{.*}}DW_OP_plus_uconst, [[OFFSET:[0-9]+]], DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata ptr %0, metadata ![[TAU_R:[0-9]+]], metadata !DIExpression({{.*}}DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]], DW_OP_plus_uconst, {{[0-9]+}}))
|
||||
use(msg)
|
||||
}
|
||||
// CHECK-LABEL: {{^define }}
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - \
|
||||
// RUN: -module-name M -disable-availability-checking \
|
||||
// RUN: -parse-as-library | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize
|
||||
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - \
|
||||
// RUN: -module-name M -disable-availability-checking \
|
||||
// RUN: -parse-as-library
|
||||
// RUN: -parse-as-library | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize
|
||||
|
||||
// REQUIRES: concurrency
|
||||
|
||||
@@ -16,7 +12,7 @@ public func getVegetables() async -> [String] {
|
||||
public func chopVegetables() async throws -> [String] {
|
||||
let veggies = await getVegetables()
|
||||
// CHECK-NOT: {{^define }}
|
||||
// CHECK: call void @llvm.dbg.declare(metadata i8* %0, metadata ![[V:[0-9]+]], metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_plus_uconst, {{[0-9]+}})
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %0, metadata ![[V:[0-9]+]], metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_plus_uconst, {{[0-9]+}})
|
||||
// CHECK: ![[V]] = !DILocalVariable(name: "veggies"
|
||||
return veggies.map { "chopped \($0)" }
|
||||
}
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - \
|
||||
// RUN: -module-name M -disable-availability-checking \
|
||||
// RUN: -parse-as-library | %FileCheck %s --check-prefix=CHECK
|
||||
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - \
|
||||
// RUN: -module-name M -disable-availability-checking \
|
||||
// RUN: -parse-as-library
|
||||
// RUN: -parse-as-library | %FileCheck %s --check-prefix=CHECK
|
||||
|
||||
// REQUIRES: concurrency
|
||||
|
||||
@@ -12,16 +8,16 @@ public actor Alice {
|
||||
let bob = Bob()
|
||||
|
||||
// CHECK: define {{.*}}$s1M5AliceC4callyyYaFTY0_{{.*}} !dbg ![[SCOPE0:[0-9]+]]
|
||||
// CHECK: call i8* @__swift_async_resume_get_context{{.*}}!dbg ![[HOP0:[0-9]+]]
|
||||
// CHECK: call ptr @__swift_async_resume_get_context{{.*}}!dbg ![[HOP0:[0-9]+]]
|
||||
|
||||
// CHECK: define {{.*}}$s1M5AliceC4callyyYaFTY1_{{.*}} !dbg ![[SCOPE1:[0-9]+]]
|
||||
// CHECK: call i8* @__swift_async_resume_get_context{{.*}}!dbg ![[HOP1:[0-9]+]]
|
||||
// CHECK: call ptr @__swift_async_resume_get_context{{.*}}!dbg ![[HOP1:[0-9]+]]
|
||||
|
||||
// CHECK: define {{.*}}$s1M5AliceC4callyyYaFSiyYaYbcfu_TY0_{{.*}} !dbg ![[LET_SCOPE0:[0-9]+]]
|
||||
// CHECK: call i8* @__swift_async_resume_get_context{{.*}}!dbg ![[LET_HOP0:[0-9]+]]
|
||||
// CHECK: call ptr @__swift_async_resume_get_context{{.*}}!dbg ![[LET_HOP0:[0-9]+]]
|
||||
|
||||
// CHECK: define {{.*}}$s1M5AliceC4callyyYaFSiyYaYbcfu_TY2_{{.*}} !dbg ![[LET_SCOPE1:[0-9]+]]
|
||||
// CHECK: call i8* @__swift_async_resume_get_context{{.*}}!dbg ![[LET_HOP1:[0-9]+]]
|
||||
// CHECK: call ptr @__swift_async_resume_get_context{{.*}}!dbg ![[LET_HOP1:[0-9]+]]
|
||||
public func call() async {
|
||||
// CHECK: ![[SCOPE0]] = distinct !DISubprogram({{.*}}line: [[@LINE-1]]
|
||||
// CHECK: ![[HOP0]] = !DILocation(line: [[@LINE-2]], column: 15
|
||||
|
||||
@@ -20,23 +20,19 @@
|
||||
// CHECK-LINETABLES-NOT: DIBasicType
|
||||
// --------------------------------------------------------------------
|
||||
// Now check that we do generate line+scope info with -g.
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %/s -emit-ir -g -o - \
|
||||
// RUN: %target-swift-frontend %/s -emit-ir -g -o - \
|
||||
// RUN: | %FileCheck %s --check-prefixes CHECK,DWARF-CHECK
|
||||
// RUN: %target-swift-frontend %/s -emit-ir -g -o -
|
||||
// --------------------------------------------------------------------
|
||||
// Currently -gdwarf-types should give the same results as -g.
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %/s -emit-ir -gdwarf-types -o - \
|
||||
// RUN: %target-swift-frontend %/s -emit-ir -gdwarf-types -o - \
|
||||
// RUN: | %FileCheck %s --check-prefixes CHECK,DWARF-CHECK
|
||||
// RUN: %target-swift-frontend %/s -emit-ir -gdwarf-types -o -
|
||||
// --------------------------------------------------------------------
|
||||
// Verify that -g -debug-info-format=dwarf gives the same results as -g.
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %/s -emit-ir -g -debug-info-format=dwarf -o - \
|
||||
// RUN: %target-swift-frontend %/s -emit-ir -g -debug-info-format=dwarf -o - \
|
||||
// RUN: | %FileCheck %s --check-prefixes CHECK,DWARF-CHECK
|
||||
// RUN: %target-swift-frontend %/s -emit-ir -g -debug-info-format=dwarf -o -
|
||||
// --------------------------------------------------------------------
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %/s -emit-ir -g -debug-info-format=codeview -o - \
|
||||
// RUN: %target-swift-frontend %/s -emit-ir -g -debug-info-format=codeview -o - \
|
||||
// RUN: | %FileCheck %s --check-prefixes CHECK,CV-CHECK
|
||||
// RUN: %target-swift-frontend %/s -emit-ir -g -debug-info-format=codeview -o -
|
||||
// --------------------------------------------------------------------
|
||||
//
|
||||
// CHECK: foo
|
||||
@@ -48,12 +44,12 @@ func foo(_ a: Int64, _ b: Int64) -> Int64 {
|
||||
var b = b
|
||||
// CHECK-DAG: ![[ALOC:.*]] = !DILocation(line: [[@LINE-3]],{{.*}} scope: ![[FOO]])
|
||||
// Check that a is the first and b is the second argument.
|
||||
// CHECK-DAG: store i64 %0, i64* [[AADDR:.*]], align
|
||||
// CHECK-DAG: store i64 %1, i64* [[BADDR:.*]], align
|
||||
// CHECK-DAG: store i64 %0, ptr [[AADDR:.*]], align
|
||||
// CHECK-DAG: store i64 %1, ptr [[BADDR:.*]], align
|
||||
// CHECK-DAG: [[AVAL:%.*]] = getelementptr inbounds {{.*}}, [[AMEM:.*]], i32 0, i32 0
|
||||
// CHECK-DAG: [[BVAL:%.*]] = getelementptr inbounds {{.*}}, [[BMEM:.*]], i32 0, i32 0
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata i64* [[AADDR]], metadata ![[AARG:.*]], metadata !DIExpression()), !dbg ![[ALOC]]
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata i64* [[BADDR]], metadata ![[BARG:.*]], metadata !DIExpression())
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata ptr [[AADDR]], metadata ![[AARG:.*]], metadata !DIExpression()), !dbg ![[ALOC]]
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata ptr [[BADDR]], metadata ![[BARG:.*]], metadata !DIExpression())
|
||||
// CHECK-DAG: ![[AARG]] = !DILocalVariable(name: "a", arg: 1
|
||||
// CHECK-DAG: ![[BARG]] = !DILocalVariable(name: "b", arg: 2
|
||||
if b != 0 {
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
func makeIncrementor(_ inc : Int64) -> () -> Int64
|
||||
{
|
||||
var sum : Int64 = 0
|
||||
// CHECK: define {{.*}}5inner
|
||||
func inner() -> Int64 {
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %Ts5Int64V**
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr
|
||||
// CHECK-SAME: metadata ![[SUM_CAPTURE:[0-9]+]],
|
||||
// CHECK-SAME: metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK: ![[INOUTTY:[0-9]+]] = !DICompositeType({{.*}}identifier: "$ss5Int64VD"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
enum MyError : Error {
|
||||
case Yikes
|
||||
@@ -17,7 +16,7 @@ public func explicitBinding() {
|
||||
try throwing()
|
||||
}
|
||||
catch let error {
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.error** %{{.*}}, metadata ![[EXPLICIT_ERROR:[0-9]+]],
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %{{.*}}, metadata ![[EXPLICIT_ERROR:[0-9]+]],
|
||||
use(error)
|
||||
}
|
||||
}
|
||||
@@ -29,7 +28,7 @@ public func implicitBinding() {
|
||||
try throwing()
|
||||
}
|
||||
catch {
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.error** %{{.*}}, metadata ![[IMPLICIT_ERROR:[0-9]+]],
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %{{.*}}, metadata ![[IMPLICIT_ERROR:[0-9]+]],
|
||||
use(error)
|
||||
}
|
||||
}
|
||||
@@ -41,8 +40,8 @@ public func multiBinding() {
|
||||
try throwing()
|
||||
}
|
||||
catch let error as MyError, let error as MyError {
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.error** %{{.*}}, metadata ![[MULTI_BINDING_ERROR:[0-9]+]],
|
||||
// CHECK-NOT: call void @llvm.dbg.declare(metadata %swift.error** %{{.*}}
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %{{.*}}, metadata ![[MULTI_BINDING_ERROR:[0-9]+]],
|
||||
// CHECK-NOT: call void @llvm.dbg.declare(metadata ptr %{{.*}}
|
||||
use(error)
|
||||
} catch {
|
||||
use(error)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
import Swift
|
||||
|
||||
@@ -12,20 +11,20 @@ func main() -> Void
|
||||
|
||||
var backward_ptr =
|
||||
// CHECK: define internal {{.*}} i1 @"$s4mainAAyyFSbSS_SStcfU_"(
|
||||
// CHECK: %[[RANDOM_STR_ADDR:.*]] = alloca %TSS*, align {{(4|8)}}
|
||||
// CHECK: %[[RANDOM_STR_ADDR:.*]] = alloca ptr, align {{(4|8)}}
|
||||
|
||||
// FIXME(TODO: JIRA): i386 String is temporarily larger, and that causes the
|
||||
// value to be by-address. When that is fixed, remove the optional
|
||||
// DW_OP_deref below.
|
||||
//
|
||||
// CHECK-NEXT: call void @llvm.dbg.declare(metadata %TSS** %[[RANDOM_STR_ADDR]], metadata !{{.*}}, metadata !DIExpression({{(DW_OP_deref)?}})), !dbg
|
||||
// CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %[[RANDOM_STR_ADDR]], metadata !{{.*}}, metadata !DIExpression({{(DW_OP_deref)?}})), !dbg
|
||||
|
||||
// CHECK: store %TSS* %{{.*}}, %TSS** %[[RANDOM_STR_ADDR]], align {{(4|8)}}
|
||||
// CHECK: store ptr %{{.*}}, ptr %[[RANDOM_STR_ADDR]], align {{(4|8)}}
|
||||
// CHECK-DAG: !DILocalVariable(name: "lhs",{{.*}} line: [[@LINE+5]],
|
||||
// CHECK-DAG: !DILocalVariable(name: "rhs",{{.*}} line: [[@LINE+4]],
|
||||
// CHECK-DAG: !DILocalVariable(name: "random_string",{{.*}} line: 9,
|
||||
// CHECK-DAG: !DILocalVariable(name: "random_int",{{.*}} line: 10,
|
||||
// CHECK-DAG: !DILocalVariable(name: "out_only",{{.*}} line: 11,
|
||||
// CHECK-DAG: !DILocalVariable(name: "random_string",{{.*}} line: 8,
|
||||
// CHECK-DAG: !DILocalVariable(name: "random_int",{{.*}} line: 9,
|
||||
// CHECK-DAG: !DILocalVariable(name: "out_only",{{.*}} line: 10,
|
||||
{ (lhs : String, rhs : String) -> Bool in
|
||||
if rhs == random_string
|
||||
|| rhs.unicodeScalars.count == random_int
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -g -emit-ir -Xllvm '-sil-inline-never-functions=next' %s | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -g -emit-ir -Xllvm '-sil-inline-never-functions=next' %s
|
||||
// RUN: %target-swift-frontend -g -emit-ir -Xllvm '-sil-inline-never-functions=next' %s | %FileCheck %s
|
||||
|
||||
// FIXME: This test should be testing a non-shadow-copied value instead.
|
||||
for i in 0 ..< 3 {
|
||||
// CHECK: %[[ALLOCA:[0-9]+]] = alloca %TSiSg
|
||||
// CHECK: %i.debug = alloca i{{32|64}}
|
||||
// CHECK-NEXT: call void @llvm.dbg.declare(metadata i{{32|64}}* %i.debug,
|
||||
// CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %i.debug,
|
||||
// CHECK-SAME: metadata ![[I:[0-9]+]],
|
||||
// CHECK: ![[I]] = !DILocalVariable(name: "i",
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// RUN: %target-swift-frontend %s -sil-verify-all -g -emit-sil -o - | %FileCheck --check-prefix=CHECK-SIL %s
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -disable-debugger-shadow-copies -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -disable-debugger-shadow-copies -primary-file %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend -disable-debugger-shadow-copies -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
import Builtin
|
||||
import Swift
|
||||
|
||||
@@ -20,9 +19,9 @@ sil hidden @test_fragment : $@convention(thin) () -> () {
|
||||
bb0:
|
||||
%2 = alloc_stack $MyStruct, var, name "my_struct", loc "file.swift":8:9, scope 1
|
||||
// CHECK: %[[MY_STRUCT:.+]] = alloca %{{.*}}MyStruct
|
||||
// CHECK: llvm.dbg.declare(metadata {{.*}}* %[[MY_STRUCT]], metadata ![[VAR_DECL_MD:[0-9]+]]
|
||||
// CHECK: llvm.dbg.declare(metadata {{.*}} %[[MY_STRUCT]], metadata ![[VAR_DECL_MD:[0-9]+]]
|
||||
// CHECK: %[[SMALL_STRUCT:.+]] = alloca %{{.*}}SmallStruct
|
||||
// CHECK: llvm.dbg.declare(metadata {{.*}}* %[[SMALL_STRUCT]], metadata ![[SMALL_VAR_DECL_MD:[0-9]+]]
|
||||
// CHECK: llvm.dbg.declare(metadata {{.*}} %[[SMALL_STRUCT]], metadata ![[SMALL_VAR_DECL_MD:[0-9]+]]
|
||||
%3 = struct_element_addr %2 : $*MyStruct, #MyStruct.x, loc "file.swift":9:17, scope 1
|
||||
// CHECK: %[[FIELD_X:.*]] = getelementptr {{.*}} %[[MY_STRUCT]]
|
||||
// CHECK-SIL: debug_value %{{[0-9]+}} : $*Builtin.Int64
|
||||
@@ -50,13 +49,13 @@ sil hidden @test_alloc_stack : $@convention(thin) () -> () {
|
||||
bb0:
|
||||
%my_struct = alloc_stack $MyStruct, var, name "my_struct", loc "file.swift":15:9, scope 2
|
||||
// CHECK: %[[MY_STRUCT:.+]] = alloca %{{.*}}MyStruct
|
||||
// CHECK: llvm.dbg.declare(metadata {{.*}}* %[[MY_STRUCT]], metadata ![[VAR_DECL_MD:[0-9]+]]
|
||||
// CHECK: llvm.dbg.declare(metadata ptr %[[MY_STRUCT]], metadata ![[VAR_DECL_MD:[0-9]+]]
|
||||
// CHECK-SIL: alloc_stack $Int, var
|
||||
// CHECK-SIL-SAME: (name "my_struct", loc "file.swift":15:9, scope {{[0-9]+}})
|
||||
// CHECK-SIL-SAME: type $MyStruct, expr op_fragment:#MyStruct.x
|
||||
%field_x = alloc_stack $Int, var, (name "my_struct", loc "file.swift":15:9, scope 2), type $MyStruct, expr op_fragment:#MyStruct.x, loc "file.swift":16:17, scope 2
|
||||
// CHECK: %[[FIELD_X:.+]] = alloca %TSi
|
||||
// CHECK: llvm.dbg.declare(metadata %TSi* %[[FIELD_X]], metadata ![[VAR_DECL_MD]]
|
||||
// CHECK: llvm.dbg.declare(metadata ptr %[[FIELD_X]], metadata ![[VAR_DECL_MD]]
|
||||
// CHECK-SAME: !DIExpression(DW_OP_LLVM_fragment, 0, 64)
|
||||
dealloc_stack %field_x : $*Int
|
||||
dealloc_stack %my_struct: $*MyStruct
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-sil -g -o - | %FileCheck -check-prefix=CHECK-SIL %s
|
||||
|
||||
// Verify that -Onone shadow copies are emitted for debug_value_addr
|
||||
@@ -12,7 +11,7 @@
|
||||
// CHECK: entry:
|
||||
// CHECK-NEXT: %[[TADDR:.*]] = alloca
|
||||
// CHECK-NEXT: call void @llvm.dbg.declare({{.*}}%[[TADDR]]
|
||||
// CHECK: store %swift.opaque* %0, %swift.opaque** %[[TADDR:.*]], align
|
||||
// CHECK: store ptr %0, ptr %[[TADDR:.*]], align
|
||||
|
||||
struct S<T> {
|
||||
var a : T
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swiftc_driver %use_no_opaque_pointers -g -emit-ir %s | %FileCheck %s
|
||||
// RUN: %target-swiftc_driver -g -emit-ir %s
|
||||
// RUN: %target-swiftc_driver -g -emit-ir %s | %FileCheck %s
|
||||
sil_stage canonical
|
||||
|
||||
import Builtin
|
||||
@@ -14,7 +13,7 @@ sil_scope 2 { loc "simple.swift":1:2 parent @test_debug_value : $@convention(thi
|
||||
// CHECK-SAME: !dbg ![[FUNC_DI:[0-9]+]]
|
||||
sil hidden @test_debug_value : $@convention(thin) (Int) -> () {
|
||||
bb0(%0 : $Int):
|
||||
// CHECK: @llvm.dbg.declare(metadata i{{[0-9]+}}*
|
||||
// CHECK: @llvm.dbg.declare(metadata ptr
|
||||
// CHECK-SAME: metadata ![[VAR_DI:[0-9]+]]
|
||||
// CHECK-SAME: ), !dbg ![[LOC_DI:[0-9]+]]
|
||||
debug_value %0 : $Int, let, name "x", argno 1, loc "simple.swift":3:4, scope 2
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
func markUsed<T>(_ t: T) {}
|
||||
|
||||
@@ -10,11 +9,11 @@ class Class <T> {
|
||||
|
||||
// Verify that the mangling of the type U is correct.
|
||||
// CHECK: define {{.*}}3foo
|
||||
// CHECK: %[[U1:.*]] = alloca %swift.type*
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.type** %[[U1]],
|
||||
// CHECK: %[[U1:.*]] = alloca ptr
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[U1]],
|
||||
// CHECK-SAME: metadata ![[U:[0-9]+]]
|
||||
// CHECK: %[[T2:.*]] = alloca %swift.type*
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.type** %[[T2]],
|
||||
// CHECK: %[[T2:.*]] = alloca ptr
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[T2]],
|
||||
// CHECK-SAME: metadata ![[T:[0-9]+]]
|
||||
// CHECK: ![[U]] = !DILocalVariable(name: "$\CF\84_1_0"
|
||||
// CHECK: ![[T]] = !DILocalVariable(name: "$\CF\84_0_0"
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
import StdlibUnittest
|
||||
func foo<T>(_ x: T) -> () {
|
||||
// CHECK: define {{.*}} @"$s11generic_arg3fooyyxlF"
|
||||
// CHECK: %[[T:.*]] = alloca %swift.type*
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.type** %[[T]],
|
||||
// CHECK: %[[T:.*]] = alloca ptr
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[T]],
|
||||
// CHECK-SAME: metadata ![[T1:.*]], metadata !DIExpression())
|
||||
// CHECK: %[[X:.*]] = alloca %swift.opaque*
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.opaque** %[[X]],
|
||||
// CHECK: %[[X:.*]] = alloca ptr
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[X]],
|
||||
// CHECK-SAME: metadata ![[X1:.*]], metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK: store %swift.type* %T, %swift.type** %[[T]],
|
||||
// CHECK: store %swift.opaque* %0, %swift.opaque** %[[X]],
|
||||
// CHECK: store ptr %T, ptr %[[T]],
|
||||
// CHECK: store ptr %0, ptr %[[X]],
|
||||
// CHECK-DAG: ![[T1]] = !DILocalVariable(name: "$\CF\84_0_0",{{.*}}flags: DIFlagArtificial)
|
||||
// CHECK-DAG: ![[X1]] = !DILocalVariable(name: "x", arg: 1,{{.*}}line: 4, type: ![[LET_TY2:[0-9]+]])
|
||||
// CHECK-DAG: ![[X1]] = !DILocalVariable(name: "x", arg: 1,{{.*}}line: 3, type: ![[LET_TY2:[0-9]+]])
|
||||
// CHECK-DAG: ![[LET_TY2]] = !DIDerivedType(tag: DW_TAG_const_type,{{.*}}baseType: ![[TY2:[0-9]+]])
|
||||
// CHECK-DAG: ![[TY2]] = !DICompositeType({{.*}}name: "$sxD"
|
||||
_blackHole(x)
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
// CHECK: define hidden swiftcc void @"$s12generic_arg25ClassC3foo{{.*}}, %swift.type* %U
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.opaque** %y.debug, metadata ![[U:.*]], metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK: define hidden swiftcc void @"$s12generic_arg25ClassC3foo{{.*}}, ptr %U
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %y.debug, metadata ![[U:.*]], metadata !DIExpression(DW_OP_deref))
|
||||
// Make sure there is no conflicting dbg.value for this variable.x
|
||||
// CHECK-NOT: dbg.value{{.*}}metadata ![[U]]
|
||||
class Class <T> {
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
func apply<Type>(_ T : Type, fn: (Type) -> Type) -> Type { return fn(T) }
|
||||
|
||||
public func f<Type>(_ value : Type)
|
||||
{
|
||||
// CHECK: define {{.*}}$s12generic_arg31fyyxlFxxXEfU_
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.opaque** %[[ALLOCA:[^,]+]],
|
||||
// CHECK-SAME: metadata ![[ARG:.*]], metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK: store %swift.opaque* %1, %swift.opaque** %[[ALLOCA]], align
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[ALLOCA:.*]], metadata ![[ARG:.*]], metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK: store ptr %1, ptr %[[ALLOCA]], align
|
||||
// No deref here.
|
||||
// CHECK-DAG: ![[TY:.*]] = !DICompositeType({{.*}}name: "$sxD", file
|
||||
// CHECK-DAG: ![[LET_TY:[0-9]+]] = !DIDerivedType(tag: DW_TAG_const_type,{{.*}}baseType: ![[TY]])
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
// REQUIRES: objc_interop
|
||||
public struct Q<T> {
|
||||
let x: T
|
||||
}
|
||||
// CHECK: define {{.*}}$s12generic_arg43fooyySayAA1QVyxGGlF
|
||||
// CHECK: call void @llvm.dbg.declare
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %[[TY:.*]]** %[[ALLOCA:[^,]+]],
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[ALLOCA:[^,]+]],
|
||||
// CHECK-SAME: metadata ![[ARG:.*]], metadata !DIExpression())
|
||||
// CHECK: store %[[TY]]* %0, %[[TY]]** %[[ALLOCA]], align
|
||||
// CHECK: store ptr %0, ptr %[[ALLOCA]], align
|
||||
// No deref here: the array argument is passed by value.
|
||||
// CHECK: ![[DITY:.*]] = !DICompositeType({{.*}}name: "$sSay12generic_arg41QVyxGGD"
|
||||
public func foo<T>(_ arg: [Q<T>]) {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
public struct S<Type>
|
||||
{
|
||||
let value : Type
|
||||
@@ -9,10 +8,10 @@ public func foo<Type>(_ values : [S<Type>])
|
||||
{
|
||||
// CHECK: define {{.*}}$s12generic_arg53fooyySayAA1SVyxGGlFAESgAEXEfU_
|
||||
// CHECK: call void @llvm.dbg.declare
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %[[TY:.*]]** %[[ALLOCA:[^,]+]],
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[ALLOCA:[^,]+]],
|
||||
// CHECK-SAME: metadata ![[ARG:[0-9]+]],
|
||||
// CHECK-SAME: metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK: store %[[TY]]* %1, %[[TY]]** %[[ALLOCA]], align
|
||||
// CHECK: store ptr %1, ptr %[[ALLOCA]], align
|
||||
// CHECK: ![[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,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
struct __CurrentErrno {}
|
||||
struct CErrorOr<T>
|
||||
@@ -12,9 +11,9 @@ struct CErrorOr<T>
|
||||
// CHECK: call void @llvm.dbg.declare
|
||||
// Self is in a dynamic alloca, hence the shadow copy.
|
||||
// CHECK: call void @llvm.dbg.declare(
|
||||
// CHECK-SAME: metadata i8** %[[SHADOW:.*]], metadata ![[SELF:.*]], meta
|
||||
// CHECK-SAME: metadata ptr %[[SHADOW:.*]], metadata ![[SELF:.*]], meta
|
||||
// CHECK-SAME: !DIExpression(DW_OP_deref))
|
||||
// CHECK-DAG: store i8* %[[DYN:.*]], i8** %[[SHADOW]]
|
||||
// CHECK-DAG: store ptr %[[DYN:.*]], ptr %[[SHADOW]]
|
||||
// CHECK-DAG: %[[DYN]] = alloca i8, i{{32|64}} %
|
||||
// CHECK-DAG: ![[SELF]] = !DILocalVariable(name: "self", scope:{{.*}}, type: ![[TY_CONTAINER:.*]])
|
||||
// CHECK-DAG: ![[TY_CONTAINER]] = !DICompositeType({{.*}}elements: ![[TY_ELTS:[0-9]+]]
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -c -emit-ir -g -o - | \
|
||||
// RUN: %target-swift-frontend %s -c -emit-ir -g -o - | \
|
||||
// RUN: %FileCheck %s --check-prefix=CHECK1
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -c -emit-ir -g -o - | \
|
||||
// RUN: %target-swift-frontend %s -c -emit-ir -g -o - | \
|
||||
// RUN: %FileCheck %s --check-prefix=CHECK2
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -c -emit-ir -g -o - | \
|
||||
// RUN: %target-swift-frontend %s -c -emit-ir -g -o - | \
|
||||
// RUN: %FileCheck %s --check-prefix=CHECK3
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -c -emit-ir -g -o -
|
||||
|
||||
// UNSUPPORTED: OS=watchos
|
||||
|
||||
@@ -21,12 +20,11 @@ func use<T>(_ t: T) {}
|
||||
public func f(_ i : Int?)
|
||||
{
|
||||
// CHECK1-LABEL: define {{.*}}@"$s4main1fyySiSgF"
|
||||
// CHECK1: %i.debug = alloca %TSiSg
|
||||
// CHECK1: @llvm.dbg.declare(metadata %TSiSg* %i.debug
|
||||
// CHECK1: %[[BITCAST:.*]] = bitcast %TSiSg* %i.debug to i8*
|
||||
// CHECK1: call void @llvm.memset{{.*}}(i8* align {{(4|8)}} %[[BITCAST]],
|
||||
// CHECK1: %[[alloca:.*]] = alloca %TSiSg
|
||||
// CHECK1: @llvm.dbg.declare(metadata ptr %i.debug
|
||||
// CHECK1: call void @llvm.memset{{.*}}(ptr align {{(4|8)}} %[[alloca]],
|
||||
// CHECK1-SAME: i8 0, i64 {{(5|9)}}, i1 false){{$}}
|
||||
// CHECK1: @llvm.dbg.declare(metadata {{(i32|i64)}}* %val.debug,
|
||||
// CHECK1: @llvm.dbg.declare(metadata ptr %val.debug,
|
||||
// CHECK1-SAME: !dbg ![[DBG0:.*]]
|
||||
// CHECK1-LABEL: define {{.*}}@"$s4main1gyySSSgF"
|
||||
// CHECK1: ![[F:.*]] = distinct !DISubprogram(name: "f",
|
||||
@@ -39,12 +37,11 @@ public func f(_ i : Int?)
|
||||
public func g(_ s : String?)
|
||||
{
|
||||
// CHECK2: define {{.*}}@"$s4main1gyySSSgF"
|
||||
// CHECK2: %s.debug = alloca %TSSSg
|
||||
// CHECK2: @llvm.dbg.declare(metadata %TSSSg*
|
||||
// CHECK2: %[[alloca:.*]] = alloca %TSSSg
|
||||
// CHECK2: @llvm.dbg.declare(metadata ptr
|
||||
// CHECK2: %val.debug = alloca %TSS
|
||||
// CHECK2: @llvm.dbg.declare(metadata %TSS*
|
||||
// CHECK2: %[[BITCAST:.*]] = bitcast %TSS* %val.debug to i8*{{$}}
|
||||
// CHECK2: call void @llvm.memset.{{.*}}(i8* align {{(4|8)}} %[[BITCAST]], i8 0
|
||||
// CHECK2: @llvm.dbg.declare(metadata ptr
|
||||
// CHECK2: call void @llvm.memset.{{.*}}(ptr align {{(4|8)}} %[[alloca]], i8 0
|
||||
// CHECK2: ![[G:.*]] = distinct !DISubprogram(name: "g"
|
||||
guard let val = s else { return }
|
||||
use(val)
|
||||
@@ -54,11 +51,10 @@ public func h(_ s : String?)
|
||||
{
|
||||
// CHECK3: define {{.*}}@"$s4main1hyySSSgF"
|
||||
// CHECK3: %s.debug = alloca %TSSSg
|
||||
// CHECK3: @llvm.dbg.declare(metadata %TSSSg*
|
||||
// CHECK3: %s.debug1 = alloca %TSS
|
||||
// CHECK3: @llvm.dbg.declare(metadata %TSS*
|
||||
// CHECK3: %[[BITCAST:.*]] = bitcast %TSS* %s.debug1 to i8*{{$}}
|
||||
// CHECK3: call void @llvm.memset.{{.*}}(i8* align {{(4|8)}} %[[BITCAST]], i8 0
|
||||
// CHECK3: @llvm.dbg.declare(metadata ptr
|
||||
// CHECK3: %[[alloca:.*]] = alloca %TSS
|
||||
// CHECK3: @llvm.dbg.declare(metadata ptr
|
||||
// CHECK3: call void @llvm.memset.{{.*}}(ptr align {{(4|8)}} %[[alloca]], i8 0
|
||||
// CHECK3: ![[G:.*]] = distinct !DISubprogram(name: "h"
|
||||
guard let s = s else { return }
|
||||
use(s)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -import-objc-header %S/Inputs/serialized-objc-header.h -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -import-objc-header %S/Inputs/serialized-objc-header.h -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -import-objc-header %S/Inputs/serialized-objc-header.h -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
// REQUIRES: objc_interop
|
||||
|
||||
@@ -8,11 +7,11 @@ protocol Named {
|
||||
}
|
||||
|
||||
// initializer.Person.__allocating_init (initializer.Person.Type)() -> initializer.Person
|
||||
// CHECK: define hidden {{.*}}%T11initializer6PersonC* @"$s11initializer6PersonCACycfC"(%swift.type*{{.*}}) {{.*}} {
|
||||
// CHECK: call {{.*}}%T11initializer6PersonC* @"$s11initializer6PersonCACycfc"(%T11initializer6PersonC* {{.*}}), !dbg ![[ALLOCATING_INIT:.*]]
|
||||
// CHECK: define hidden {{.*}}ptr @"$s11initializer6PersonCACycfC"(ptr{{.*}}) {{.*}} {
|
||||
// CHECK: call {{.*}}ptr @"$s11initializer6PersonCACycfc"(ptr {{.*}}), !dbg ![[ALLOCATING_INIT:.*]]
|
||||
|
||||
// initializer.Person.init (initializer.Person.Type)() -> initializer.Person
|
||||
// CHECK: define hidden {{.*}}%T11initializer6PersonC* @"$s11initializer6PersonCACycfc"(%T11initializer6PersonC*{{.*}}) {{.*}} {
|
||||
// CHECK: define hidden {{.*}}ptr @"$s11initializer6PersonCACycfc"(ptr{{.*}}) {{.*}} {
|
||||
|
||||
// CHECK-DAG: ![[ALLOCATING_INIT]] = !DILocation(line: 0, scope
|
||||
class Person : Named {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// RUN: -Xllvm -sil-print-debuginfo %s -g -O -o - -emit-sil \
|
||||
// RUN: | %FileCheck %s --check-prefix=SIL
|
||||
// IR.
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -parse-as-library -module-name A \
|
||||
// RUN: %target-swift-frontend -parse-as-library -module-name A \
|
||||
// RUN: %s -g -O -o - -emit-ir \
|
||||
// RUN: | %FileCheck %s --check-prefix=IR
|
||||
|
||||
@@ -50,12 +50,12 @@ public class C<R> {
|
||||
// SIL: debug_value %0 : $*S, let, name "s", argno 1, expr op_deref, {{.*}} scope [[F]]
|
||||
// SIL: function_ref {{.*}}yes{{.*}} scope [[F1G1]]
|
||||
// SIL: function_ref {{.*}}use{{.*}} scope [[F1G3H]]
|
||||
// IR: dbg.value(metadata %swift.type* %[[ARG_S]], metadata ![[MD_1_0:[0-9]+]]
|
||||
// IR: dbg.value(metadata ptr %[[ARG_S]], metadata ![[MD_1_0:[0-9]+]]
|
||||
// IR: %[[RS_PAIR:.*]] = alloca i8, i64 %
|
||||
// IR: dbg.declare({{.*}} %[[RS_PAIR]], metadata ![[GRS_T:[0-9]+]],
|
||||
// IR: dbg.value(metadata %swift.opaque* %[[ARG_0]], metadata ![[S:[0-9]+]]
|
||||
// IR: dbg.value(metadata %swift.opaque* %[[ARG_0]], metadata ![[GS_T:[0-9]+]]
|
||||
// IR: dbg.value(metadata %swift.opaque* %[[ARG_0]], metadata ![[GS_U:[0-9]+]]
|
||||
// IR: dbg.declare(metadata ptr %[[RS_PAIR]], metadata ![[GRS_T:[0-9]+]],
|
||||
// IR: dbg.value(metadata ptr %[[ARG_0]], metadata ![[S:[0-9]+]]
|
||||
// IR: dbg.value(metadata ptr %[[ARG_0]], metadata ![[GS_T:[0-9]+]]
|
||||
// IR: dbg.value(metadata ptr %[[ARG_0]], metadata ![[GS_U:[0-9]+]]
|
||||
// IR: call {{.*}}3use
|
||||
#sourceLocation(file: "f.swift", line: 2)
|
||||
g(s)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -Xllvm -sil-inline-generics=true %s -O -g -o - -emit-ir | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -Xllvm -sil-inline-generics=true %s -O -g -o - -emit-ir
|
||||
// RUN: %target-swift-frontend -Xllvm -sil-inline-generics=true %s -O -g -o - -emit-ir | %FileCheck %s
|
||||
public protocol P {
|
||||
associatedtype DT1
|
||||
func getDT() -> DT1
|
||||
@@ -13,7 +12,7 @@ func foo1<T:P>(_ t: T, _ dt: T.DT1) -> T.DT1 {
|
||||
|
||||
// CHECK: define {{.*}}@"$s4main4foo2yyxAA1PRzlF"
|
||||
public func foo2<S:P>(_ s: S) {
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.type* %S,
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr %S,
|
||||
// CHECK-SAME: metadata ![[META:[0-9]+]]
|
||||
foo1(s, s.getDT())
|
||||
// T should get substituted with S
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -module-name inout -o %t.ll
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -module-name inout
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -module-name inout -o %t.ll
|
||||
// RUN: cat %t.ll | %FileCheck %s
|
||||
// RUN: cat %t.ll | %FileCheck %s --check-prefix=PROMO-CHECK
|
||||
// RUN: cat %t.ll | %FileCheck %s --check-prefix=FOO-CHECK
|
||||
@@ -10,13 +9,13 @@ func Close(_ fn: () -> Int64) { fn() }
|
||||
typealias MyFloat = Float
|
||||
|
||||
// CHECK: define hidden swiftcc void @"$s5inout13modifyFooHeap{{[_0-9a-zA-Z]*}}F"
|
||||
// CHECK: %[[ALLOCA:.*]] = alloca %Ts5Int64V*
|
||||
// CHECK: %[[ALLOCA:.*]] = alloca ptr
|
||||
// CHECK: call void @llvm.dbg.declare(metadata
|
||||
// CHECK-SAME: %[[ALLOCA]], metadata ![[A:[0-9]+]]
|
||||
|
||||
// Closure with promoted capture.
|
||||
// PROMO-CHECK: define {{.*}}@"$s5inout13modifyFooHeapyys5Int64Vz_SftFADyXEfU_"
|
||||
// PROMO-CHECK: call void @llvm.dbg.declare(metadata %Ts5Int64V** %
|
||||
// PROMO-CHECK: call void @llvm.dbg.declare(metadata ptr %
|
||||
// PROMO-CHECK-SAME: metadata ![[A1:[0-9]+]], metadata !DIExpression(DW_OP_deref))
|
||||
|
||||
// PROMO-CHECK: ![[INT:.*]] = !DICompositeType({{.*}}identifier: "$ss5Int64VD"
|
||||
@@ -37,7 +36,7 @@ func modifyFooHeap(_ a: inout Int64,
|
||||
|
||||
// Inout reference type.
|
||||
// FOO-CHECK: define {{.*}}@"$s5inout9modifyFooyys5Int64Vz_SftF"
|
||||
// FOO-CHECK: call void @llvm.dbg.declare(metadata %Ts5Int64V** %
|
||||
// FOO-CHECK: call void @llvm.dbg.declare(metadata ptr %
|
||||
// FOO-CHECK-SAME: metadata ![[U:[0-9]+]], metadata !DIExpression(DW_OP_deref))
|
||||
func modifyFoo(_ u: inout Int64,
|
||||
// FOO-CHECK-DAG: !DILocalVariable(name: "v", arg: 2{{.*}} line: [[@LINE+3]],{{.*}} type: ![[LET_MYFLOAT:[0-9]+]]
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
class CGImageRef {}
|
||||
class UIImage {
|
||||
@@ -14,12 +13,12 @@ class CIFilter {
|
||||
}
|
||||
|
||||
class MyClass {
|
||||
// CHECK: define hidden {{.*}} %T7iuo_arg7UIImageC* @"$s7iuo_arg7MyClassC11filterImageyAA7UIImageCAFSg_SbtF"
|
||||
// CHECK: define hidden {{.*}} ptr @"$s7iuo_arg7MyClassC11filterImageyAA7UIImageCAFSg_SbtF"
|
||||
func filterImage(_ image: UIImage!, _ doSomething:Bool) -> UIImage
|
||||
{
|
||||
// Test that image is in an alloca, but not an indirect location.
|
||||
// CHECK: call void @llvm.dbg.declare(metadata {{(i32|i64)}}* %[[ALLOCA:.*]], metadata ![[IMAGE:.*]], metadata !DIExpression())
|
||||
// CHECK: store {{(i32|i64)}} %0, {{(i32|i64)}}* %[[ALLOCA]], align
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[ALLOCA:.*]], metadata ![[IMAGE:.*]], metadata !DIExpression())
|
||||
// CHECK: store {{(i32|i64)}} %0, ptr %[[ALLOCA]], align
|
||||
// CHECK: ![[IMAGE]] = !DILocalVariable(name: "image", arg: 1
|
||||
// CHECK-NOT: flags:
|
||||
// CHECK-SAME: line: [[@LINE-7]]
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
class DeepThought {
|
||||
func query() -> Int64 { return 42 }
|
||||
}
|
||||
|
||||
func foo() -> Int64 {
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %T3let11DeepThoughtC** {{.*}}, metadata ![[A:.*]], metadata !DIExpression())
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr {{.*}}, metadata ![[A:.*]], metadata !DIExpression())
|
||||
// CHECK-DAG: !DILocalVariable(name: "machine",{{.*}}line: [[@LINE+1]], type: !{{[0-9]+}})
|
||||
let machine = DeepThought()
|
||||
// CHECK-DAG: !DILocalVariable(name: "a", {{.*}}line: [[@LINE+1]],
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
// TODO: check why this is failing on linux
|
||||
// REQUIRES: OS=macosx
|
||||
@@ -21,15 +20,14 @@ func main() {
|
||||
// CHECK: call {{.*}}void @"$s4main8markUsedyyxlF"
|
||||
// CHECK: br label
|
||||
// CHECK: {{[0-9]+}}:
|
||||
// CHECK: call %Ts16IndexingIteratorVySaySiGG* @"$ss16IndexingIteratorVySaySiGGWOh"(%Ts16IndexingIteratorVySaySiGG* %{{.*}}), !dbg ![[LOOPHEADER_LOC:.*]]
|
||||
// CHECK: call ptr @"$ss16IndexingIteratorVySaySiGGWOh"(ptr %{{.*}}), !dbg ![[LOOPHEADER_LOC:.*]]
|
||||
// CHECK: call {{.*}}void @"$s4main8markUsedyyxlF"
|
||||
// The cleanups should share the line number with the ret stmt.
|
||||
// CHECK: call %TSa* @"$sSaySiGWOh"(%TSa* %{{.*}}), !dbg ![[CLEANUPS:.*]]
|
||||
// CHECK-NEXT: !dbg ![[CLEANUPS]]
|
||||
// CHECK: call ptr @"$sSaySiGWOh"(ptr %{{.*}}), !dbg ![[CLEANUPS:.*]]
|
||||
// CHECK-NEXT: llvm.lifetime.end
|
||||
// CHECK-SAME: !dbg ![[CLEANUPS]]
|
||||
// CHECK-NEXT: load
|
||||
// CHECK-NEXT: swift_release
|
||||
// CHECK-NEXT: bitcast
|
||||
// CHECK-NEXT: llvm.lifetime.end
|
||||
// CHECK-NEXT: ret void, !dbg ![[CLEANUPS]]
|
||||
// CHECK: ![[CLEANUPS]] = !DILocation(line: [[@LINE+1]], column: 1,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// RUN: %swiftc_driver %use_no_opaque_pointers %s -g -debug-info-format=codeview -emit-ir -o - | %FileCheck %s
|
||||
// RUN: %swiftc_driver %s -g -debug-info-format=codeview -emit-ir -o - | %FileCheck %s
|
||||
// REQUIRES: optimized_stdlib
|
||||
|
||||
func markUsed<T>(_ t: T) {}
|
||||
@@ -49,12 +49,12 @@ func foo() {
|
||||
// NOTE: The point of this test is to trigger IRGenSIL::emitShadowCopy()
|
||||
// and IRGenSIL::emitShadowCopyIfNeeded(). It may be worthwhile to
|
||||
// simplify this testcase.
|
||||
// CHECK: store float %0, float* %myArg.debug, {{.*}}, !dbg ![[PROLOGUE:[0-9]+]]
|
||||
// CHECK: store float {{.*}}, float* %self.debug.myVal1._value, {{.*}}, !dbg ![[PROLOGUE]]
|
||||
// CHECK: store float %0, ptr %myArg.debug, {{.*}}, !dbg ![[PROLOGUE:[0-9]+]]
|
||||
// CHECK: store float {{.*}}, ptr %self.debug.myVal1._value, {{.*}}, !dbg ![[PROLOGUE]]
|
||||
|
||||
// func myLoop() {
|
||||
// CHECK: define {{.*}} @"$s4main6myLoopyyF"
|
||||
// CHECK: call void @llvm.dbg.declare(metadata i64* %index.debug, {{.*}}), !dbg ![[FORLOOP:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %index.debug, {{.*}}), !dbg ![[FORLOOP:[0-9]+]]
|
||||
// CHECK: phi i64 [ %{{.[0-9]+}}, %{{.[0-9]+}} ], !dbg ![[FORLOOP]]
|
||||
// CHECK: call {{.*}} @"$s4main8markUsedyyxlF"{{.*}}, !dbg ![[FORBODY:[0-9]+]]
|
||||
// CHECK: ret void
|
||||
@@ -70,7 +70,7 @@ func foo() {
|
||||
// func foo()
|
||||
// CHECK: define {{.*}} @"$s4main3fooyyF"
|
||||
// CHECK: %[[MYARRAY:.*]] = alloca
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %TSa* %[[MYARRAY]],
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[MYARRAY]],
|
||||
// CHECK-SAME: !dbg ![[ARRAY:[0-9]+]]
|
||||
// CHECK: call swiftcc { {{.*}} } @"${{.*}}_allocateUninitializedArray{{.*}}"
|
||||
// CHECK-SAME: !dbg ![[ARRAY_ALLOC:[0-9]+]]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -parse-as-library -g -emit-ir -o - %s | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -parse-as-library -g -c %s -o %t/out.o
|
||||
// RUN: %target-swift-frontend -parse-as-library -g -emit-ir -o - %s | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -parse-as-library -g -c %s -o %t/out.o
|
||||
// RUN: %llvm-dwarfdump --show-children %t/out.o | %FileCheck -check-prefix=DWARF %s
|
||||
|
||||
// This test checks that:
|
||||
@@ -38,17 +38,17 @@ public var falseValue: Bool { false }
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo17copyableValueTestyyF"()
|
||||
//
|
||||
// In contrast, we should have a dbg.declare for m since we aren't
|
||||
// CHECK: call void @llvm.dbg.declare(metadata {{.*}}** %m.debug, metadata ![[M_COPYABLE_VALUE_TEST:[0-9]*]],
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %m.debug, metadata ![[M_COPYABLE_VALUE_TEST:[0-9]*]],
|
||||
//
|
||||
// We should have a llvm.dbg.addr for k since we moved it.
|
||||
// CHECK: call void @llvm.dbg.addr(metadata {{.*}}** %k.debug, metadata ![[K_COPYABLE_VALUE_METADATA:[0-9]*]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %k.debug, metadata ![[K_COPYABLE_VALUE_METADATA:[0-9]*]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br
|
||||
//
|
||||
// Our undef should be an llvm.dbg.value. Counter-intuitively this works for
|
||||
// both llvm.dbg.addr /and/ llvm.dbg.value. Importantly though its metadata
|
||||
// should be for k since that is the variable that we are telling the debugger
|
||||
// is no longer defined.
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC* undef, metadata ![[K_COPYABLE_VALUE_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_VALUE_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NOT: br label
|
||||
//
|
||||
// CHECK: ret void
|
||||
@@ -84,20 +84,20 @@ public func copyableValueTest() {
|
||||
m.doSomething()
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo15copyableArgTestyyAA5KlassCnF"(%T21move_function_dbginfo5KlassC* %0)
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo15copyableArgTestyyAA5KlassCnF"(ptr %0)
|
||||
//
|
||||
// In contrast, we should have a dbg.declare for m since we aren't
|
||||
// CHECK: call void @llvm.dbg.declare(metadata {{.*}}** %m.debug, metadata ![[M_COPYABLE_VALUE_TEST:[0-9]*]],
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %m.debug, metadata ![[M_COPYABLE_VALUE_TEST:[0-9]*]],
|
||||
//
|
||||
// We should have a llvm.dbg.addr for k since we moved it.
|
||||
// CHECK: call void @llvm.dbg.addr(metadata {{.*}}** %k.debug, metadata ![[K_COPYABLE_VALUE_METADATA:[0-9]*]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %k.debug, metadata ![[K_COPYABLE_VALUE_METADATA:[0-9]*]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br
|
||||
//
|
||||
// Our undef should be an llvm.dbg.value. Counter-intuitively this works for
|
||||
// both llvm.dbg.addr /and/ llvm.dbg.value. Importantly though its metadata
|
||||
// should be for k since that is the variable that we are telling the debugger
|
||||
// is no longer defined.
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC* undef, metadata ![[K_COPYABLE_VALUE_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_VALUE_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NOT: br label
|
||||
//
|
||||
// CHECK: ret void
|
||||
@@ -131,12 +131,12 @@ public func copyableArgTest(_ k: __owned Klass) {
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo15copyableVarTestyyF"()
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
|
||||
// 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]*]]
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %m.debug,
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_COPYABLE_VAR_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC** undef, metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// TODO: Should this be a deref like the original?
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** [[VAR]], metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
@@ -176,12 +176,12 @@ public func copyableVarTest() {
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo18copyableVarArgTestyyAA5KlassCzF"(
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC*** [[VAR:%.*]], metadata ![[K_COPYABLE_VAR_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %m.debug,
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_COPYABLE_VAR_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC** undef, metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// TODO: Should this be a deref like the original?
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC*** [[VAR]], metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
@@ -218,10 +218,10 @@ public func copyableVarArgTest(_ k: inout Klass) {
|
||||
k.doSomething()
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo20addressOnlyValueTestyyxAA1PRzlF"(%swift.opaque* noalias nocapture %0, %swift.type* %T, i8** %T.P)
|
||||
// CHECK: @llvm.dbg.addr(metadata %swift.opaque** %k.debug, metadata ![[K_ADDR_LET_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo20addressOnlyValueTestyyxAA1PRzlF"(ptr noalias nocapture %0, ptr %T, ptr %T.P)
|
||||
// CHECK: @llvm.dbg.addr(metadata ptr %{{.*}}, metadata ![[K_ADDR_LET_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDR_LET_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: @llvm.dbg.value(metadata ptr undef, metadata ![[K_ADDR_LET_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
//
|
||||
@@ -267,11 +267,11 @@ public func addressOnlyValueTest<T : P>(_ x: T) {
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo23addressOnlyValueArgTestyyxnAA1PRzlF"(
|
||||
// CHECK: @llvm.dbg.declare(metadata %swift.type** %T1,
|
||||
// CHECK: @llvm.dbg.declare(metadata i8** %m.debug,
|
||||
// CHECK: @llvm.dbg.addr(metadata %swift.opaque** %k.debug, metadata ![[K_ADDR_LET_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: @llvm.dbg.declare(metadata ptr %T1,
|
||||
// CHECK: @llvm.dbg.declare(metadata ptr %m.debug,
|
||||
// CHECK: @llvm.dbg.addr(metadata ptr %k.debug, metadata ![[K_ADDR_LET_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDR_LET_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: @llvm.dbg.value(metadata ptr undef, metadata ![[K_ADDR_LET_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
//
|
||||
@@ -308,11 +308,11 @@ public func addressOnlyValueArgTest<T : P>(_ k: __owned T) {
|
||||
m.doSomething()
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo18addressOnlyVarTestyyxAA1PRzlF"(%swift.opaque* noalias nocapture %0, %swift.type* %T, i8** %T.P)
|
||||
// CHECK: @llvm.dbg.addr(metadata %swift.opaque** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo18addressOnlyVarTestyyxAA1PRzlF"(ptr noalias nocapture %0, ptr %T, ptr %T.P)
|
||||
// CHECK: @llvm.dbg.addr(metadata ptr %{{.*}}, metadata ![[K_ADDRONLY_VAR_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: @llvm.dbg.addr(metadata %swift.opaque** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: @llvm.dbg.value(metadata ptr undef, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: @llvm.dbg.addr(metadata ptr %{{.*}}, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
@@ -347,7 +347,7 @@ public func addressOnlyValueArgTest<T : P>(_ k: __owned T) {
|
||||
// DWARF-NEXT: DW_AT_decl_line (
|
||||
// DWARF-NEXT: DW_AT_type (
|
||||
public func addressOnlyVarTest<T : P>(_ x: T) {
|
||||
var k = x
|
||||
var k = x // << this
|
||||
k.doSomething()
|
||||
let m = consume k
|
||||
m.doSomething()
|
||||
@@ -356,10 +356,10 @@ public func addressOnlyVarTest<T : P>(_ x: T) {
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo21addressOnlyVarArgTestyyxz_xtAA1PRzlF"(
|
||||
// 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]*]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: @llvm.dbg.addr(metadata %swift.opaque** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: @llvm.dbg.value(metadata ptr undef, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: @llvm.dbg.addr(metadata ptr %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
@@ -405,14 +405,14 @@ public func addressOnlyVarArgTest<T : P>(_ k: inout T, _ x: T) {
|
||||
///////////////////////
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo23copyableValueCCFlowTestyyF"(
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k.debug, metadata ![[K_COPYABLE_LET_CCFLOW_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %k.debug, metadata ![[K_COPYABLE_LET_CCFLOW_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK-NEXT: br label %[[NEXT_BB:[a-z\.0-9]+]],
|
||||
//
|
||||
// CHECK: [[NEXT_BB]]:
|
||||
// CHECK: br i1 {{%[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC* undef, metadata ![[K_COPYABLE_LET_CCFLOW_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_LET_CCFLOW_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
public func copyableValueCCFlowTest() {
|
||||
let k = Klass()
|
||||
k.doSomething()
|
||||
@@ -423,14 +423,14 @@ public func copyableValueCCFlowTest() {
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo26copyableValueArgCCFlowTestyyAA5KlassCnF"(
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k.debug, metadata ![[K_COPYABLE_LET_CCFLOW_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %k.debug, metadata ![[K_COPYABLE_LET_CCFLOW_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK-NEXT: br label %[[NEXT_BB:[a-z\.0-9]+]],
|
||||
//
|
||||
// CHECK: [[NEXT_BB]]:
|
||||
// CHECK: br i1 {{%[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC* undef, metadata ![[K_COPYABLE_LET_CCFLOW_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_LET_CCFLOW_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
public func copyableValueArgCCFlowTest(_ k: __owned Klass) {
|
||||
k.doSomething()
|
||||
if trueValue {
|
||||
@@ -440,15 +440,15 @@ public func copyableValueArgCCFlowTest(_ k: __owned Klass) {
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo037copyableVarTestCCFlowReinitOutOfBlockF0yyF"(
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
|
||||
// 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]*]]
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %m.debug,
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT]]:
|
||||
// CHECK: br i1 %{{[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC** undef, metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: br label %[[CONT_BB:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[RHS]]:
|
||||
@@ -456,7 +456,7 @@ public func copyableValueArgCCFlowTest(_ k: __owned Klass) {
|
||||
//
|
||||
// CHECK: [[CONT_BB]]:
|
||||
// TODO: Should this be a deref like the original?
|
||||
// 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]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
@@ -472,22 +472,22 @@ public func copyableVarTestCCFlowReinitOutOfBlockTest() {
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo040copyableVarArgTestCCFlowReinitOutOfBlockG0yyAA5KlassCzF"(
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC*** [[VAR:%.*]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %m.debug,
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT]]:
|
||||
// CHECK: br i1 %{{[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC** undef, metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: br label %[[CONT_BB:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[RHS]]:
|
||||
// CHECK: br label %[[CONT_BB]],
|
||||
//
|
||||
// CHECK: [[CONT_BB]]:
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC*** [[VAR]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
@@ -503,17 +503,17 @@ public func copyableVarArgTestCCFlowReinitOutOfBlockTest(_ k: inout Klass) {
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo034copyableVarTestCCFlowReinitInBlockF0yyF"(
|
||||
// CHECK: entry:
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
|
||||
// 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]*]]
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %m.debug,
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT]]:
|
||||
// CHECK: br i1 %{{[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// 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]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// TODO: Should this be a deref like the original?
|
||||
// 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]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT_2:[a-z\.0-9]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT_2]]:
|
||||
@@ -538,17 +538,17 @@ public func copyableVarTestCCFlowReinitInBlockTest() {
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo037copyableVarArgTestCCFlowReinitInBlockG0yyAA5KlassCzF"(
|
||||
// CHECK: entry:
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC*** [[VAR:%.*]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %m.debug,
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT]]:
|
||||
// CHECK: br i1 %{{[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC** undef, metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// TODO: Should this be a deref like the original?
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC*** [[VAR]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_COPYABLE_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT_2:[a-z\.0-9]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT_2]]:
|
||||
@@ -572,14 +572,14 @@ public func copyableVarArgTestCCFlowReinitInBlockTest(_ k: inout Klass) {
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo040addressOnlyVarTestCCFlowReinitOutOfBlockG0yyxmAA1PRzlF"(
|
||||
// CHECK: entry:
|
||||
// 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]*]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT]]:
|
||||
// CHECK: br i1 %{{[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo1PP* undef, metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: br label %[[CONT_BB:[a-z\.0-9]+]],
|
||||
//
|
||||
// CHECK: [[RHS]]:
|
||||
@@ -587,7 +587,7 @@ public func copyableVarArgTestCCFlowReinitInBlockTest(_ k: inout Klass) {
|
||||
//
|
||||
// CHECK: [[CONT_BB]]:
|
||||
// TODO: Should this be a deref like the original?
|
||||
// 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]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
@@ -604,14 +604,14 @@ public func addressOnlyVarTestCCFlowReinitOutOfBlockTest<T : P>(_ x: T.Type) {
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo043addressOnlyVarArgTestCCFlowReinitOutOfBlockH0yyAA1P_pz_xmtAaCRzlF"(
|
||||
// CHECK: entry:
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP** [[VAR:%.*]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT]]:
|
||||
// CHECK: br i1 %{{[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo1PP* undef, metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: br label %[[CONT_BB:[a-z\.0-9]+]],
|
||||
//
|
||||
// CHECK: [[RHS]]:
|
||||
@@ -619,7 +619,7 @@ public func addressOnlyVarTestCCFlowReinitOutOfBlockTest<T : P>(_ x: T.Type) {
|
||||
//
|
||||
// CHECK: [[CONT_BB]]:
|
||||
// TODO: Should this be a deref like the original?
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP** [[VAR]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_OUT_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br
|
||||
// CHECK: ret void
|
||||
// CHECK-NEXT: }
|
||||
@@ -635,16 +635,16 @@ public func addressOnlyVarArgTestCCFlowReinitOutOfBlockTest<T : P>(_ k: inout (a
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo037addressOnlyVarTestCCFlowReinitInBlockG0yyxmAA1PRzlF"(
|
||||
// CHECK: entry:
|
||||
// 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]*]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT]]:
|
||||
// CHECK: br i1 %{{[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// 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]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// TODO: Should this be a deref like the original?
|
||||
// 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]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT_2:[a-z\.0-9]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT_2]]:
|
||||
@@ -669,16 +669,16 @@ public func addressOnlyVarTestCCFlowReinitInBlockTest<T : P>(_ x: T.Type) {
|
||||
|
||||
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo040addressOnlyVarArgTestCCFlowReinitInBlockH0yyAA1P_pz_xmtAaCRzlF"(
|
||||
// CHECK: entry:
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP** [[VAR:%.*]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR:%.*]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT:[a-z0-9\.]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT]]:
|
||||
// CHECK: br i1 %{{[0-9]+}}, label %[[LHS:[0-9]+]], label %[[RHS:[0-9]+]],
|
||||
//
|
||||
// CHECK: [[LHS]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo1PP* undef, metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// TODO: Should this be a deref like the original?
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo1PP** [[VAR]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr [[VAR]], metadata ![[K_ADDRESSONLY_VAR_CCFLOW_REINIT_IN_BLOCK_METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-NEXT: br label %[[BB_NEXT_2:[a-z\.0-9]+]],
|
||||
//
|
||||
// CHECK: [[BB_NEXT_2]]:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: %target-swift-frontend -parse-as-library -disable-availability-checking -g -emit-sil -o - %s | %FileCheck -check-prefix=SIL %s
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -parse-as-library -disable-availability-checking -g -emit-ir -o - %s | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -parse-as-library -disable-availability-checking -g -emit-ir -o - %s | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -parse-as-library -disable-availability-checking -g -c %s -o %t/out.o
|
||||
|
||||
// This test checks that:
|
||||
@@ -43,22 +43,22 @@ public func forceSplit5() async {}
|
||||
// Tests //
|
||||
///////////
|
||||
|
||||
// CHECK-LABEL: define swifttailcc void @"$s27move_function_dbginfo_async13letSimpleTestyyxnYalF"(%swift.context* swiftasync %0, %swift.opaque* noalias %1, %swift.type* %T)
|
||||
// CHECK-LABEL: define swifttailcc void @"$s27move_function_dbginfo_async13letSimpleTestyyxnYalF"(ptr swiftasync %0, ptr noalias %1, ptr %T)
|
||||
// CHECK: entry:
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %swift.context* %{{[0-9]+}}, metadata ![[SIMPLE_TEST_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[SIMPLE_TEST_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: musttail call swifttailcc void
|
||||
// CHECK-NEXT: ret void
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13letSimpleTestyyxnYalFTQ0_"(i8* swiftasync %0)
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13letSimpleTestyyxnYalFTQ0_"(ptr swiftasync %0)
|
||||
// CHECK: entryresume.0:
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[SIMPLE_TEST_METADATA_2:[0-9]+]], metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)),
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[SIMPLE_TEST_METADATA_2:[0-9]+]], metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)),
|
||||
// CHECK: musttail call swifttailcc void
|
||||
// CHECK-NEXT: ret void
|
||||
//
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13letSimpleTestyyxnYalFTY1_"(i8* swiftasync %0)
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13letSimpleTestyyxnYalFTY1_"(ptr swiftasync %0)
|
||||
// CHECK: entryresume.1:
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[SIMPLE_TEST_METADATA_3:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[SIMPLE_TEST_METADATA_3]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[SIMPLE_TEST_METADATA_3:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[SIMPLE_TEST_METADATA_3]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void
|
||||
// CHECK-NEXT: ret void
|
||||
|
||||
@@ -88,35 +88,35 @@ public func letSimpleTest<T>(_ msg: __owned T) async {
|
||||
use(consume msg)
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalF"(%swift.context* swiftasync %0, %swift.opaque* %1, %swift.opaque* noalias %2, %swift.type* %T)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %swift.context* %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref))
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async10forceSplityyYaF"(%swift.context* swiftasync %{{[0-9]+}})
|
||||
// CHECK-LABEL: define swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalF"(ptr swiftasync %0, ptr %1, ptr noalias %2, ptr %T)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref))
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async10forceSplityyYaF"(ptr swiftasync %{{[0-9]+}})
|
||||
// CHECK-NEXT: ret void
|
||||
// CHECK-NEXT: }
|
||||
//
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTQ0_"(i8* swiftasync %0)
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTQ0_"(ptr swiftasync %0)
|
||||
// CHECK: entryresume.0:
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref))
|
||||
// CHECK: musttail call swifttailcc void @swift_task_switch(%swift.context* swiftasync %{{[0-9]+}}, i8* bitcast (void (i8*)* @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTY1_" to i8*), i64 0, i64 0)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref))
|
||||
// CHECK: musttail call swifttailcc void @swift_task_switch(ptr swiftasync %{{[0-9]+}}, ptr @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTY1_", i64 0, i64 0)
|
||||
// CHECK-NEXT: ret void
|
||||
// CHECK-NEXT: }
|
||||
//
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTY1_"(i8* swiftasync %0)
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTY1_"(ptr swiftasync %0)
|
||||
// CHECK: entryresume.1:
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async10forceSplityyYaF"(%swift.context* swiftasync
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async10forceSplityyYaF"(ptr swiftasync
|
||||
// CHECK-NEXT: ret void
|
||||
// CHECK-NEXT: }
|
||||
//
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTQ2_"(i8* swiftasync %0)
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTQ2_"(ptr swiftasync %0)
|
||||
// CHECK: entryresume.2:
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTY3_"(i8* swiftasync %0)
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async13varSimpleTestyyxz_xtYalFTY3_"(ptr swiftasync %0)
|
||||
// CHECK: entryresume.3:
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async10forceSplityyYaF"(
|
||||
// CHECK-NEXT: ret void
|
||||
// CHECK-NEXT: }
|
||||
@@ -201,31 +201,31 @@ public func varSimpleTest<T>(_ msg: inout T, _ msg2: T) async {
|
||||
// We don't have an argument here, so we shouldn't have an llvm.dbg.addr in the
|
||||
// initial function.
|
||||
//
|
||||
// CHECK-LABEL: define swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaF"(%swift.context* swiftasync %0)
|
||||
// CHECK-LABEL: define swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaF"(ptr swiftasync %0)
|
||||
// CHECK-NOT: llvm.dbg.addr
|
||||
//
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTY0_"(i8* swiftasync %0)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8))
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTY0_"(ptr swiftasync %0)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8))
|
||||
//
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTQ1_"(i8* swiftasync %0)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8))
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTQ1_"(ptr swiftasync %0)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8))
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTY2_"(i8* swiftasync %0)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T27move_function_dbginfo_async5KlassC** undef, metadata ![[METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTY2_"(ptr swiftasync %0)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTQ3_"(i8* swiftasync %0)
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTQ3_"(ptr swiftasync %0)
|
||||
// We should only see an llvm.dbg.value here.
|
||||
// CHECK-NOT: llvm.dbg.addr
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T27move_function_dbginfo_async5KlassC** undef,
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef,
|
||||
// CHECK-NOT: llvm.dbg.addr
|
||||
//
|
||||
// We should see first a llvm.dbg.value to undef the value until we reinit. Then
|
||||
// we should see a llvm.dbg.addr to reinit.
|
||||
//
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTY4_"(i8* swiftasync %0)
|
||||
// CHECK: call void @llvm.dbg.value(metadata %T27move_function_dbginfo_async5KlassC** undef, metadata ![[METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTY4_"(ptr swiftasync %0)
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8)), !dbg ![[ADDR_LOC]]
|
||||
|
||||
// We are not an argument, so no problem here.
|
||||
//
|
||||
@@ -312,20 +312,20 @@ public func varSimpleTestVar() async {
|
||||
// CHECK-NEXT: }
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20letArgCCFlowTrueTestyyxnYalFTQ0_"(
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)),
|
||||
// CHECK: musttail call swifttailcc void @swift_task_switch(%swift.context* swiftasync %{{[0-9]+}}, i8* bitcast (void (i8*)* @"$s27move_function_dbginfo_async20letArgCCFlowTrueTestyyxnYalFTY1_" to i8*), i64 0, i64 0)
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)),
|
||||
// CHECK: musttail call swifttailcc void @swift_task_switch(ptr swiftasync %{{[0-9]+}}, ptr @"$s27move_function_dbginfo_async20letArgCCFlowTrueTestyyxnYalFTY1_", i64 0, i64 0)
|
||||
// CHECK-NEXT: ret void
|
||||
// CHECK-NEXT: }
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20letArgCCFlowTrueTestyyxnYalFTY1_"(
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA:[0-9]*]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA:[0-9]*]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK-NEXT: br label %[[BLOCK:[a-zA-Z\.0-9]*]],
|
||||
//
|
||||
// CHECK: [[BLOCK]]:
|
||||
// CHECK: br i1 %{{[0-9]}}, label %[[LHS_BLOCK:[a-zA-Z\.0-9]*]], label %[[RHS_BLOCK:[a-zA-Z\.0-9]*]],
|
||||
//
|
||||
// CHECK: [[LHS_BLOCK]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async11forceSplit2yyYaF"(
|
||||
// CHECK-NEXT: ret void
|
||||
//
|
||||
@@ -341,22 +341,22 @@ public func varSimpleTestVar() async {
|
||||
// _move.
|
||||
//
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20letArgCCFlowTrueTestyyxnYalFTQ2_"(
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA:[0-9]*]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA:[0-9]*]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async11forceSplit4yyYaF"(
|
||||
// CHECK-NEXT: ret void
|
||||
//
|
||||
// This is the false branch.
|
||||
//
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20letArgCCFlowTrueTestyyxnYalFTQ3_"(
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref))
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8, DW_OP_deref))
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async11forceSplit4yyYaF"(
|
||||
// CHECK-NEXT: ret void,
|
||||
// CHECK-NEXT: }
|
||||
//
|
||||
// This is the continuation block
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20letArgCCFlowTrueTestyyxnYalFTQ4_"(
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata !{{.*}}, metadata !DIExpression(DW_OP_deref)),
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata !{{.*}}, metadata !DIExpression(DW_OP_deref)),
|
||||
|
||||
// RUN: %llvm-dwarfdump -c --name='$s3out20letArgCCFlowTrueTestyyxnYalF' %t/out.o | %FileCheck -check-prefix=DWARF17 %s
|
||||
// DWARF17: DW_TAG_subprogram
|
||||
@@ -451,18 +451,18 @@ public func letArgCCFlowTrueTest<T>(_ msg: __owned T) async {
|
||||
// SIL: } // end sil function '$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlF'
|
||||
|
||||
// CHECK-LABEL: define swifttailcc void @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlF"(
|
||||
// CHECK: call void @llvm.dbg.addr(metadata %swift.context* %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)),
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)),
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async11forceSplit1yyYaF"(
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTQ0_"(
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)),
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)),
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY1_"(
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: br i1 %{{[0-9]+}}, label %[[LHS_BLOCK:[a-zA-Z0-9]+]], label %[[RHS_BLOCK:[a-zA-Z0-9]+]]
|
||||
|
||||
// CHECK: [[LHS_BLOCK]]:
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async11forceSplit2yyYaF"(
|
||||
|
||||
// CHECK: [[RHS_BLOCK]]:
|
||||
@@ -471,34 +471,34 @@ public func letArgCCFlowTrueTest<T>(_ msg: __owned T) async {
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTQ2_"(
|
||||
// CHECK-NOT: @llvm.dbg.addr
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref)),
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref)),
|
||||
// CHECK-NOT: @llvm.dbg.addr
|
||||
// CHECK: musttail call swifttailcc void @swift_task_switch(%swift.context* swiftasync %{{[0-9]+}}, i8* bitcast (void (i8*)* @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY3_" to i8*), i64 0, i64 0)
|
||||
// CHECK: musttail call swifttailcc void @swift_task_switch(ptr swiftasync %{{[0-9]+}}, ptr @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY3_", i64 0, i64 0)
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY3_"(
|
||||
// CHECK-NOT: @llvm.dbg.addr
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async11forceSplit4yyYaF"(
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTQ4_"(
|
||||
// CHECK-NOT: @llvm.dbg.value
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @swift_task_switch(%swift.context* swiftasync %{{[0-9]+}}, i8* bitcast (void (i8*)* @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY5_" to i8*),
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @swift_task_switch(ptr swiftasync %{{[0-9]+}}, ptr @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY5_",
|
||||
|
||||
// CHECK: define internal swifttailcc void @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY5_"(
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata ![[METADATA]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]+]]
|
||||
// CHECK: call void @llvm.dbg.value(metadata ptr undef, metadata ![[METADATA]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata ![[METADATA]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)), !dbg ![[ADDR_LOC]]
|
||||
// CHECK: musttail call swifttailcc void @"$s27move_function_dbginfo_async11forceSplit4yyYaF"(
|
||||
|
||||
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20varArgCCFlowTrueTestyyxzYaAA1PRzlFTQ6_"(
|
||||
// CHECK-NOT: @llvm.dbg.value(
|
||||
// CHECK: call void @llvm.dbg.addr(metadata i8* %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)),
|
||||
// CHECK: call void @llvm.dbg.addr(metadata ptr %{{[0-9]+}}, metadata !{{[0-9]+}}, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 48, DW_OP_deref)),
|
||||
// CHECK-NOT: @llvm.dbg.value(
|
||||
// CHECK: musttail call swifttailcc void %{{[0-9]+}}(%swift.context* swiftasync
|
||||
// CHECK: musttail call swifttailcc void %{{[0-9]+}}(ptr swiftasync
|
||||
// CHECK-NEXT: ret void,
|
||||
// CHECK-NEXT: }
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o %t
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o %t
|
||||
// RUN: cat %t | %FileCheck %s --check-prefix=CHECK1
|
||||
// RUN: cat %t | %FileCheck %s --check-prefix=CHECK2
|
||||
// RUN: cat %t | %FileCheck %s --check-prefix=CHECK3
|
||||
@@ -29,7 +28,7 @@ struct AStruct {}
|
||||
// CHECK2: define{{.*}}app
|
||||
public func app() {
|
||||
// No members? No storage!
|
||||
// CHECK2: call void @llvm.dbg.value(metadata {{.*}}* undef,
|
||||
// CHECK2: call void @llvm.dbg.value(metadata ptr undef,
|
||||
// CHECK2-SAME: metadata ![[AT:.*]], metadata
|
||||
// CHECK2: ![[AT]] = !DILocalVariable(name: "at",{{.*}}line: [[@LINE+1]]
|
||||
var at = AStruct()
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
public protocol P {
|
||||
var v : Int32 { get };
|
||||
@@ -9,8 +8,8 @@ public extension P {
|
||||
// CHECK: define {{.*}}swiftcc i32 @"$s4main1PPAAE1fs5Int32VyF"
|
||||
public func f() -> Int32 {
|
||||
// CHECK-NEXT: entry:
|
||||
// CHECK-NEXT: %[[ALLOCA:.*]] = alloca %swift.type*,
|
||||
// CHECK-NEXT: @llvm.dbg.declare(metadata %swift.type** %[[ALLOCA]],
|
||||
// CHECK-NEXT: %[[ALLOCA:.*]] = alloca ptr,
|
||||
// CHECK-NEXT: @llvm.dbg.declare(metadata ptr %[[ALLOCA]],
|
||||
// CHECK-SAME: metadata ![[SELFMETA:.*]], metadata !DIExpression())
|
||||
return v
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
func markUsed<T>(_ t: T) {}
|
||||
func use<T>(_ t: inout T) {}
|
||||
@@ -9,10 +8,10 @@ public protocol IGiveOutInts {
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}@"$s11protocolarg16printSomeNumbersyyAA12IGiveOutInts_pF"
|
||||
// CHECK: @llvm.dbg.declare(metadata %T11protocolarg12IGiveOutIntsP** %
|
||||
// CHECK: @llvm.dbg.declare(metadata ptr %
|
||||
// CHECK-SAME: metadata ![[ARG:[0-9]+]],
|
||||
// CHECK-SAME: metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK: @llvm.dbg.declare(metadata %T11protocolarg12IGiveOutIntsP* %
|
||||
// CHECK: @llvm.dbg.declare(metadata ptr %
|
||||
// CHECK-SAME: metadata ![[VAR:.*]], metadata !DIExpression())
|
||||
|
||||
public func printSomeNumbers(_ gen: IGiveOutInts) {
|
||||
|
||||
@@ -5,8 +5,7 @@
|
||||
// RUN: -emit-module-path=%t/resilient_struct.swiftmodule \
|
||||
// RUN: -module-name=resilient_struct %S/../Inputs/resilient_struct.swift
|
||||
//
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -g -I %t -emit-ir %s -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -g -I %t -emit-ir %s -o -
|
||||
// RUN: %target-swift-frontend -g -I %t -emit-ir %s -o - | %FileCheck %s
|
||||
|
||||
// REQUIRES: CPU=arm64 || CPU=x86_64
|
||||
|
||||
@@ -23,6 +22,6 @@ bb0:
|
||||
return %1 : $()
|
||||
}
|
||||
// CHECK: define{{.*}} swiftcc void @test_debug_value_resilient()
|
||||
// CHECK: [[ASSERTIONSDBG:%.*]] = alloca i8*
|
||||
// CHECK: [[ASSERTIONSDBG:%.*]] = alloca ptr
|
||||
// CHECK: [[ASSERTIONS:%.*]] = alloca i8, i64 %size
|
||||
// CHECK: store i8* [[ASSERTIONS]], i8** [[ASSERTIONSDBG]]
|
||||
// CHECK: store ptr [[ASSERTIONS]], ptr [[ASSERTIONSDBG]]
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -g -emit-ir -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -g -emit-ir -o -
|
||||
// RUN: %target-swift-frontend %s -g -emit-ir -o - | %FileCheck %s
|
||||
|
||||
class X {
|
||||
init (i : Int64) { x = i }
|
||||
@@ -9,20 +8,20 @@ class X {
|
||||
// CHECK: define {{.*}}ifelseexpr
|
||||
public func ifelseexpr() -> Int64 {
|
||||
var x = X(i:0)
|
||||
// CHECK: [[ALLOCA:%.*]] = alloca %T6return1XC*
|
||||
// CHECK: [[ALLOCA:%.*]] = alloca ptr
|
||||
// CHECK: [[TMP:%.*]] = call swiftcc %swift.metadata_response @"$s6return1XCMa"(
|
||||
// CHECK: [[META:%.*]] = extractvalue %swift.metadata_response [[TMP]], 0
|
||||
// CHECK: [[X:%.*]] = call {{.*}}%T6return1XC* @"$s6return1XC1iACs5Int64V_tcfC"(
|
||||
// CHECK-SAME: i64 0, %swift.type* swiftself [[META]])
|
||||
// CHECK: store %T6return1XC* [[X]], %T6return1XC** [[ALLOCA]]
|
||||
// CHECK: @swift_release to void (%T6return1XC*)*)(%T6return1XC* [[X]])
|
||||
// CHECK: [[X:%.*]] = call {{.*}}ptr @"$s6return1XC1iACs5Int64V_tcfC"(
|
||||
// CHECK-SAME: i64 0, ptr swiftself [[META]])
|
||||
// CHECK: store ptr [[X]], ptr [[ALLOCA]]
|
||||
// CHECK: @swift_release
|
||||
if true {
|
||||
x.x += 1
|
||||
} else {
|
||||
x.x -= 1
|
||||
}
|
||||
// CHECK: [[L:%.*]] = load %T6return1XC*, %T6return1XC** [[ALLOCA]]
|
||||
// CHECK: @swift_release to void (%T6return1XC*)*)(%T6return1XC* [[L]])
|
||||
// CHECK: [[L:%.*]] = load ptr, ptr [[ALLOCA]]
|
||||
// CHECK: @swift_release
|
||||
// CHECK-SAME: , !dbg ![[RELEASE:.*]]
|
||||
// The ret instruction should be in the same scope as the return expression.
|
||||
// CHECK: ret{{.*}}, !dbg ![[RELEASE]]
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
public struct stuffStruct {
|
||||
var a: Int64 = 6
|
||||
@@ -17,7 +16,7 @@ public func f() {
|
||||
// CHECK: define {{.*}} @"$s4self11stuffStructVACycfC"(
|
||||
// CHECK-NEXT: entry:
|
||||
// CHECK: %[[ALLOCA:.*]] = alloca %T4self11stuffStructV, align {{(4|8)}}
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %T4self11stuffStructV* %[[ALLOCA]],
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[ALLOCA]],
|
||||
// CHECK-SAME: metadata ![[SELF:.*]], metadata !DIExpression()), !dbg
|
||||
// CHECK: ![[STUFFSTRUCT:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "stuffStruct", scope:{{.*}}identifier
|
||||
// CHECK: ![[SELF]] = !DILocalVariable(name: "self", scope
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -Onone -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -Onone -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -Onone -emit-ir -g -o - \
|
||||
// RUN: -disable-debugger-shadow-copies | %FileCheck %s --check-prefix=NOCOPY
|
||||
// RUN: %target-swift-frontend %s -Onone -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -Onone -emit-ir -g -o - \
|
||||
// RUN: -disable-debugger-shadow-copies
|
||||
// RUN: -disable-debugger-shadow-copies | %FileCheck %s --check-prefix=NOCOPY
|
||||
class ClassA
|
||||
{
|
||||
var x : Int64
|
||||
@@ -22,15 +19,15 @@ class ClassB : ClassA
|
||||
{
|
||||
// CHECK: @"$s{{.*}}6ClassBCyACs5Int64Vcfc"
|
||||
// NOCOPY: @"$s{{.*}}6ClassBCyACs5Int64Vcfc"
|
||||
// CHECK: alloca {{.*}}ClassBC*
|
||||
// NOCOPY: alloca {{.*}}ClassBC*
|
||||
// CHECK: alloca ptr
|
||||
// NOCOPY: alloca ptr
|
||||
|
||||
// CHECK: alloca i64
|
||||
|
||||
// CHECK-NOT: alloca
|
||||
// NOCOPY-NOT: alloca
|
||||
// CHECK: ret {{.*}}ClassBC
|
||||
// NOCOPY: ret {{.*}}ClassBC
|
||||
// CHECK: ret ptr
|
||||
// NOCOPY: ret ptr
|
||||
super.init (input)
|
||||
}
|
||||
}
|
||||
@@ -45,7 +42,7 @@ class ClassC
|
||||
// NOCOPY: define {{.*}}@"$s13shadow_copies6ClassCCACycfc"
|
||||
init ()
|
||||
{
|
||||
// CHECK: alloca %T13shadow_copies6ClassCC*
|
||||
// CHECK: alloca ptr
|
||||
// CHECK-NOT: alloca
|
||||
// NOCOPY-NOT: alloca
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
func markUsed<T>(_ t: T) {}
|
||||
|
||||
@@ -7,13 +6,13 @@ func foo(_ x: inout Int64) {
|
||||
// Make sure the shadow copy is being made in the prologue or (at
|
||||
// line 0), but the code to load the value from the inout storage is
|
||||
// not.
|
||||
// CHECK: %[[X:.*]] = alloca %Ts5Int64V*, align {{(4|8)}}
|
||||
// CHECK: define hidden swiftcc void @"$s4main3fooyys5Int64VzF"
|
||||
// CHECK: %[[X:.*]] = alloca ptr, align {{(4|8)}}
|
||||
// CHECK-NEXT: call void @llvm.dbg.declare
|
||||
// CHECK-NEXT: %[[ZEROED:[0-9]+]] = bitcast %Ts5Int64V** %[[X]] to i8*{{$}}
|
||||
// CHECK-NEXT: call void @llvm.memset.{{.*}}(i8* align {{(4|8)}} %[[ZEROED]], i8 0
|
||||
// CHECK: store %Ts5Int64V* %0, %Ts5Int64V** %[[X]], align {{(4|8)}}
|
||||
// CHECK-NEXT: call void @llvm.memset.{{.*}}(ptr align {{(4|8)}} %[[X]], i8 0
|
||||
// CHECK: store ptr %0, ptr %[[X]], align {{(4|8)}}
|
||||
// CHECK-SAME: !dbg ![[LOC0:.*]]
|
||||
// CHECK-NEXT: getelementptr inbounds %Ts5Int64V, %Ts5Int64V* %0, i32 0, i32 0,
|
||||
// CHECK-NEXT: getelementptr inbounds %Ts5Int64V, ptr %0, i32 0, i32 0,
|
||||
// CHECK-SAME: !dbg ![[LOC0]]
|
||||
// CHECK: ![[LOC0]] = !DILocation(line: 0,
|
||||
// CHECK: !DILocation(line: [[@LINE+1]],
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// RUN: %target-sil-opt -sil-verify-all -sil-combine %s | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -g -O -emit-ir -primary-file %s | %FileCheck --check-prefix=CHECK-IR %s
|
||||
// RUN: %target-swift-frontend -g -O -emit-ir -primary-file %s
|
||||
// RUN: %target-swift-frontend -g -O -emit-ir -primary-file %s | %FileCheck --check-prefix=CHECK-IR %s
|
||||
|
||||
sil_stage canonical
|
||||
|
||||
@@ -18,7 +17,7 @@ bb0(%0 : $Builtin.RawPointer):
|
||||
%addr1 = index_addr %addr : $*UInt8, %offset1 : $Builtin.Word
|
||||
// CHECK: debug_value %[[ADDR]] : $*UInt8, let, name "hello"
|
||||
// CHECK-SAME: expr op_constu:3:op_plus:op_deref
|
||||
// CHECK-IR: call void @llvm.dbg.value(metadata i8* %0, metadata ![[DBG_VAR:[0-9]+]],
|
||||
// CHECK-IR: call void @llvm.dbg.value(metadata ptr %0, metadata ![[DBG_VAR:[0-9]+]],
|
||||
// CHECK-IR-SAME: !DIExpression(DW_OP_constu, 3, DW_OP_plus, DW_OP_deref)
|
||||
debug_value %addr1 : $*UInt8, let, name "hello", expr op_deref
|
||||
%addr2 = index_addr %addr1 : $*UInt8, %offset2 : $Builtin.Word
|
||||
|
||||
@@ -6,15 +6,13 @@
|
||||
// RUN: -emit-module-path=%t/resilient_struct.swiftmodule \
|
||||
// RUN: -module-name=resilient_struct %S/../Inputs/resilient_struct.swift
|
||||
//
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -g -I %t -emit-ir -enable-library-evolution %s \
|
||||
// RUN: -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -g -I %t -emit-ir -enable-library-evolution %s \
|
||||
// RUN: -o -
|
||||
// RUN: -o - | %FileCheck %s
|
||||
//
|
||||
import resilient_struct
|
||||
|
||||
// CHECK-LABEL: define{{.*}} swiftcc void @"$s17struct_resilience9takesSizeyy010resilient_A00D0VF"(%swift.opaque* noalias nocapture %0)
|
||||
// CHECK-LLDB-LABEL: define{{.*}} swiftcc void @"$s17struct_resilience9takesSizeyy010resilient_A00D0VF"(%T16resilient_struct4SizeV* noalias nocapture dereferenceable({{8|16}}) %0)
|
||||
// CHECK-LABEL: define{{.*}} swiftcc void @"$s17struct_resilience9takesSizeyy010resilient_A00D0VF"(ptr noalias nocapture %0)
|
||||
// CHECK-LLDB-LABEL: define{{.*}} swiftcc void @"$s17struct_resilience9takesSizeyy010resilient_A00D0VF"(ptr noalias nocapture dereferenceable({{8|16}}) %0)
|
||||
public func takesSize(_ s: Size) {}
|
||||
|
||||
|
||||
@@ -23,12 +21,12 @@ public func takesSize(_ s: Size) {}
|
||||
func f() {
|
||||
let s1 = Size(w: 1, h: 2)
|
||||
takesSize(s1)
|
||||
// CHECK: %[[ADDR:.*]] = alloca i8*
|
||||
// CHECK: call void @llvm.dbg.declare(metadata i8** %[[ADDR]],
|
||||
// CHECK: %[[ADDR:.*]] = alloca ptr
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[ADDR]],
|
||||
// CHECK-SAME: metadata ![[V1:[0-9]+]],
|
||||
// CHECK-SAME: metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK: %[[S1:.*]] = alloca i8,
|
||||
// CHECK: store i8* %[[S1]], i8** %[[ADDR]]
|
||||
// CHECK: store ptr %[[S1]], ptr %[[ADDR]]
|
||||
}
|
||||
f()
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
// Capture the pointer size from type Int
|
||||
// CHECK: %TSi = type <{ i[[PTRSIZE:[0-9]+]] }>
|
||||
@@ -13,7 +12,7 @@ func test(_ x : A) {
|
||||
}
|
||||
// CHECK: define hidden {{.*}}void @"$s7structs4test{{[_0-9a-zA-Z]*}}F"
|
||||
// CHECK: [[X_DBG:%.*]] = alloca
|
||||
// CHECK: call void @llvm.dbg.declare(metadata {{.*}}* [[X_DBG]], metadata [[X_MD:!.*]], metadata
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr [[X_DBG]], metadata [[X_MD:!.*]], metadata
|
||||
|
||||
// A class is represented by a pointer, so B's total size should be PTRSIZE.
|
||||
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "B",{{.*}}size: [[PTRSIZE]]
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
|
||||
protocol AProtocol {
|
||||
func f() -> String
|
||||
@@ -9,7 +8,7 @@ class AClass : AProtocol {
|
||||
}
|
||||
|
||||
// CHECK: define hidden {{.*}}void @{{.*}}aFunction
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.type** %{{.*}}, metadata ![[TYPEARG:.*]], metadata !DIExpression()),
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %{{.*}}, metadata ![[TYPEARG:.*]], metadata !DIExpression()),
|
||||
// CHECK: ![[TYPEARG]] = !DILocalVariable(name: "$\CF\84_0_0"
|
||||
// CHECK-SAME: type: ![[SWIFTMETATYPE:[^,)]+]]
|
||||
// CHECK-SAME: flags: DIFlagArtificial
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -c -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -c -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -O -c -emit-ir -g -o - | %FileCheck %s --check-prefix=OPT
|
||||
// RUN: %target-swift-frontend %s -O -c -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -c -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -O -c -emit-ir -g -o - | %FileCheck %s --check-prefix=OPT
|
||||
class MyClass {}
|
||||
|
||||
// CHECK-LABEL: define {{.*}} @"$s13uninitialized1fyyF"
|
||||
// OPT-LABEL: define {{.*}} @"$s13uninitialized1fyyF"
|
||||
public func f() {
|
||||
var object: MyClass
|
||||
// CHECK: %[[OBJ:.*]] = alloca %[[T1:.*]]*, align
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %[[T1]]** %[[OBJ]],
|
||||
// CHECK: %[[BC1:.*]] = bitcast %[[T1]]** %[[OBJ]] to i8*{{$}}
|
||||
// CHECK: void @llvm.memset.{{.*}}(i8* align {{(4|8)}} %[[BC1]], i8 0,
|
||||
// CHECK: %[[OBJ:.*]] = alloca ptr, align
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[OBJ]],
|
||||
// CHECK: void @llvm.memset.{{.*}}(ptr align {{(4|8)}} %[[OBJ]], i8 0,
|
||||
// CHECK-SAME: ){{$}}
|
||||
// OPT-NOT: @llvm.memset
|
||||
// OPT: ret
|
||||
@@ -21,10 +18,9 @@ public func f() {
|
||||
// OPT-LABEL: define {{.*}} @"$s13uninitialized1gyyF"
|
||||
public func g() {
|
||||
var dict: Dictionary<Int64, Int64>
|
||||
// CHECK: %[[DICT:.*]] = alloca %[[T2:.*]], align
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %[[T2]]* %[[DICT]],
|
||||
// CHECK: %[[BC2:.*]] = bitcast %[[T2]]* %[[DICT]] to i8*
|
||||
// CHECK: void @llvm.memset.{{.*}}(i8* align {{(4|8)}} %[[BC2]], i8 0,
|
||||
// CHECK: %[[DICT:.*]] = alloca
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[DICT]],
|
||||
// CHECK: void @llvm.memset.{{.*}}(ptr align {{(4|8)}} %[[DICT]], i8 0,
|
||||
// CHECK-SAME: ){{$}}
|
||||
// OPT-NOT: @llvm.memset
|
||||
// OPT: ret
|
||||
|
||||
@@ -1,34 +1,32 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -emit-ir %s -g -o - \
|
||||
// RUN: -parse-as-library -module-name a -disable-availability-checking | %FileCheck %s
|
||||
// RUN: %target-swift-frontend -emit-ir %s -g -o - \
|
||||
// RUN: -parse-as-library -module-name a -disable-availability-checking
|
||||
// RUN: -parse-as-library -module-name a -disable-availability-checking | %FileCheck %s
|
||||
|
||||
public func f1<each T>(ts: repeat each T) {
|
||||
// CHECK: define {{.*}} @"$s1a2f12tsyxxQp_tRvzlF"(%swift.opaque** {{.*}}, i{{32|64}} [[COUNT1_1:.*]], %swift.type** {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT1_1]], i{{32|64}}* %[[COUNT1_1_A:.*]], align
|
||||
// CHECK: define {{.*}} @"$s1a2f12tsyxxQp_tRvzlF"(ptr {{.*}}, i{{32|64}} [[COUNT1_1:.*]], ptr {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT1_1]], ptr %[[COUNT1_1_A:.*]], align
|
||||
// CHECK-DAG: call void @llvm.dbg.declare({{.*}}[[COUNT1_1_A]], metadata ![[COUNT1_1_VAR:[0-9]+]], metadata !DIExpression())
|
||||
// CHECK-LABEL: ret void
|
||||
}
|
||||
|
||||
public func f2<each U, each V>(us: repeat each U, vs: repeat each V) {
|
||||
// CHECK: define {{.*}} @"$s1a2f22us2vsyxxQp_q_q_QptRvzRv_r0_lF"(%swift.opaque** {{.*}}, %swift.opaque** {{.*}}, i{{32|64}} [[COUNT2_1:.*]], i{{32|64}} [[COUNT2_2:.*]], %swift.type** {{.*}}, %swift.type** {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT2_1]], i{{32|64}}* %[[COUNT2_1_A:.*]], align
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT2_2]], i{{32|64}}* %[[COUNT2_2_A:.*]], align
|
||||
// CHECK: define {{.*}} @"$s1a2f22us2vsyxxQp_q_q_QptRvzRv_r0_lF"(ptr {{.*}}, ptr {{.*}}, i{{32|64}} [[COUNT2_1:.*]], i{{32|64}} [[COUNT2_2:.*]], ptr {{.*}}, ptr {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT2_1]], ptr %[[COUNT2_1_A:.*]], align
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT2_2]], ptr %[[COUNT2_2_A:.*]], align
|
||||
// CHECK-DAG: call void @llvm.dbg.declare({{.*}}[[COUNT2_1_A]], metadata ![[COUNT2_1_VAR:[0-9]+]], metadata !DIExpression())
|
||||
// CHECK-DAG: call void @llvm.dbg.declare({{.*}}[[COUNT2_2_A]], metadata ![[COUNT2_2_VAR:[0-9]+]], metadata !DIExpression())
|
||||
// CHECK-LABEL: ret void
|
||||
}
|
||||
|
||||
public func f3<each T>(ts: repeat each T, more_ts: repeat each T) {
|
||||
// CHECK: define {{.*}} @"$s1a2f32ts05more_B0yxxQp_xxQptRvzlF"(%swift.opaque** {{.*}}, %swift.opaque** {{.*}}, i{{32|64}} [[COUNT3_1:.*]], %swift.type** {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT3_1]], i{{32|64}}* %[[COUNT3_1_A:.*]], align
|
||||
// CHECK: define {{.*}} @"$s1a2f32ts05more_B0yxxQp_xxQptRvzlF"(ptr {{.*}}, ptr {{.*}}, i{{32|64}} [[COUNT3_1:.*]], ptr {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT3_1]], ptr %[[COUNT3_1_A:.*]], align
|
||||
// CHECK-DAG: call void @llvm.dbg.declare({{.*}}[[COUNT3_1_A]], metadata ![[COUNT3_1_VAR:[0-9]+]], metadata !DIExpression())
|
||||
// CHECK-LABEL: ret void
|
||||
}
|
||||
|
||||
public func f4<each U, each V>(us: repeat (each U, each V)) {
|
||||
// CHECK: define {{.*}} @"$s1a2f42usyx_q_txQp_tRvzRv_q_Rhzr0_lF"(%swift.opaque** {{.*}}, i{{32|64}} [[COUNT4_1:.*]], %swift.type** {{.*}}, %swift.type** {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT4_1]], i{{32|64}}* %[[COUNT4_1_A:.*]], align
|
||||
// CHECK: define {{.*}} @"$s1a2f42usyx_q_txQp_tRvzRv_q_Rhzr0_lF"(ptr {{.*}}, i{{32|64}} [[COUNT4_1:.*]], ptr {{.*}}, ptr {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT4_1]], ptr %[[COUNT4_1_A:.*]], align
|
||||
// CHECK-DAG: call void @llvm.dbg.declare({{.*}}[[COUNT4_1_A]], metadata ![[COUNT4_1_VAR:[0-9]+]], metadata !DIExpression())
|
||||
// CHECK-LABEL: ret void
|
||||
}
|
||||
@@ -37,13 +35,13 @@ public struct S<each T> {
|
||||
let vals: (repeat each T)
|
||||
|
||||
public func f5() {
|
||||
// CHECK: define {{.*}} @"$s1a1SV2f5yyF"(%swift.type* {{.*}}, %T1a1SV* {{.*}} %0)
|
||||
// CHECK: define {{.*}} @"$s1a1SV2f5yyF"(ptr {{.*}}, ptr {{.*}} %0)
|
||||
}
|
||||
}
|
||||
|
||||
public func f6<each T>(s: S<repeat each T>) {
|
||||
// CHECK: define {{.*}} @"$s1a2f61syAA1SVyxxQp_QPG_tRvzlF"(%T1a1SV* {{.*}}, i{{32|64}} [[COUNT6_1:.*]], %swift.type** {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT6_1]], i{{32|64}}* %[[COUNT6_1_A:.*]], align
|
||||
// CHECK: define {{.*}} @"$s1a2f61syAA1SVyxxQp_QPG_tRvzlF"(ptr {{.*}}, i{{32|64}} [[COUNT6_1:.*]], ptr {{.*}})
|
||||
// CHECK-DAG: store i{{32|64}} [[COUNT6_1]], ptr %[[COUNT6_1_A:.*]], align
|
||||
// CHECK-DAG: call void @llvm.dbg.declare({{.*}}[[COUNT6_1_A]], metadata ![[COUNT6_1_VAR:[0-9]+]], metadata !DIExpression())
|
||||
}
|
||||
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers -emit-ir %s -g -o - \
|
||||
// RUN: -parse-as-library -module-name a | %IRGenFileCheck %s
|
||||
// RUN: %target-swift-frontend -emit-ir %s -g -o - \
|
||||
// RUN: -parse-as-library -module-name a
|
||||
// RUN: -parse-as-library -module-name a | %IRGenFileCheck %s
|
||||
|
||||
public func foo<each T>(args: repeat each T) {
|
||||
// CHECK: define {{.*}} @"$s1a3foo4argsyxxQp_tRvzlF"
|
||||
// CHECK-SAME: %swift.type** %[[TYPE_PACK_ARG:.*]])
|
||||
// CHECK: %[[TYPE_PACK_ALLOCA:.*]] = alloca %swift.type**
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.type*** %[[TYPE_PACK_ALLOCA]], metadata ![[TYPE_PACK_VAR:[0-9]+]], metadata !DIExpression())
|
||||
// CHECK: %[[ARGS_ALLOCA:.*]] = alloca %swift.opaque**
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata %swift.opaque*** %[[ARGS_ALLOCA]], metadata ![[ARGS_VAR:[0-9]+]], metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK-DAG: %[[TYPE_PACK_ARG_INT:[^,]+]] = ptrtoint %swift.type** %[[TYPE_PACK_ARG]] to [[INT]]
|
||||
// CHECK-SAME: ptr {{.*}} %[[ARG_0:.*]], i64 %{{.*}},
|
||||
// CHECK-SAME: ptr %[[TYPE_PACK_ARG:.*]])
|
||||
// CHECK: %[[TYPE_PACK_ALLOCA:.*]] = alloca ptr
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %[[TYPE_PACK_ALLOCA]], metadata ![[TYPE_PACK_VAR:[0-9]+]], metadata !DIExpression())
|
||||
// CHECK: %[[ARGS_ALLOCA:.*]] = alloca ptr
|
||||
// CHECK-DAG: call void @llvm.dbg.declare(metadata ptr %[[ARGS_ALLOCA]], metadata ![[ARGS_VAR:[0-9]+]], metadata !DIExpression(DW_OP_deref))
|
||||
// CHECK-DAG: %[[TYPE_PACK_ARG_INT:[^,]+]] = ptrtoint ptr %[[TYPE_PACK_ARG]] to [[INT]]
|
||||
// CHECK-DAG: %[[TYPE_PACK_ARG_MASKED_INT:[^,]+]] = and [[INT]] %[[TYPE_PACK_ARG_INT]], -2
|
||||
// CHECK-DAG: %[[TYPE_PACK_ARG_MASKED:[^,]+]] = inttoptr [[INT]] %[[TYPE_PACK_ARG_MASKED_INT]] to %swift.type**
|
||||
// CHECK-DAG: store %swift.type** %[[TYPE_PACK_ARG_MASKED]], %swift.type*** %[[TYPE_PACK_ALLOCA]]
|
||||
// CHECK-DAG: store %swift.opaque** %0, %swift.opaque*** %[[ARGS_ALLOCA]]
|
||||
// CHECK-DAG: ![[ARGS_VAR]] = !DILocalVariable(name: "args", arg: 1, {{.*}}line: [[@LINE-12]], type: ![[ARGS_LET_TY:[0-9]+]])
|
||||
// CHECK-DAG: %[[TYPE_PACK_ARG_MASKED:[^,]+]] = inttoptr [[INT]] %[[TYPE_PACK_ARG_MASKED_INT]] to ptr
|
||||
// CHECK-DAG: store ptr %[[TYPE_PACK_ARG_MASKED]], ptr %[[TYPE_PACK_ALLOCA]]
|
||||
// CHECK-DAG: store ptr %[[ARG_0]], ptr %[[ARGS_ALLOCA]]
|
||||
// CHECK-DAG: ![[ARGS_VAR]] = !DILocalVariable(name: "args", arg: 1, {{.*}}line: [[@LINE-13]], type: ![[ARGS_LET_TY:[0-9]+]])
|
||||
// CHECK-DAG: ![[ARGS_LET_TY]] = !DIDerivedType(tag: DW_TAG_const_type, baseType: ![[ARGS_TY:[0-9]+]])
|
||||
// CHECK-DAG: ![[ARGS_TY]] = !DICompositeType({{.*}}identifier: "$sxxQp_QSiD")
|
||||
// CHECK-DAG: ![[TYPE_PACK_VAR]] = !DILocalVariable(name: "$\CF\84_0_0", {{.*}}type: ![[TYPE_PACK_TYD:[0-9]+]], flags: DIFlagArtificial)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -emit-ir -g -o - | %FileCheck %s
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o -
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
||||
public class ClosureMaker {
|
||||
var a : Int
|
||||
|
||||
@@ -17,4 +16,4 @@ public class ClosureMaker {
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}} @"$s4main12ClosureMakerC03getB0SiycyFSiycfU_"
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.weak** %{{.*}} !DIExpression(DW_OP_deref)),
|
||||
// CHECK: call void @llvm.dbg.declare(metadata ptr %{{.*}} !DIExpression(DW_OP_deref)),
|
||||
|
||||
Reference in New Issue
Block a user