Track the list of blocks that form the body of a function. (#2941)

Use that list for lowering in lexical order, instead of rediscovering
the list based on which blocks are referenced as branch targets.
This commit is contained in:
Richard Smith
2023-06-23 08:36:13 -07:00
committed by GitHub
parent 5a90f660b9
commit b908c6e274
61 changed files with 145 additions and 176 deletions
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type0, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type0, body: {block4}}},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: {block5}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -5,10 +5,10 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block0, body: block2},
// CHECK:STDOUT: {name: str1, param_refs: block4, body: block5},
// CHECK:STDOUT: {name: str3, param_refs: block7, body: block8},
// CHECK:STDOUT: {name: str5, param_refs: block0, body: block9},
// CHECK:STDOUT: {name: str0, param_refs: block0, body: {block2}}},
// CHECK:STDOUT: {name: str1, param_refs: block4, body: {block5}}},
// CHECK:STDOUT: {name: str3, param_refs: block7, body: {block8}}},
// CHECK:STDOUT: {name: str5, param_refs: block0, body: {block9}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: {block4}}},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: {block5}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block0, return_type: type0, body: block2},
// CHECK:STDOUT: {name: str1, param_refs: block0, body: block3},
// CHECK:STDOUT: {name: str0, param_refs: block0, return_type: type0, body: {block2}}},
// CHECK:STDOUT: {name: str1, param_refs: block0, body: {block3}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
+2 -2
View File
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type0, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type0, body: {block4}}},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: {block5}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str4, param_refs: block0, body: block5},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: {block4}}},
// CHECK:STDOUT: {name: str4, param_refs: block0, body: {block5}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: {block4}}},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: {block5}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: block5},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: {block4}}},
// CHECK:STDOUT: {name: str2, param_refs: block0, body: {block5}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str3, param_refs: block0, body: block5},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: {block4}}},
// CHECK:STDOUT: {name: str3, param_refs: block0, body: {block5}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block2, body: block4},
// CHECK:STDOUT: {name: str3, param_refs: block0, body: block5},
// CHECK:STDOUT: {name: str0, param_refs: block2, body: {block4}}},
// CHECK:STDOUT: {name: str3, param_refs: block0, body: {block5}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 1,
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: functions: [
// CHECK:STDOUT: {name: str0, param_refs: block0, body: block2},
// CHECK:STDOUT: {name: str1, param_refs: block0, body: block3},
// CHECK:STDOUT: {name: str0, param_refs: block0, body: {block2}}},
// CHECK:STDOUT: {name: str1, param_refs: block0, body: {block3}}},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]