Adjust handling of values in calls and structs (#2824)

Previously, IR for arguments in calls and struct values was separated out. This merges it back in. Additionally, parameters for functions and struct types had their own IR; the block is still there, but there's a TODO to decide what to do with it.

In the LLVM IR, this has the consequence of emitting expressions that are inputs to a call or struct value within the scope of the function, which is pretty much where it should be. Importantly it happens before the call is encountered.

This change also tinkers with the int and real literal lowering. I'm pretty sure both are still wrong, but was having trouble figuring out a "better" way to do it, and this seems like it'll work for now.
This commit is contained in:
Jon Ross-Perkins
2023-05-18 11:42:03 -07:00
committed by GitHub
parent 4a5d925974
commit e73207429f
76 changed files with 304 additions and 518 deletions
@@ -4,12 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -27,8 +24,8 @@
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeEmptyStruct, type: nodeEmptyStructType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block6},
// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -48,13 +45,11 @@
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
fn Echo(a: {}) {
@@ -4,13 +4,11 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_ir: block2, param_refs: block3},
// CHECK:STDOUT: {param_ir: block4, param_refs: block5},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: {param_refs: block3},
// CHECK:STDOUT: {param_refs: block5},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -56,7 +54,7 @@
// CHECK:STDOUT: {kind: StubReference, arg0: node+21, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int5, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+23, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+12, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+12, arg1: block6},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -91,35 +89,29 @@
// CHECK:STDOUT: [
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: node+15,
// CHECK:STDOUT: node+16,
// CHECK:STDOUT: node+17,
// CHECK:STDOUT: node+18,
// CHECK:STDOUT: node+19,
// CHECK:STDOUT: node+20,
// CHECK:STDOUT: node+21,
// CHECK:STDOUT: node+22,
// CHECK:STDOUT: node+23,
// CHECK:STDOUT: node+24,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+15,
// CHECK:STDOUT: node+16,
// CHECK:STDOUT: node+17,
// CHECK:STDOUT: node+18,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+16,
// CHECK:STDOUT: node+18,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+19,
// CHECK:STDOUT: node+20,
// CHECK:STDOUT: node+21,
// CHECK:STDOUT: node+22,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+20,
// CHECK:STDOUT: node+22,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+23,
// CHECK:STDOUT: node+24,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+24,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -4,11 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -28,7 +26,7 @@
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -4,12 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: {arg_ir: block0, arg_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeFloatingPointType},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block0, return_type: nodeFloatingPointType},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -29,7 +26,7 @@
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable1},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+5, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: callable0, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: nodeInvalidType, type: nodeInvalidType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block3},
// CHECK:STDOUT: ]
+5 -10
View File
@@ -4,12 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: {arg_ir: block6, arg_refs: block7},
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2, return_type: nodeIntegerType},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block2, return_type: nodeIntegerType},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -35,7 +32,7 @@
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+7, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: block6, arg1: callable0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+7, arg1: node+11, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block5},
// CHECK:STDOUT: ]
@@ -62,12 +59,10 @@
// CHECK:STDOUT: [
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+10,
@@ -4,12 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -50,8 +47,8 @@
// CHECK:STDOUT: {kind: StubReference, arg0: node+17, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int5, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+19, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+8, arg1: block6},
// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+8, arg1: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -88,15 +85,13 @@
// CHECK:STDOUT: node+18,
// CHECK:STDOUT: node+19,
// CHECK:STDOUT: node+20,
// CHECK:STDOUT: node+21,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: node+18,
// CHECK:STDOUT: node+20,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+21,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
fn Foo(a: i32, b: i32, c: i32) {}
@@ -4,12 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -29,8 +26,8 @@
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block6},
// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -51,13 +48,11 @@
// CHECK:STDOUT: [
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
fn Foo(a: i32) {}
@@ -4,13 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5},
// CHECK:STDOUT: {arg_ir: block7, arg_refs: block8},
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -31,11 +27,11 @@
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0},
// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+8, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call1, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block6},
// CHECK:STDOUT: {kind: Call, arg0: block6, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -56,17 +52,13 @@
// CHECK:STDOUT: [
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+9,
@@ -4,12 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -35,8 +32,8 @@
// CHECK:STDOUT: {kind: StubReference, arg0: node+7, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block6},
// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -62,14 +59,12 @@
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
fn Foo(a: i32, b: i32) {}
@@ -4,13 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: {arg_ir: block4, arg_refs: block5},
// CHECK:STDOUT: {arg_ir: block7, arg_refs: block8},
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -38,13 +34,13 @@
// CHECK:STDOUT: {kind: StubReference, arg0: node+7, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0},
// CHECK:STDOUT: {kind: Call, arg0: block5, arg1: callable0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+12, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int3, type: nodeIntegerType},
// CHECK:STDOUT: {kind: StubReference, arg0: node+14, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call1, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block6},
// CHECK:STDOUT: {kind: Call, arg0: block6, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -70,20 +66,16 @@
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: node+16,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: node+15,
// CHECK:STDOUT: node+16,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node+13,
@@ -4,12 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: {arg_ir: block0, arg_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -23,7 +20,7 @@
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable1},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0},
// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -4,10 +4,8 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -4,12 +4,10 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -4,10 +4,8 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -4,10 +4,8 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -4,10 +4,8 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -4,10 +4,8 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -4,10 +4,8 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0},
// CHECK:STDOUT: {param_refs: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -4,11 +4,9 @@
//
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block1, param_refs: block2},
// CHECK:STDOUT: {param_ir: block4, param_refs: block5},
// CHECK:STDOUT: {param_refs: block2},
// CHECK:STDOUT: {param_refs: block5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]