diff options
Diffstat (limited to 'test/example/c-api-relooper-unreachable-if.cpp')
-rw-r--r-- | test/example/c-api-relooper-unreachable-if.cpp | 359 |
1 files changed, 247 insertions, 112 deletions
diff --git a/test/example/c-api-relooper-unreachable-if.cpp b/test/example/c-api-relooper-unreachable-if.cpp index 5f7b2e874..1b4b2a1b7 100644 --- a/test/example/c-api-relooper-unreachable-if.cpp +++ b/test/example/c-api-relooper-unreachable-if.cpp @@ -20,9 +20,10 @@ int main() { BinaryenSetMemory(the_module, 256, 256, "memory", segments, segmentPassive, segmentOffsets, segmentSizes, 0, 0); } the_relooper = RelooperCreate(the_module); - expressions[1] = BinaryenLocalGet(the_module, 0, 1); + expressions[1] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[2] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[3] = BinaryenStore(the_module, 4, 0, 0, expressions[2], expressions[1], 1); + expressions[3] = BinaryenStore( + the_module, 4, 0, 0, expressions[2], expressions[1], BinaryenTypeInt32()); expressions[4] = BinaryenReturn(the_module, expressions[0]); { BinaryenExpressionRef children[] = { expressions[3], expressions[4] }; @@ -30,7 +31,7 @@ int main() { } relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[5]); { - BinaryenType paramTypes[] = { 0 }; + BinaryenType paramTypes[] = {BinaryenTypeNone()}; functionTypes[0] = BinaryenAddFunctionType(the_module, "rustfn-0-40", 0, paramTypes, 0); } expressions[6] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -40,14 +41,16 @@ int main() { RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]); expressions[9] = RelooperRenderAndDispose(the_relooper, relooperBlocks[1], 1); { - BinaryenType varTypes[] = { 1, 1, 2 }; + BinaryenType varTypes[] = { + BinaryenTypeInt32(), BinaryenTypeInt32(), BinaryenTypeInt64()}; functions[0] = BinaryenAddFunction(the_module, "tinycore::eh_personality", functionTypes[0], varTypes, 3, expressions[9]); } BinaryenAddFunctionExport(the_module, "tinycore::eh_personality", "tinycore::eh_personality"); the_relooper = RelooperCreate(the_module); - expressions[10] = BinaryenLocalGet(the_module, 0, 1); + expressions[10] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[11] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[12] = BinaryenStore(the_module, 4, 0, 0, expressions[11], expressions[10], 1); + expressions[12] = BinaryenStore( + the_module, 4, 0, 0, expressions[11], expressions[10], BinaryenTypeInt32()); expressions[13] = BinaryenReturn(the_module, expressions[0]); { BinaryenExpressionRef children[] = { expressions[12], expressions[13] }; @@ -61,7 +64,8 @@ int main() { RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]); expressions[18] = RelooperRenderAndDispose(the_relooper, relooperBlocks[1], 1); { - BinaryenType varTypes[] = { 1, 1, 2 }; + BinaryenType varTypes[] = { + BinaryenTypeInt32(), BinaryenTypeInt32(), BinaryenTypeInt64()}; functions[1] = BinaryenAddFunction(the_module, "tinycore::eh_unwind_resume", functionTypes[0], varTypes, 3, expressions[18]); } BinaryenAddFunctionExport(the_module, "tinycore::eh_unwind_resume", "tinycore::eh_unwind_resume"); @@ -79,7 +83,7 @@ int main() { RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]); RelooperAddBranch(relooperBlocks[1], relooperBlocks[1], expressions[0], expressions[0]); { - BinaryenType paramTypes[] = { 0 }; + BinaryenType paramTypes[] = {BinaryenTypeNone()}; functionTypes[1] = BinaryenAddFunctionType(the_module, "rustfn-0-42", 0, paramTypes, 0); } expressions[21] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -89,14 +93,16 @@ int main() { RelooperAddBranch(relooperBlocks[2], relooperBlocks[0], expressions[0], expressions[0]); expressions[24] = RelooperRenderAndDispose(the_relooper, relooperBlocks[2], 1); { - BinaryenType varTypes[] = { 1, 1, 2 }; + BinaryenType varTypes[] = { + BinaryenTypeInt32(), BinaryenTypeInt32(), BinaryenTypeInt64()}; functions[2] = BinaryenAddFunction(the_module, "tinycore::panic_fmt", functionTypes[1], varTypes, 3, expressions[24]); } BinaryenAddFunctionExport(the_module, "tinycore::panic_fmt", "tinycore::panic_fmt"); the_relooper = RelooperCreate(the_module); - expressions[25] = BinaryenLocalGet(the_module, 0, 1); + expressions[25] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[26] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[27] = BinaryenStore(the_module, 4, 0, 0, expressions[26], expressions[25], 1); + expressions[27] = BinaryenStore( + the_module, 4, 0, 0, expressions[26], expressions[25], BinaryenTypeInt32()); expressions[28] = BinaryenReturn(the_module, expressions[0]); { BinaryenExpressionRef children[] = { expressions[27], expressions[28] }; @@ -110,14 +116,16 @@ int main() { RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]); expressions[33] = RelooperRenderAndDispose(the_relooper, relooperBlocks[1], 1); { - BinaryenType varTypes[] = { 1, 1, 2 }; + BinaryenType varTypes[] = { + BinaryenTypeInt32(), BinaryenTypeInt32(), BinaryenTypeInt64()}; functions[3] = BinaryenAddFunction(the_module, "tinycore::rust_eh_register_frames", functionTypes[0], varTypes, 3, expressions[33]); } BinaryenAddFunctionExport(the_module, "tinycore::rust_eh_register_frames", "tinycore::rust_eh_register_frames"); the_relooper = RelooperCreate(the_module); - expressions[34] = BinaryenLocalGet(the_module, 0, 1); + expressions[34] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[35] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[36] = BinaryenStore(the_module, 4, 0, 0, expressions[35], expressions[34], 1); + expressions[36] = BinaryenStore( + the_module, 4, 0, 0, expressions[35], expressions[34], BinaryenTypeInt32()); expressions[37] = BinaryenReturn(the_module, expressions[0]); { BinaryenExpressionRef children[] = { expressions[36], expressions[37] }; @@ -131,21 +139,22 @@ int main() { RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]); expressions[42] = RelooperRenderAndDispose(the_relooper, relooperBlocks[1], 1); { - BinaryenType varTypes[] = { 1, 1, 2 }; + BinaryenType varTypes[] = { + BinaryenTypeInt32(), BinaryenTypeInt32(), BinaryenTypeInt64()}; functions[4] = BinaryenAddFunction(the_module, "tinycore::rust_eh_unregister_frames", functionTypes[0], varTypes, 3, expressions[42]); } BinaryenAddFunctionExport(the_module, "tinycore::rust_eh_unregister_frames", "tinycore::rust_eh_unregister_frames"); the_relooper = RelooperCreate(the_module); - expressions[43] = BinaryenLocalGet(the_module, 0, 1); + expressions[43] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[44] = BinaryenLocalSet(the_module, 1, expressions[43]); - expressions[45] = BinaryenLocalGet(the_module, 1, 1); + expressions[45] = BinaryenLocalGet(the_module, 1, BinaryenTypeInt32()); expressions[46] = BinaryenLocalSet(the_module, 2, expressions[45]); { - BinaryenType paramTypes[] = { 1 }; + BinaryenType paramTypes[] = {BinaryenTypeInt32()}; functionTypes[2] = BinaryenAddFunctionType(the_module, "print_i32", 0, paramTypes, 1); } BinaryenAddFunctionImport(the_module, "print_i32", "spectest", "print", functionTypes[2]); - expressions[47] = BinaryenLocalGet(the_module, 2, 1); + expressions[47] = BinaryenLocalGet(the_module, 2, BinaryenTypeInt32()); { BinaryenExpressionRef operands[] = { expressions[47] }; expressions[48] = BinaryenCall(the_module, "print_i32", operands, 1, 0); @@ -155,9 +164,10 @@ int main() { expressions[49] = BinaryenBlock(the_module, "bb0", children, 3, BinaryenTypeAuto()); } relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[49]); - expressions[50] = BinaryenLocalGet(the_module, 3, 1); + expressions[50] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt32()); expressions[51] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[52] = BinaryenStore(the_module, 4, 0, 0, expressions[51], expressions[50], 1); + expressions[52] = BinaryenStore( + the_module, 4, 0, 0, expressions[51], expressions[50], BinaryenTypeInt32()); expressions[53] = BinaryenReturn(the_module, expressions[0]); { BinaryenExpressionRef children[] = { expressions[52], expressions[53] }; @@ -166,7 +176,7 @@ int main() { relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[54]); RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]); { - BinaryenType paramTypes[] = { 1 }; + BinaryenType paramTypes[] = {BinaryenTypeInt32()}; functionTypes[3] = BinaryenAddFunctionType(the_module, "rustfn-0-49", 0, paramTypes, 1); } expressions[55] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -176,25 +186,29 @@ int main() { RelooperAddBranch(relooperBlocks[2], relooperBlocks[0], expressions[0], expressions[0]); expressions[58] = RelooperRenderAndDispose(the_relooper, relooperBlocks[2], 4); { - BinaryenType varTypes[] = { 1, 1, 1, 1, 2 }; + BinaryenType varTypes[] = {BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt64()}; functions[5] = BinaryenAddFunction(the_module, "wasm::print_i32", functionTypes[3], varTypes, 5, expressions[58]); } BinaryenAddFunctionExport(the_module, "wasm::print_i32", "wasm::print_i32"); the_relooper = RelooperCreate(the_module); expressions[59] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); expressions[60] = BinaryenLocalSet(the_module, 0, expressions[59]); - expressions[61] = BinaryenLocalGet(the_module, 0, 1); + expressions[61] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[62] = BinaryenLocalSet(the_module, 2, expressions[61]); - expressions[63] = BinaryenLocalGet(the_module, 2, 1); + expressions[63] = BinaryenLocalGet(the_module, 2, BinaryenTypeInt32()); expressions[64] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); expressions[65] = BinaryenUnary(the_module, 22, expressions[63]); expressions[66] = BinaryenUnary(the_module, 22, expressions[64]); expressions[67] = BinaryenBinary(the_module, 25, expressions[65], expressions[66]); expressions[68] = BinaryenLocalSet(the_module, 8, expressions[67]); - expressions[69] = BinaryenLocalGet(the_module, 8, 2); + expressions[69] = BinaryenLocalGet(the_module, 8, BinaryenTypeInt64()); expressions[70] = BinaryenUnary(the_module, 24, expressions[69]); expressions[71] = BinaryenConst(the_module, BinaryenLiteralInt64(32)); - expressions[72] = BinaryenLocalGet(the_module, 8, 2); + expressions[72] = BinaryenLocalGet(the_module, 8, BinaryenTypeInt64()); expressions[73] = BinaryenBinary(the_module, 36, expressions[72], expressions[71]); expressions[74] = BinaryenUnary(the_module, 24, expressions[73]); expressions[75] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -202,40 +216,44 @@ int main() { expressions[77] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); expressions[78] = BinaryenBinary(the_module, 1, expressions[76], expressions[77]); expressions[79] = BinaryenLocalTee(the_module, 3, expressions[78]); - expressions[80] = BinaryenStore(the_module, 4, 0, 0, expressions[75], expressions[79], 1); - expressions[81] = BinaryenLocalGet(the_module, 3, 1); - expressions[82] = BinaryenStore(the_module, 4, 0, 0, expressions[81], expressions[70], 1); - expressions[83] = BinaryenStore(the_module, 4, 4, 0, expressions[81], expressions[74], 1); + expressions[80] = BinaryenStore( + the_module, 4, 0, 0, expressions[75], expressions[79], BinaryenTypeInt32()); + expressions[81] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt32()); + expressions[82] = BinaryenStore( + the_module, 4, 0, 0, expressions[81], expressions[70], BinaryenTypeInt32()); + expressions[83] = BinaryenStore( + the_module, 4, 4, 0, expressions[81], expressions[74], BinaryenTypeInt32()); { BinaryenExpressionRef children[] = { expressions[60], expressions[62], expressions[68], expressions[80], expressions[82], expressions[83] }; expressions[84] = BinaryenBlock(the_module, "bb0", children, 6, BinaryenTypeAuto()); } relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[84]); - expressions[85] = BinaryenLocalGet(the_module, 3, 1); + expressions[85] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt32()); expressions[86] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[85]); expressions[87] = BinaryenLocalSet(the_module, 1, expressions[86]); - expressions[88] = BinaryenLocalGet(the_module, 1, 1); + expressions[88] = BinaryenLocalGet(the_module, 1, BinaryenTypeInt32()); expressions[89] = BinaryenLocalSet(the_module, 4, expressions[88]); - expressions[90] = BinaryenLocalGet(the_module, 4, 1); + expressions[90] = BinaryenLocalGet(the_module, 4, BinaryenTypeInt32()); expressions[91] = BinaryenLocalSet(the_module, 5, expressions[90]); - expressions[92] = BinaryenLocalGet(the_module, 6, 1); + expressions[92] = BinaryenLocalGet(the_module, 6, BinaryenTypeInt32()); expressions[93] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[94] = BinaryenStore(the_module, 4, 0, 0, expressions[93], expressions[92], 1); - expressions[95] = BinaryenLocalGet(the_module, 5, 1); + expressions[94] = BinaryenStore( + the_module, 4, 0, 0, expressions[93], expressions[92], BinaryenTypeInt32()); + expressions[95] = BinaryenLocalGet(the_module, 5, BinaryenTypeInt32()); expressions[96] = BinaryenReturn(the_module, expressions[95]); { BinaryenExpressionRef children[] = { expressions[87], expressions[89], expressions[91], expressions[94], expressions[96] }; expressions[97] = BinaryenBlock(the_module, "bb1", children, 5, BinaryenTypeAuto()); } relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[97]); - expressions[98] = BinaryenLocalGet(the_module, 3, 1); + expressions[98] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt32()); expressions[99] = BinaryenLoad(the_module, 4, 0, 8, 0, 1, expressions[98]); RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[99], expressions[0]); expressions[100] = BinaryenUnreachable(the_module); relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[100]); RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]); { - BinaryenType paramTypes[] = { 0 }; + BinaryenType paramTypes[] = {BinaryenTypeNone()}; functionTypes[4] = BinaryenAddFunctionType(the_module, "rustfn-0-54", 1, paramTypes, 0); } expressions[101] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -245,12 +263,20 @@ int main() { RelooperAddBranch(relooperBlocks[3], relooperBlocks[0], expressions[0], expressions[0]); expressions[104] = RelooperRenderAndDispose(the_relooper, relooperBlocks[3], 7); { - BinaryenType varTypes[] = { 1, 1, 1, 1, 1, 1, 1, 1, 2 }; + BinaryenType varTypes[] = {BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt64()}; functions[6] = BinaryenAddFunction(the_module, "real_main", functionTypes[4], varTypes, 9, expressions[104]); } BinaryenAddFunctionExport(the_module, "real_main", "real_main"); the_relooper = RelooperCreate(the_module); - expressions[105] = BinaryenLocalGet(the_module, 0, 1); + expressions[105] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[106] = BinaryenLocalSet(the_module, 2, expressions[105]); { BinaryenExpressionRef operands[] = { 0 }; @@ -262,16 +288,16 @@ int main() { expressions[109] = BinaryenBlock(the_module, "bb0", children, 2, BinaryenTypeAuto()); } relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[109]); - expressions[110] = BinaryenLocalGet(the_module, 4, 1); + expressions[110] = BinaryenLocalGet(the_module, 4, BinaryenTypeInt32()); expressions[111] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); expressions[112] = BinaryenUnary(the_module, 22, expressions[110]); expressions[113] = BinaryenUnary(the_module, 22, expressions[111]); expressions[114] = BinaryenBinary(the_module, 25, expressions[112], expressions[113]); expressions[115] = BinaryenLocalSet(the_module, 11, expressions[114]); - expressions[116] = BinaryenLocalGet(the_module, 11, 2); + expressions[116] = BinaryenLocalGet(the_module, 11, BinaryenTypeInt64()); expressions[117] = BinaryenUnary(the_module, 24, expressions[116]); expressions[118] = BinaryenConst(the_module, BinaryenLiteralInt64(32)); - expressions[119] = BinaryenLocalGet(the_module, 11, 2); + expressions[119] = BinaryenLocalGet(the_module, 11, BinaryenTypeInt64()); expressions[120] = BinaryenBinary(the_module, 36, expressions[119], expressions[118]); expressions[121] = BinaryenUnary(the_module, 24, expressions[120]); expressions[122] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -279,21 +305,39 @@ int main() { expressions[124] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); expressions[125] = BinaryenBinary(the_module, 1, expressions[123], expressions[124]); expressions[126] = BinaryenLocalTee(the_module, 5, expressions[125]); - expressions[127] = BinaryenStore(the_module, 4, 0, 0, expressions[122], expressions[126], 1); - expressions[128] = BinaryenLocalGet(the_module, 5, 1); - expressions[129] = BinaryenStore(the_module, 4, 0, 0, expressions[128], expressions[117], 1); - expressions[130] = BinaryenStore(the_module, 4, 4, 0, expressions[128], expressions[121], 1); + expressions[127] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[122], + expressions[126], + BinaryenTypeInt32()); + expressions[128] = BinaryenLocalGet(the_module, 5, BinaryenTypeInt32()); + expressions[129] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[128], + expressions[117], + BinaryenTypeInt32()); + expressions[130] = BinaryenStore(the_module, + 4, + 4, + 0, + expressions[128], + expressions[121], + BinaryenTypeInt32()); { BinaryenExpressionRef children[] = { expressions[115], expressions[127], expressions[129], expressions[130] }; expressions[131] = BinaryenBlock(the_module, "bb1", children, 4, BinaryenTypeAuto()); } relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[131]); - expressions[132] = BinaryenLocalGet(the_module, 5, 1); + expressions[132] = BinaryenLocalGet(the_module, 5, BinaryenTypeInt32()); expressions[133] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[132]); expressions[134] = BinaryenLocalSet(the_module, 3, expressions[133]); - expressions[135] = BinaryenLocalGet(the_module, 3, 1); + expressions[135] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt32()); expressions[136] = BinaryenLocalSet(the_module, 6, expressions[135]); - expressions[137] = BinaryenLocalGet(the_module, 6, 1); + expressions[137] = BinaryenLocalGet(the_module, 6, BinaryenTypeInt32()); { BinaryenExpressionRef operands[] = { expressions[137] }; expressions[138] = BinaryenCall(the_module, "wasm::print_i32", operands, 1, 0); @@ -303,14 +347,20 @@ int main() { expressions[139] = BinaryenBlock(the_module, "bb2", children, 3, BinaryenTypeAuto()); } relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[139]); - expressions[140] = BinaryenLocalGet(the_module, 3, 1); + expressions[140] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt32()); expressions[141] = BinaryenLocalSet(the_module, 7, expressions[140]); - expressions[142] = BinaryenLocalGet(the_module, 7, 1); + expressions[142] = BinaryenLocalGet(the_module, 7, BinaryenTypeInt32()); expressions[143] = BinaryenLocalSet(the_module, 8, expressions[142]); - expressions[144] = BinaryenLocalGet(the_module, 9, 1); + expressions[144] = BinaryenLocalGet(the_module, 9, BinaryenTypeInt32()); expressions[145] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[146] = BinaryenStore(the_module, 4, 0, 0, expressions[145], expressions[144], 1); - expressions[147] = BinaryenLocalGet(the_module, 8, 1); + expressions[146] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[145], + expressions[144], + BinaryenTypeInt32()); + expressions[147] = BinaryenLocalGet(the_module, 8, BinaryenTypeInt32()); expressions[148] = BinaryenReturn(the_module, expressions[147]); { BinaryenExpressionRef children[] = { expressions[141], expressions[143], expressions[146], expressions[148] }; @@ -318,7 +368,7 @@ int main() { } relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[149]); RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]); - expressions[150] = BinaryenLocalGet(the_module, 5, 1); + expressions[150] = BinaryenLocalGet(the_module, 5, BinaryenTypeInt32()); expressions[151] = BinaryenLoad(the_module, 4, 0, 8, 0, 1, expressions[150]); RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[151], expressions[0]); expressions[152] = BinaryenUnreachable(the_module); @@ -326,7 +376,7 @@ int main() { RelooperAddBranch(relooperBlocks[1], relooperBlocks[4], expressions[0], expressions[0]); RelooperAddBranch(relooperBlocks[2], relooperBlocks[3], expressions[0], expressions[0]); { - BinaryenType paramTypes[] = { 1, 1 }; + BinaryenType paramTypes[] = {BinaryenTypeInt32(), BinaryenTypeInt32()}; functionTypes[5] = BinaryenAddFunctionType(the_module, "rustfn-0-57", 1, paramTypes, 2); } expressions[153] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -336,12 +386,21 @@ int main() { RelooperAddBranch(relooperBlocks[5], relooperBlocks[0], expressions[0], expressions[0]); expressions[156] = RelooperRenderAndDispose(the_relooper, relooperBlocks[5], 10); { - BinaryenType varTypes[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 }; + BinaryenType varTypes[] = {BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt64()}; functions[7] = BinaryenAddFunction(the_module, "main", functionTypes[5], varTypes, 10, expressions[156]); } BinaryenAddFunctionExport(the_module, "main", "main"); { - BinaryenType paramTypes[] = { 0 }; + BinaryenType paramTypes[] = {BinaryenTypeNone()}; functionTypes[6] = BinaryenAddFunctionType(the_module, "__wasm_start", 0, paramTypes, 0); } { @@ -353,12 +412,19 @@ int main() { } expressions[157] = BinaryenConst(the_module, BinaryenLiteralInt32(65535)); expressions[158] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[159] = BinaryenStore(the_module, 4, 0, 0, expressions[158], expressions[157], 1); + expressions[159] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[158], + expressions[157], + BinaryenTypeInt32()); expressions[160] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); expressions[161] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); { BinaryenExpressionRef operands[] = { expressions[160], expressions[161] }; - expressions[162] = BinaryenCall(the_module, "main", operands, 2, 1); + expressions[162] = + BinaryenCall(the_module, "main", operands, 2, BinaryenTypeInt32()); } expressions[163] = BinaryenDrop(the_module, expressions[162]); { @@ -367,29 +433,29 @@ int main() { } BinaryenAddFunctionExport(the_module, "__wasm_start", "rust_entry"); { - BinaryenType varTypes[] = { 0 }; + BinaryenType varTypes[] = {BinaryenTypeNone()}; functions[8] = BinaryenAddFunction(the_module, "__wasm_start", functionTypes[6], varTypes, 0, expressions[164]); } BinaryenSetStart(the_module, functions[8]); the_relooper = RelooperCreate(the_module); - expressions[165] = BinaryenLocalGet(the_module, 0, 1); + expressions[165] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[166] = BinaryenLocalSet(the_module, 2, expressions[165]); - expressions[167] = BinaryenLocalGet(the_module, 1, 1); + expressions[167] = BinaryenLocalGet(the_module, 1, BinaryenTypeInt32()); expressions[168] = BinaryenLocalSet(the_module, 3, expressions[167]); - expressions[169] = BinaryenLocalGet(the_module, 2, 1); + expressions[169] = BinaryenLocalGet(the_module, 2, BinaryenTypeInt32()); expressions[170] = BinaryenLocalSet(the_module, 4, expressions[169]); - expressions[171] = BinaryenLocalGet(the_module, 3, 1); + expressions[171] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt32()); expressions[172] = BinaryenLocalSet(the_module, 5, expressions[171]); - expressions[173] = BinaryenLocalGet(the_module, 4, 1); - expressions[174] = BinaryenLocalGet(the_module, 5, 1); + expressions[173] = BinaryenLocalGet(the_module, 4, BinaryenTypeInt32()); + expressions[174] = BinaryenLocalGet(the_module, 5, BinaryenTypeInt32()); expressions[175] = BinaryenUnary(the_module, 22, expressions[173]); expressions[176] = BinaryenUnary(the_module, 22, expressions[174]); expressions[177] = BinaryenBinary(the_module, 25, expressions[175], expressions[176]); expressions[178] = BinaryenLocalSet(the_module, 10, expressions[177]); - expressions[179] = BinaryenLocalGet(the_module, 10, 2); + expressions[179] = BinaryenLocalGet(the_module, 10, BinaryenTypeInt64()); expressions[180] = BinaryenUnary(the_module, 24, expressions[179]); expressions[181] = BinaryenConst(the_module, BinaryenLiteralInt64(32)); - expressions[182] = BinaryenLocalGet(the_module, 10, 2); + expressions[182] = BinaryenLocalGet(the_module, 10, BinaryenTypeInt64()); expressions[183] = BinaryenBinary(the_module, 36, expressions[182], expressions[181]); expressions[184] = BinaryenUnary(the_module, 24, expressions[183]); expressions[185] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -397,36 +463,60 @@ int main() { expressions[187] = BinaryenConst(the_module, BinaryenLiteralInt32(128)); expressions[188] = BinaryenBinary(the_module, 1, expressions[186], expressions[187]); expressions[189] = BinaryenLocalTee(the_module, 6, expressions[188]); - expressions[190] = BinaryenStore(the_module, 4, 0, 0, expressions[185], expressions[189], 1); - expressions[191] = BinaryenLocalGet(the_module, 6, 1); - expressions[192] = BinaryenStore(the_module, 4, 0, 0, expressions[191], expressions[180], 1); - expressions[193] = BinaryenStore(the_module, 4, 4, 0, expressions[191], expressions[184], 1); + expressions[190] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[185], + expressions[189], + BinaryenTypeInt32()); + expressions[191] = BinaryenLocalGet(the_module, 6, BinaryenTypeInt32()); + expressions[192] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[191], + expressions[180], + BinaryenTypeInt32()); + expressions[193] = BinaryenStore(the_module, + 4, + 4, + 0, + expressions[191], + expressions[184], + BinaryenTypeInt32()); { BinaryenExpressionRef children[] = { expressions[166], expressions[168], expressions[170], expressions[172], expressions[178], expressions[190], expressions[192], expressions[193] }; expressions[194] = BinaryenBlock(the_module, "bb0", children, 8, BinaryenTypeAuto()); } relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[194]); - expressions[195] = BinaryenLocalGet(the_module, 6, 1); + expressions[195] = BinaryenLocalGet(the_module, 6, BinaryenTypeInt32()); expressions[196] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[195]); expressions[197] = BinaryenLocalSet(the_module, 7, expressions[196]); - expressions[198] = BinaryenLocalGet(the_module, 8, 1); + expressions[198] = BinaryenLocalGet(the_module, 8, BinaryenTypeInt32()); expressions[199] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[200] = BinaryenStore(the_module, 4, 0, 0, expressions[199], expressions[198], 1); - expressions[201] = BinaryenLocalGet(the_module, 7, 1); + expressions[200] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[199], + expressions[198], + BinaryenTypeInt32()); + expressions[201] = BinaryenLocalGet(the_module, 7, BinaryenTypeInt32()); expressions[202] = BinaryenReturn(the_module, expressions[201]); { BinaryenExpressionRef children[] = { expressions[197], expressions[200], expressions[202] }; expressions[203] = BinaryenBlock(the_module, "bb1", children, 3, BinaryenTypeAuto()); } relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[203]); - expressions[204] = BinaryenLocalGet(the_module, 6, 1); + expressions[204] = BinaryenLocalGet(the_module, 6, BinaryenTypeInt32()); expressions[205] = BinaryenLoad(the_module, 4, 0, 8, 0, 1, expressions[204]); RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[205], expressions[0]); expressions[206] = BinaryenUnreachable(the_module); relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[206]); RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]); { - BinaryenType paramTypes[] = { 1, 1 }; + BinaryenType paramTypes[] = {BinaryenTypeInt32(), BinaryenTypeInt32()}; functionTypes[7] = BinaryenAddFunctionType(the_module, "rustfn-0-13", 1, paramTypes, 2); } expressions[207] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -436,22 +526,36 @@ int main() { RelooperAddBranch(relooperBlocks[3], relooperBlocks[0], expressions[0], expressions[0]); expressions[210] = RelooperRenderAndDispose(the_relooper, relooperBlocks[3], 9); { - BinaryenType varTypes[] = { 1, 1, 1, 1, 1, 1, 1, 1, 2 }; + BinaryenType varTypes[] = {BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt64()}; functions[9] = BinaryenAddFunction(the_module, "_isize_as_tinycore::Add_::add", functionTypes[7], varTypes, 9, expressions[210]); } BinaryenAddFunctionExport(the_module, "_isize_as_tinycore::Add_::add", "_isize_as_tinycore::Add_::add"); the_relooper = RelooperCreate(the_module); - expressions[211] = BinaryenLocalGet(the_module, 0, 1); + expressions[211] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[212] = BinaryenLocalSet(the_module, 1, expressions[211]); - expressions[213] = BinaryenLocalGet(the_module, 1, 1); + expressions[213] = BinaryenLocalGet(the_module, 1, BinaryenTypeInt32()); expressions[214] = BinaryenLocalSet(the_module, 2, expressions[213]); - expressions[215] = BinaryenLocalGet(the_module, 2, 1); + expressions[215] = BinaryenLocalGet(the_module, 2, BinaryenTypeInt32()); expressions[216] = BinaryenUnary(the_module, 20, expressions[215]); expressions[217] = BinaryenLocalSet(the_module, 3, expressions[216]); - expressions[218] = BinaryenLocalGet(the_module, 4, 1); + expressions[218] = BinaryenLocalGet(the_module, 4, BinaryenTypeInt32()); expressions[219] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[220] = BinaryenStore(the_module, 4, 0, 0, expressions[219], expressions[218], 1); - expressions[221] = BinaryenLocalGet(the_module, 3, 1); + expressions[220] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[219], + expressions[218], + BinaryenTypeInt32()); + expressions[221] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt32()); expressions[222] = BinaryenReturn(the_module, expressions[221]); { BinaryenExpressionRef children[] = { expressions[212], expressions[214], expressions[217], expressions[220], expressions[222] }; @@ -459,7 +563,7 @@ int main() { } relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[223]); { - BinaryenType paramTypes[] = { 1 }; + BinaryenType paramTypes[] = {BinaryenTypeInt32()}; functionTypes[8] = BinaryenAddFunctionType(the_module, "rustfn-0-22", 1, paramTypes, 1); } expressions[224] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -469,27 +573,38 @@ int main() { RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]); expressions[227] = RelooperRenderAndDispose(the_relooper, relooperBlocks[1], 5); { - BinaryenType varTypes[] = { 1, 1, 1, 1, 1, 2 }; + BinaryenType varTypes[] = {BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt64()}; functions[10] = BinaryenAddFunction(the_module, "_bool_as_tinycore::Not_::not", functionTypes[8], varTypes, 6, expressions[227]); } BinaryenAddFunctionExport(the_module, "_bool_as_tinycore::Not_::not", "_bool_as_tinycore::Not_::not"); the_relooper = RelooperCreate(the_module); - expressions[228] = BinaryenLocalGet(the_module, 0, 1); + expressions[228] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[229] = BinaryenLocalSet(the_module, 2, expressions[228]); - expressions[230] = BinaryenLocalGet(the_module, 1, 1); + expressions[230] = BinaryenLocalGet(the_module, 1, BinaryenTypeInt32()); expressions[231] = BinaryenLocalSet(the_module, 3, expressions[230]); - expressions[232] = BinaryenLocalGet(the_module, 2, 1); + expressions[232] = BinaryenLocalGet(the_module, 2, BinaryenTypeInt32()); expressions[233] = BinaryenLocalSet(the_module, 4, expressions[232]); - expressions[234] = BinaryenLocalGet(the_module, 3, 1); + expressions[234] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt32()); expressions[235] = BinaryenLocalSet(the_module, 5, expressions[234]); - expressions[236] = BinaryenLocalGet(the_module, 4, 1); - expressions[237] = BinaryenLocalGet(the_module, 5, 1); + expressions[236] = BinaryenLocalGet(the_module, 4, BinaryenTypeInt32()); + expressions[237] = BinaryenLocalGet(the_module, 5, BinaryenTypeInt32()); expressions[238] = BinaryenBinary(the_module, 15, expressions[236], expressions[237]); expressions[239] = BinaryenLocalSet(the_module, 6, expressions[238]); - expressions[240] = BinaryenLocalGet(the_module, 7, 1); + expressions[240] = BinaryenLocalGet(the_module, 7, BinaryenTypeInt32()); expressions[241] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[242] = BinaryenStore(the_module, 4, 0, 0, expressions[241], expressions[240], 1); - expressions[243] = BinaryenLocalGet(the_module, 6, 1); + expressions[242] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[241], + expressions[240], + BinaryenTypeInt32()); + expressions[243] = BinaryenLocalGet(the_module, 6, BinaryenTypeInt32()); expressions[244] = BinaryenReturn(the_module, expressions[243]); { BinaryenExpressionRef children[] = { expressions[229], expressions[231], expressions[233], expressions[235], expressions[239], expressions[242], expressions[244] }; @@ -497,7 +612,7 @@ int main() { } relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[245]); { - BinaryenType paramTypes[] = { 1, 1 }; + BinaryenType paramTypes[] = {BinaryenTypeInt32(), BinaryenTypeInt32()}; functionTypes[9] = BinaryenAddFunctionType(the_module, "rustfn-0-33", 1, paramTypes, 2); } expressions[246] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -507,27 +622,40 @@ int main() { RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]); expressions[249] = RelooperRenderAndDispose(the_relooper, relooperBlocks[1], 8); { - BinaryenType varTypes[] = { 1, 1, 1, 1, 1, 1, 1, 2 }; + BinaryenType varTypes[] = {BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt64()}; functions[11] = BinaryenAddFunction(the_module, "_i16_as_tinycore::PartialEq_::eq", functionTypes[9], varTypes, 8, expressions[249]); } BinaryenAddFunctionExport(the_module, "_i16_as_tinycore::PartialEq_::eq", "_i16_as_tinycore::PartialEq_::eq"); the_relooper = RelooperCreate(the_module); - expressions[250] = BinaryenLocalGet(the_module, 0, 1); + expressions[250] = BinaryenLocalGet(the_module, 0, BinaryenTypeInt32()); expressions[251] = BinaryenLocalSet(the_module, 2, expressions[250]); - expressions[252] = BinaryenLocalGet(the_module, 1, 1); + expressions[252] = BinaryenLocalGet(the_module, 1, BinaryenTypeInt32()); expressions[253] = BinaryenLocalSet(the_module, 3, expressions[252]); - expressions[254] = BinaryenLocalGet(the_module, 2, 2); + expressions[254] = BinaryenLocalGet(the_module, 2, BinaryenTypeInt64()); expressions[255] = BinaryenLocalSet(the_module, 4, expressions[254]); - expressions[256] = BinaryenLocalGet(the_module, 3, 2); + expressions[256] = BinaryenLocalGet(the_module, 3, BinaryenTypeInt64()); expressions[257] = BinaryenLocalSet(the_module, 5, expressions[256]); - expressions[258] = BinaryenLocalGet(the_module, 4, 2); - expressions[259] = BinaryenLocalGet(the_module, 5, 2); + expressions[258] = BinaryenLocalGet(the_module, 4, BinaryenTypeInt64()); + expressions[259] = BinaryenLocalGet(the_module, 5, BinaryenTypeInt64()); expressions[260] = BinaryenBinary(the_module, 40, expressions[258], expressions[259]); expressions[261] = BinaryenLocalSet(the_module, 6, expressions[260]); - expressions[262] = BinaryenLocalGet(the_module, 7, 1); + expressions[262] = BinaryenLocalGet(the_module, 7, BinaryenTypeInt32()); expressions[263] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); - expressions[264] = BinaryenStore(the_module, 4, 0, 0, expressions[263], expressions[262], 1); - expressions[265] = BinaryenLocalGet(the_module, 6, 1); + expressions[264] = BinaryenStore(the_module, + 4, + 0, + 0, + expressions[263], + expressions[262], + BinaryenTypeInt32()); + expressions[265] = BinaryenLocalGet(the_module, 6, BinaryenTypeInt32()); expressions[266] = BinaryenReturn(the_module, expressions[265]); { BinaryenExpressionRef children[] = { expressions[251], expressions[253], expressions[255], expressions[257], expressions[261], expressions[264], expressions[266] }; @@ -535,7 +663,7 @@ int main() { } relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[267]); { - BinaryenType paramTypes[] = { 1, 1 }; + BinaryenType paramTypes[] = {BinaryenTypeInt32(), BinaryenTypeInt32()}; functionTypes[10] = BinaryenAddFunctionType(the_module, "rustfn-0-37", 1, paramTypes, 2); } expressions[268] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); @@ -545,7 +673,14 @@ int main() { RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]); expressions[271] = RelooperRenderAndDispose(the_relooper, relooperBlocks[1], 8); { - BinaryenType varTypes[] = { 1, 1, 2, 2, 1, 1, 1, 2 }; + BinaryenType varTypes[] = {BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt64(), + BinaryenTypeInt64(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt32(), + BinaryenTypeInt64()}; functions[12] = BinaryenAddFunction(the_module, "_i64_as_tinycore::PartialEq_::eq", functionTypes[10], varTypes, 8, expressions[271]); } BinaryenAddFunctionExport(the_module, "_i64_as_tinycore::PartialEq_::eq", "_i64_as_tinycore::PartialEq_::eq"); |