Update testcases for new LLVM IR assembler syntax.

Swift SVN r24428
This commit is contained in:
Adrian Prantl
2015-01-14 23:38:18 +00:00
parent f1b35a253d
commit d7489b7272
16 changed files with 43 additions and 43 deletions

View File

@@ -3,7 +3,7 @@ func main() {
// CHECK: call void @llvm.dbg.declare(metadata %"protocol<>"* {{.*}}, metadata ![[S:.*]], metadata !{{[0-9]+}}), !dbg ![[DBG:.*]]
// CHECK: ![[S]] ={{.*}}[ DW_TAG_auto_variable ] [s] [line [[@LINE+3]]]
// CHECK: ![[SCOPE:.*]] = !{!"0xb\002\0013\001"{{.*}}} ; [ DW_TAG_lexical_block ]
// CHECK: ![[DBG]] = !{i32 [[@LINE+1]], i32 6, ![[SCOPE]], null}
// CHECK: ![[DBG]] = !MDLocation(line: [[@LINE+1]], column: 6, scope: ![[SCOPE]])
var s : Any = "hello world"
var n : Any = 12
var t : Any = (1,2)

View File

@@ -23,7 +23,7 @@ func call_me(var input: Int) -> Void {
// An autoclosure should have a line number in the debug info and a scope line of 0.
// CHECK-DAG: \00_TFF11autoclosure7call_meFSiT_u_KT_PSs11BooleanType_{{.*}} [ DW_TAG_subprogram ] [line [[@LINE+3]]] [def] [scope 0]
// But not in the line table.
// CHECK-DAG: ![[DBG]] = !{i32 [[@LINE+1]], i32
// CHECK-DAG: ![[DBG]] = !MDLocation(line: [[@LINE+1]],
if input != 0 &&&&& ( get_truth (input * 2 + 1) > 0 )
{
println ("Whew, passed that test.")

View File

@@ -27,7 +27,7 @@
public
func foo(var a: Int, var b: Int) -> Int {
// CHECK-DAG: !"0xb\00[[@LINE-1]]\0041\000"{{, [^,]+}}, ![[FOO]]} ; [ DW_TAG_lexical_block ]
// CHECK-DAG: ![[ASCOPE:.*]] = !{i32 [[@LINE-2]], i32 14, ![[FOO]], null}
// CHECK-DAG: ![[ASCOPE:.*]] = !MDLocation(line: [[@LINE-2]], column: 14, scope: ![[FOO]])
// Check that a is the first and b is the second argument.
// CHECK-DAG: store i64 %0, i64* [[AVAL:.*]], align 8
// CHECK-DAG: store i64 %1, i64* [[BVAL:.*]], align 8
@@ -41,10 +41,10 @@ func foo(var a: Int, var b: Int) -> Int {
// CHECK-DAG: \00[[@LINE-1]]\00{{.*}}DW_TAG_lexical_block
// Transparent inlined multiply:
// CHECK-DAG: smul{{.*}}, !dbg ![[MUL:[0-9]+]]
// CHECK-DAG: [[MUL]] = !{i32 [[@LINE+4]], i32 16,
// CHECK-DAG: [[MUL]] = !MDLocation(line: [[@LINE+4]], column: 16,
// Runtime call to multiply function:
// CHECK-NOSIL: @_TFSsoi1mFTSiSi_Si{{.*}}, !dbg ![[MUL:[0-9]+]]
// CHECK-NOSIL: [[MUL]] = !{i32 [[@LINE+1]], i32 16,
// CHECK-NOSIL: [[MUL]] = !MDLocation(line: [[@LINE+1]], column: 16,
return a*b
} else {
// CHECK-DAG: [[PARENT:[0-9]+]] = {{.*}}\00[[@LINE-1]]\0013\00{{.*}}DW_TAG_lexical_block

View File

@@ -6,8 +6,8 @@ func foo(a : Int, b : Int) -> Int {
// CHECK: call {{.*}}foo{{.*}}, !dbg ![[ARG1:.*]]
// CHECK: call {{.*}}foo{{.*}}, !dbg ![[ARG2:.*]]
// CHECK: call {{.*}}foo{{.*}}, !dbg ![[OUTER:.*]]
let r = foo(foo(1, 23), // CHECK: ![[ARG1]] = !{i32 [[@LINE]],
foo(2, 42) // CHECK: ![[ARG2]] = !{i32 [[@LINE]],
) // CHECK: ![[OUTER]] = !{i32 [[@LINE]],
let r = foo(foo(1, 23), // CHECK: ![[ARG1]] = !MDLocation(line: [[@LINE]],
foo(2, 42) // CHECK: ![[ARG2]] = !MDLocation(line: [[@LINE]],
) // CHECK: ![[OUTER]] = !MDLocation(line: [[@LINE]],
println(r)

View File

@@ -11,7 +11,7 @@ protocol Named {
// CHECK: define hidden %C11initializer6Person* @_TFC11initializer6PersonCfMS0_FT_S0_(%swift.type*) {
// CHECK: call %C11initializer6Person* @_TFC11initializer6PersoncfMS0_FT_S0_(%C11initializer6Person* %3), !dbg ![[ALLOCATING_INIT:.*]]
// CHECK-DAG: ![[ALLOCATING_INIT]] = !{i32 0, i32 0
// CHECK-DAG: ![[ALLOCATING_INIT]] = !MDLocation(line: 0, scope
class Person : Named {
var name : String { get { return "No Name" } }
var age = 0

View File

@@ -9,12 +9,12 @@
// CHECK: tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %[[C:.*]], i64 %[[C]]), !dbg ![[MULSCOPE:.*]]
// CHECK-DAG: ![[TOPLEVEL:.*]] = {{.*}}; [ DW_TAG_file_type ] [{{.*}}/inlinescopes.swift]
// CHECK-DAG: ![[MAIN:.*]] = {{.*}}\00main\00{{.*}}[ DW_TAG_subprogram ]
// CHECK-DAG: ![[INLINED_TOPLEVEL:.*]] = !{i32 0, i32 0, ![[MAIN:.*]], null}
// CHECK-DAG: ![[INLINED_TOPLEVEL:.*]] = !MDLocation(line: 0, scope: ![[MAIN:.*]])
import FooBar
func square(x : Int) -> Int {
// CHECK-DAG: ![[MULSCOPE]] = !{i32 [[@LINE+2]], i32 {{.*}}, ![[MUL:.*]], ![[INLINED:.*]]}
// CHECK-DAG: ![[MULSCOPE]] = !MDLocation(line: [[@LINE+2]], column: {{.*}}, scope: ![[MUL:.*]], inlinedAt: ![[INLINED:.*]])
// CHECK-DAG: ![[MUL:.*]] = {{.*}}[ DW_TAG_lexical_block ]
let res = x * x
// *(Int, Int) is a transparent function and should not show up in the debug info.
@@ -22,7 +22,7 @@ func square(x : Int) -> Int {
return res
}
let c = Int(x)
// CHECK-DAG ![[INLINED]] = !{i32 [[@LINE+1]], i32 {{.*}}, !{{.*}}, ![[INLINED_TOPLEVEL:.*]]}
// CHECK-DAG ![[INLINED]] = !MDLocation(line: [[@LINE+1]], column: {{.*}}, scope: !{{.*}}, inlinedAt: ![[INLINED_TOPLEVEL:.*]])
// CHECK-DAG: ![[TOPLEVEL]]{{.*}} ; [ DW_TAG_variable ] [y] [line [[@LINE+1]]]
let y = square(c)
println(y)

View File

@@ -22,6 +22,6 @@ func main() {
// CHECK: call void {{.*}}elease({{.*}}) {{#[0-9]+}}, !dbg ![[CLEANUPS:.*]]
// CHECK-NEXT: !dbg ![[CLEANUPS]]
// CHECK-NEXT: ret void, !dbg ![[CLEANUPS]]
// CHECK: ![[CLEANUPS]] = !{i32 [[@LINE+1]], i32 1,
// CHECK: ![[CLEANUPS]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
main()

View File

@@ -35,7 +35,7 @@ func main(x: Int) -> Void
print ("Here is something you might consider doing: \(result).\n")
// CHECK: call {{.*}} @swift_release {{.*}}, !dbg ![[CLOSURE_END:.*]]
// CHECK-NEXT: ret void, !dbg ![[CLOSURE_END]]
// CHECK: ![[CLOSURE_END]] = !{i32 [[@LINE+1]]
// CHECK: ![[CLOSURE_END]] = !MDLocation(line: [[@LINE+1]],
}
)

View File

@@ -21,10 +21,10 @@ func classifyPoint2(p: (Double, Double)) {
// CHECK: call double {{.*}}return_same{{.*}}, !dbg ![[LOC1:.*]]
// CHECK: br {{.*}}, label {{.*}}, label {{.*}}, !dbg ![[LOC2:.*]]
// CHECK: builtinStringLiteral{{.*}}, !dbg ![[LOC3:.*]]
// CHECK: ![[LOC1]] = !{i32 [[@LINE+2]], i32
// CHECK: ![[LOC2]] = !{i32 [[@LINE+1]], i32
// CHECK: ![[LOC1]] = !MDLocation(line: [[@LINE+2]],
// CHECK: ![[LOC2]] = !MDLocation(line: [[@LINE+1]],
return_same(x) == return_same(y):
// CHECK: ![[LOC3]] = !{i32 [[@LINE+1]], i32
// CHECK: ![[LOC3]] = !MDLocation(line: [[@LINE+1]],
println("(\(x), \(y)) is on the + diagonal")
// SIL-CHECK: dealloc_stack{{.*}}line:[[@LINE-1]]:54:cleanup
// Verify that the branch has a location >= the cleanup.
@@ -43,5 +43,5 @@ func classifyPoint2(p: (Double, Double)) {
// CHECK-SCOPES: ![[SCOPE3]] = {{.*}} ; [ DW_TAG_lexical_block ]
println("sqrt(\(x*x + y*y)) units from the origin")
}
// CHECK: i32 [[@LINE+1]], i32
// CHECK: !MDLocation(line: [[@LINE+1]],
}

View File

@@ -15,5 +15,5 @@ func ifelseexpr() -> Int {
}
// CHECK: @swift_release {{.*}}1X{{.*}}, !dbg ![[RET:.*]]
// CHECK: ret{{.*}}, !dbg ![[RET]]
return x.x; // CHECK: ![[RET]] = !{i32 [[@LINE]],
return x.x; // CHECK: ![[RET]] = !MDLocation(line: [[@LINE]],
}

View File

@@ -13,8 +13,8 @@ func none(inout a: Int) {
// CHECK_NONE: !dbg ![[NONE_INIT:.*]]
a -= 2;
// CHECK_NONE: ret {{.*}}, !dbg ![[NONE_RET:.*]]
// CHECK_NONE: ![[NONE_INIT]] = !{i32 [[@LINE-2]], i32
// CHECK_NONE: ![[NONE_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_NONE: ![[NONE_INIT]] = !MDLocation(line: [[@LINE-2]], column:
// CHECK_NONE: ![[NONE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_EMPTY
@@ -22,16 +22,16 @@ func none(inout a: Int) {
func empty(inout a: Int) {
if a > 24 {
// CHECK-DAG_EMPTY: br {{.*}}, !dbg ![[EMPTY_RET1:.*]]
// CHECK-DAG_EMPTY_RET1: ![[EMPTY_RET1]] = !{i32 [[@LINE+1]], i32 6,
// CHECK-DAG_EMPTY_RET1: ![[EMPTY_RET1]] = !MDLocation(line: [[@LINE+1]], column: 6,
return
}
a -= 2;
// CHECK-DAG_EMPTY: br {{.*}}, !dbg ![[EMPTY_RET2:.*]]
// CHECK-DAG_EMPTY_RET2: ![[EMPTY_RET]] = !{i32 [[@LINE+1]], i32 3,
// CHECK-DAG_EMPTY_RET2: ![[EMPTY_RET]] = !MDLocation(line: [[@LINE+1]], column: 3,
return
// CHECK-DAG_EMPTY: ret {{.*}}, !dbg ![[EMPTY_RET:.*]]
// CHECK-DAG_EMPTY: ![[EMPTY_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK-DAG_EMPTY: ![[EMPTY_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_EMPTY_NONE
@@ -43,7 +43,7 @@ func empty_none(inout a: Int) {
a -= 2;
// CHECK_EMPTY_NONE: ret {{.*}}, !dbg ![[EMPTY_NONE_RET:.*]]
// CHECK_EMPTY_NONE: ![[EMPTY_NONE_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_EMPTY_NONE: ![[EMPTY_NONE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_SIMPLE_RET
@@ -54,7 +54,7 @@ func simple(a: Int) -> Int {
}
return 1
// CHECK_SIMPLE_RET: ret i{{.*}}, !dbg ![[SIMPLE_RET:.*]]
// CHECK_SIMPLE_RET: ![[SIMPLE_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_SIMPLE_RET: ![[SIMPLE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_COMPLEX_RET
@@ -65,7 +65,7 @@ func complex(a: Int) -> Int {
}
return a/2
// CHECK_COMPLEX_RET: ret i{{.*}}, !dbg ![[COMPLEX_RET:.*]]
// CHECK_COMPLEX_RET: ![[COMPLEX_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_COMPLEX_RET: ![[COMPLEX_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_COMPLEX_SIMPLE
@@ -76,7 +76,7 @@ func complex_simple(a: Int) -> Int {
}
return 2
// CHECK_COMPLEX_SIMPLE: ret i{{.*}}, !dbg ![[COMPLEX_SIMPLE_RET:.*]]
// CHECK_COMPLEX_SIMPLE: ![[COMPLEX_SIMPLE_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_COMPLEX_SIMPLE: ![[COMPLEX_SIMPLE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_SIMPLE_COMPLEX
@@ -87,7 +87,7 @@ func simple_complex(a: Int) -> Int {
}
return 2
// CHECK_SIMPLE_COMPLEX: ret {{.*}}, !dbg ![[SIMPLE_COMPLEX_RET:.*]]
// CHECK_SIMPLE_COMPLEX: ![[SIMPLE_COMPLEX_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_SIMPLE_COMPLEX: ![[SIMPLE_COMPLEX_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
@@ -99,7 +99,7 @@ func simple_complex(a: Int) -> Int {
func cleanup_none(inout a: NSString) {
a = "empty"
// CHECK_CLEANUP_NONE: ret void, !dbg ![[CLEANUP_NONE_RET:.*]]
// CHECK_CLEANUP_NONE: ![[CLEANUP_NONE_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_CLEANUP_NONE: ![[CLEANUP_NONE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_EMPTY
@@ -112,7 +112,7 @@ func cleanup_empty(inout a: NSString) {
a = "empty"
return
// CHECK_CLEANUP_EMPTY: ret void, !dbg ![[CLEANUP_EMPTY_RET:.*]]
// CHECK_CLEANUP_EMPTY: ![[CLEANUP_EMPTY_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_CLEANUP_EMPTY: ![[CLEANUP_EMPTY_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_EMPTY_NONE
@@ -124,7 +124,7 @@ func cleanup_empty_none(inout a: NSString) {
a = "empty"
// CHECK_CLEANUP_EMPTY_NONE: ret {{.*}}, !dbg ![[CLEANUP_EMPTY_NONE_RET:.*]]
// CHECK_CLEANUP_EMPTY_NONE: ![[CLEANUP_EMPTY_NONE_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_CLEANUP_EMPTY_NONE: ![[CLEANUP_EMPTY_NONE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_SIMPLE_RET
@@ -136,7 +136,7 @@ func cleanup_simple(a: NSString) -> Int {
return 1
// CHECK_CLEANUP_SIMPLE_RET: ret {{.*}}, !dbg ![[CLEANUP_SIMPLE_RET:.*]]
// CHECK_CLEANUP_SIMPLE_RET: ![[CLEANUP_SIMPLE_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_CLEANUP_SIMPLE_RET: ![[CLEANUP_SIMPLE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_COMPLEX
@@ -148,7 +148,7 @@ func cleanup_complex(a: NSString) -> Int {
return a.length/2
// CHECK_CLEANUP_COMPLEX: ret i{{.*}}, !dbg ![[CLEANUP_COMPLEX_RET:.*]]
// CHECK_CLEANUP_COMPLEX: ![[CLEANUP_COMPLEX_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_CLEANUP_COMPLEX: ![[CLEANUP_COMPLEX_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_COMPLEX_SIMPLE
@@ -160,7 +160,7 @@ func cleanup_complex_simple(a: NSString) -> Int {
return 2
// CHECK_CLEANUP_COMPLEX_SIMPLE: ret {{.*}}, !dbg ![[CLEANUP_COMPLEX_SIMPLE_RET:.*]]
// CHECK_CLEANUP_COMPLEX_SIMPLE: ![[CLEANUP_COMPLEX_SIMPLE_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_CLEANUP_COMPLEX_SIMPLE: ![[CLEANUP_COMPLEX_SIMPLE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_SIMPLE_COMPLEX
@@ -171,7 +171,7 @@ func cleanup_simple_complex(a: NSString) -> Int {
}
return 2
// CHECK_CLEANUP_SIMPLE_COMPLEX: ret {{.*}}, !dbg ![[CLEANUP_SIMPLE_COMPLEX_RET:.*]]
// CHECK_CLEANUP_SIMPLE_COMPLEX: ![[CLEANUP_SIMPLE_COMPLEX_RET]] = !{i32 [[@LINE+1]], i32 1,
// CHECK_CLEANUP_SIMPLE_COMPLEX: ![[CLEANUP_SIMPLE_COMPLEX_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
}
// ---------------------------------------------------------------------

View File

@@ -19,8 +19,8 @@ class AppDelegate {
// Verify that all debug line table entries for the expression
// below are in the same scope.
//
// CHECK-DAG: !{{.*}} = !{i32 [[@LINE+2]], i32 46, ![[S:.*]], null}
// CHECK-DAG: !{{.*}} = !{i32 [[@LINE+1]], i32 11, ![[S]], null}
// CHECK-DAG: !{{.*}} = !MDLocation(line: [[@LINE+2]], column: 46, scope: ![[S:.*]])
// CHECK-DAG: !{{.*}} = !MDLocation(line: [[@LINE+1]], column: 11, scope: ![[S]])
let splitViewController = self.window!.rootViewController as! UISplitViewController
}
return true

View File

@@ -17,7 +17,7 @@ bb0(%0 : $Int32):
cond_fail %8 : $Builtin.Int1 // id: %9
%10 = struct $Int32 (%7 : $Builtin.Int32) // user: %11
// CHECK: ret i32 %{{.*}}, !dbg ![[LOC:.*]]
// CHECK: ![[LOC]] = !{i32 [[@LINE+1]],
// CHECK: ![[LOC]] = !MDLocation(line: [[@LINE+1]],
return %10 : $Int32 // id: %11
}

View File

@@ -88,7 +88,7 @@ func date() {
// IMPORT-CHECK-DAG: [ DW_TAG_module ] [ObjectiveC]
// LOC-CHECK: ![[THUNK:.*]] = {{.*}}_TToFC4main8MyObjectg5MyArrCSo7NSArray{{.*}} ; [ DW_TAG_subprogram ] [line 0] [def]
// LOC-CHECK: ![[DBG]] = !{i32 0, i32 0, ![[THUNK]], null}
// LOC-CHECK: ![[DBG]] = !MDLocation(line: 0, scope: ![[THUNK]])
// These debug locations should all be in ordered by increasing line number.
// LOC-CHECK: ![[L1]] =

View File

@@ -11,4 +11,4 @@ func fn() {
// CHECK-NOT: define
// CHECK: call void @llvm.trap(), !dbg ![[LOC:.*]]
// CHECK-NEXT: unreachable, !dbg ![[LOC]]
// CHECK: ![[LOC]] = !{i32 0, i32 0,
// CHECK: ![[LOC]] = !MDLocation(line: 0, scope

View File

@@ -5,11 +5,11 @@ import Swift
func f(x : Int) -> Int {
if x < 23 {
// CHECK-DAG: call void @llvm.trap(), !dbg ![[LOC1:.*]]
// CHECK-DAG: ![[LOC1]] = !{i32 [[@LINE+1]],
// CHECK-DAG: ![[LOC1]] = !MDLocation(line: [[@LINE+1]],
Builtin.int_trap()
}
if x > 42 {
// CHECK-DAG: ![[LOC2:.*]] = !{i32 [[@LINE+1]],
// CHECK-DAG: ![[LOC2:.*]] = !MDLocation(line: [[@LINE+1]],
Builtin.int_trap()
// CHECK-DAG: call void @llvm.trap(), !dbg ![[LOC2]]
}