summaryrefslogtreecommitdiff
path: root/test/example/c-api-relooper-unreachable-if.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/example/c-api-relooper-unreachable-if.cpp')
-rw-r--r--test/example/c-api-relooper-unreachable-if.cpp359
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");