mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 09:31:04 +01:00
Add formatted textual IR output (#3056)
Add a textual IR format to the toolchain. The exact details of the format are somewhat arbitrary right now, and I expect them to change as we refine the semantics IR model, but at the moment they're somewhat directly following the current structure of the IR. Semantics tests currently test both the "raw" format, which shows the details of the representation, and the textual format, which is somewhat higher level. We may want to revisit that decision once the textual format is a bit more stable, and test only the textual format in most of these tests, but for now it seems prudent to keep both sets of tests. --------- Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
This commit is contained in:
co-authored by
Chandler Carruth
parent
fc5a9541ce
commit
6cbf280a68
@@ -75,3 +75,22 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+9,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7_20: {} = struct_value ()
|
||||
// CHECK:STDOUT: %.loc7_1 = fn_decl @Echo
|
||||
// CHECK:STDOUT: %.loc11 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Echo(%a: {}) -> {} {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return %a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc12_9.1: {} = struct_value ()
|
||||
// CHECK:STDOUT: %.loc12_9.2: {} = stub_reference %.loc12_9.1
|
||||
// CHECK:STDOUT: %.loc12_7: {} = call @Echo(%.loc12_9.2)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -77,3 +77,22 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+9,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7_20: () = tuple_value ()
|
||||
// CHECK:STDOUT: %.loc7_1 = fn_decl @Echo
|
||||
// CHECK:STDOUT: %.loc11 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Echo(%a: ()) -> () {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return %a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc12_9.1: () = tuple_value ()
|
||||
// CHECK:STDOUT: %.loc12_9.2: () = stub_reference %.loc12_9.1
|
||||
// CHECK:STDOUT: %.loc12_7: () = call @Echo(%.loc12_9.2)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -178,3 +178,42 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+24,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Run0
|
||||
// CHECK:STDOUT: %.loc8 = fn_decl @Run1
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Run2
|
||||
// CHECK:STDOUT: %.loc11 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Run0() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Run1(%a: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Run2(%a: i32, %b: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc18_8.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc18_8.2: i32 = stub_reference %.loc18_8.1
|
||||
// CHECK:STDOUT: %.loc25_8.1: i32 = int_value 0
|
||||
// CHECK:STDOUT: %.loc25_8.2: i32 = stub_reference %.loc25_8.1
|
||||
// CHECK:STDOUT: %.loc25_11.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc25_11.2: i32 = stub_reference %.loc25_11.1
|
||||
// CHECK:STDOUT: %.loc40_8.1: i32 = int_value 0
|
||||
// CHECK:STDOUT: %.loc40_8.2: i32 = stub_reference %.loc40_8.1
|
||||
// CHECK:STDOUT: %.loc40_11.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc40_11.2: i32 = stub_reference %.loc40_11.1
|
||||
// CHECK:STDOUT: %.loc55_8.1: i32 = int_value 0
|
||||
// CHECK:STDOUT: %.loc55_8.2: i32 = stub_reference %.loc55_8.1
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -73,3 +73,20 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+6,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Run
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Run(%a: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc16_7.1: f64 = real_value 10e-1
|
||||
// CHECK:STDOUT: %.loc16_7.2: f64 = stub_reference %.loc16_7.1
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -64,3 +64,22 @@ fn Run() {
|
||||
// CHECK:STDOUT: node+8,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Run
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo() -> f64 {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc7: f64 = real_value 10e-1
|
||||
// CHECK:STDOUT: return %.loc7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Run() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %x: i32 = var
|
||||
// CHECK:STDOUT: %.loc13: f64 = call @Foo()
|
||||
// CHECK:STDOUT: assign %x, <error>
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -77,3 +77,23 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+8,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Echo
|
||||
// CHECK:STDOUT: %.loc11 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Echo(%a: i32) -> i32 {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return %a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %b: i32 = var
|
||||
// CHECK:STDOUT: %.loc12_21.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc12_21.2: i32 = stub_reference %.loc12_21.1
|
||||
// CHECK:STDOUT: %.loc12_20: i32 = call @Echo(%.loc12_21.2)
|
||||
// CHECK:STDOUT: assign %b, %.loc12_20
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -113,3 +113,32 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+20,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32, %b: i32, %c: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc11_7: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc11_11: i32 = int_value 2
|
||||
// CHECK:STDOUT: %.loc11_9: i32 = add %.loc11_7, %.loc11_11
|
||||
// CHECK:STDOUT: %.loc11_15: i32 = int_value 3
|
||||
// CHECK:STDOUT: %.loc11_13.1: i32 = add %.loc11_9, %.loc11_15
|
||||
// CHECK:STDOUT: %.loc11_13.2: i32 = stub_reference %.loc11_13.1
|
||||
// CHECK:STDOUT: %.loc11_18: i32 = int_value 4
|
||||
// CHECK:STDOUT: %.loc11_22: i32 = int_value 5
|
||||
// CHECK:STDOUT: %.loc11_20.1: i32 = add %.loc11_18, %.loc11_22
|
||||
// CHECK:STDOUT: %.loc11_20.2: i32 = stub_reference %.loc11_20.1
|
||||
// CHECK:STDOUT: %.loc11_25.1: i32 = int_value 6
|
||||
// CHECK:STDOUT: %.loc11_25.2: i32 = stub_reference %.loc11_25.1
|
||||
// CHECK:STDOUT: %.loc11_6.1: type = tuple_type ()
|
||||
// CHECK:STDOUT: %.loc11_6.2: () = call @Foo(%.loc11_13.2, %.loc11_20.2, %.loc11_25.2)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -73,3 +73,22 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+6,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc10_7.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc10_7.2: i32 = stub_reference %.loc10_7.1
|
||||
// CHECK:STDOUT: %.loc10_6.1: type = tuple_type ()
|
||||
// CHECK:STDOUT: %.loc10_6.2: () = call @Foo(%.loc10_7.2)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -84,3 +84,25 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+10,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc10_7.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc10_7.2: i32 = stub_reference %.loc10_7.1
|
||||
// CHECK:STDOUT: %.loc10_6.1: type = tuple_type ()
|
||||
// CHECK:STDOUT: %.loc10_6.2: () = call @Foo(%.loc10_7.2)
|
||||
// CHECK:STDOUT: %.loc11_7.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc11_7.2: i32 = stub_reference %.loc11_7.1
|
||||
// CHECK:STDOUT: %.loc11_6: () = call @Foo(%.loc11_7.2)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -85,3 +85,24 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+10,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32, %b: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc10_7.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc10_7.2: i32 = stub_reference %.loc10_7.1
|
||||
// CHECK:STDOUT: %.loc10_10.1: i32 = int_value 2
|
||||
// CHECK:STDOUT: %.loc10_10.2: i32 = stub_reference %.loc10_10.1
|
||||
// CHECK:STDOUT: %.loc10_6.1: type = tuple_type ()
|
||||
// CHECK:STDOUT: %.loc10_6.2: () = call @Foo(%.loc10_7.2, %.loc10_10.2)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -102,3 +102,29 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+16,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32, %b: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc10_7.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc10_7.2: i32 = stub_reference %.loc10_7.1
|
||||
// CHECK:STDOUT: %.loc10_10.1: i32 = int_value 2
|
||||
// CHECK:STDOUT: %.loc10_10.2: i32 = stub_reference %.loc10_10.1
|
||||
// CHECK:STDOUT: %.loc10_6.1: type = tuple_type ()
|
||||
// CHECK:STDOUT: %.loc10_6.2: () = call @Foo(%.loc10_7.2, %.loc10_10.2)
|
||||
// CHECK:STDOUT: %.loc11_7.1: i32 = int_value 1
|
||||
// CHECK:STDOUT: %.loc11_7.2: i32 = stub_reference %.loc11_7.1
|
||||
// CHECK:STDOUT: %.loc11_10.1: i32 = int_value 2
|
||||
// CHECK:STDOUT: %.loc11_10.2: i32 = stub_reference %.loc11_10.1
|
||||
// CHECK:STDOUT: %.loc11_6: () = call @Foo(%.loc11_7.2, %.loc11_10.2)
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -54,3 +54,20 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+5,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc10_6.1: type = tuple_type ()
|
||||
// CHECK:STDOUT: %.loc10_6.2: () = call @Foo()
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -64,3 +64,23 @@ fn Main() {
|
||||
// CHECK:STDOUT: node+9,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @MakeImplicitEmptyTuple
|
||||
// CHECK:STDOUT: %.loc10 = fn_decl @Main
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @MakeImplicitEmptyTuple() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Main() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc11_11.1: type = tuple_type ()
|
||||
// CHECK:STDOUT: %.loc11_11.2: () = tuple_value ()
|
||||
// CHECK:STDOUT: %b: () = var
|
||||
// CHECK:STDOUT: %.loc11_37: () = call @MakeImplicitEmptyTuple()
|
||||
// CHECK:STDOUT: assign %b, %.loc11_37
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -48,3 +48,17 @@ fn G() { F(); }
|
||||
// CHECK:STDOUT: node+4,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @F
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @G
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F();
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc9_11.1: type = tuple_type ()
|
||||
// CHECK:STDOUT: %.loc9_11.2: () = call @F()
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+9
@@ -57,3 +57,12 @@ fn Bar(a: i32, a: i32) {}
|
||||
// CHECK:STDOUT: node+5,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc13 = fn_decl @Bar
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Bar(%a.loc13_8: i32, %a.loc13_16: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -53,3 +53,24 @@ fn Baz() {}
|
||||
// CHECK:STDOUT: node+5,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: %.loc8 = fn_decl @Bar
|
||||
// CHECK:STDOUT: %.loc9 = fn_decl @Baz
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Bar() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Baz() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -46,3 +46,12 @@ fn Foo(a: i32) {}
|
||||
// CHECK:STDOUT: node+3,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -46,3 +46,12 @@ fn Foo(a: i32,) {}
|
||||
// CHECK:STDOUT: node+3,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -52,3 +52,12 @@ fn Foo(a: i32, b: i32) {}
|
||||
// CHECK:STDOUT: node+5,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32, %b: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -52,3 +52,12 @@ fn Foo(a: i32, b: i32,) {}
|
||||
// CHECK:STDOUT: node+5,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32, %b: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -35,3 +35,12 @@ fn Foo() {}
|
||||
// CHECK:STDOUT: node+1,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -64,3 +64,18 @@ fn Bar(a: i32) {}
|
||||
// CHECK:STDOUT: node+7,
|
||||
// CHECK:STDOUT: ],
|
||||
// CHECK:STDOUT: ]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: package {
|
||||
// CHECK:STDOUT: %.loc7 = fn_decl @Foo
|
||||
// CHECK:STDOUT: %.loc8 = fn_decl @Bar
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Foo(%a: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Bar(%a: i32) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
Reference in New Issue
Block a user