diff --git a/test/cmdlineTests/combined_json_generated_sources/output b/test/cmdlineTests/combined_json_generated_sources/output index 9165832ca..6d02dd0e3 100644 --- a/test/cmdlineTests/combined_json_generated_sources/output +++ b/test/cmdlineTests/combined_json_generated_sources/output @@ -3,14 +3,139 @@ { "combined_json_generated_sources/input.sol:C": { - "generated-sources": [], + "generated-sources": + [ + { + "ast": + { + "nodeType": "YulBlock", + "src": "0:190:1", + "statements": + [ + { + "body": + { + "nodeType": "YulBlock", + "src": "35:152:1", + "statements": + [ + { + "expression": + { + "arguments": + [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "52:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "55:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": + { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "45:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "45:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "45:88:1" + }, + { + "expression": + { + "arguments": + [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "149:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "152:4:1", + "type": "", + "value": "0x02" + } + ], + "functionName": + { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "142:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "142:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "142:15:1" + }, + { + "expression": + { + "arguments": + [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "173:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "176:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": + { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "166:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "166:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "166:15:1" + } + ] + }, + "name": "panic_error_0x02", + "nodeType": "YulFunctionDefinition", + "src": "7:180:1" + } + ] + }, + "contents": "{\n\n function panic_error_0x02() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x02)\n revert(0, 0x24)\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], "generated-sources-runtime": [ { "ast": { "nodeType": "YulBlock", - "src": "0:1856:1", + "src": "0:2042:1", "statements": [ { @@ -700,7 +825,7 @@ "body": { "nodeType": "YulBlock", - "src": "1333:28:1", + "src": "1272:152:1", "statements": [ { @@ -711,14 +836,123 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1350:1:1", + "src": "1289:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1353:1:1", + "src": "1292:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": + { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1282:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1282:88:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1282:88:1" + }, + { + "expression": + { + "arguments": + [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1386:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1389:4:1", + "type": "", + "value": "0x02" + } + ], + "functionName": + { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1379:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1379:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1379:15:1" + }, + { + "expression": + { + "arguments": + [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1410:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1413:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": + { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1403:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "1403:15:1" + }, + "nodeType": "YulExpressionStatement", + "src": "1403:15:1" + } + ] + }, + "name": "panic_error_0x02", + "nodeType": "YulFunctionDefinition", + "src": "1244:180:1" + }, + { + "body": + { + "nodeType": "YulBlock", + "src": "1519:28:1", + "statements": + [ + { + "expression": + { + "arguments": + [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:1", "type": "", "value": "0" } @@ -727,25 +961,25 @@ { "name": "revert", "nodeType": "YulIdentifier", - "src": "1343:6:1" + "src": "1529:6:1" }, "nodeType": "YulFunctionCall", - "src": "1343:12:1" + "src": "1529:12:1" }, "nodeType": "YulExpressionStatement", - "src": "1343:12:1" + "src": "1529:12:1" } ] }, "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", "nodeType": "YulFunctionDefinition", - "src": "1244:117:1" + "src": "1430:117:1" }, { "body": { "nodeType": "YulBlock", - "src": "1456:28:1", + "src": "1642:28:1", "statements": [ { @@ -756,14 +990,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1473:1:1", + "src": "1659:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1476:1:1", + "src": "1662:1:1", "type": "", "value": "0" } @@ -772,25 +1006,25 @@ { "name": "revert", "nodeType": "YulIdentifier", - "src": "1466:6:1" + "src": "1652:6:1" }, "nodeType": "YulFunctionCall", - "src": "1466:12:1" + "src": "1652:12:1" }, "nodeType": "YulExpressionStatement", - "src": "1466:12:1" + "src": "1652:12:1" } ] }, "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nodeType": "YulFunctionDefinition", - "src": "1367:117:1" + "src": "1553:117:1" }, { "body": { "nodeType": "YulBlock", - "src": "1579:28:1", + "src": "1765:28:1", "statements": [ { @@ -801,14 +1035,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1596:1:1", + "src": "1782:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1599:1:1", + "src": "1785:1:1", "type": "", "value": "0" } @@ -817,25 +1051,25 @@ { "name": "revert", "nodeType": "YulIdentifier", - "src": "1589:6:1" + "src": "1775:6:1" }, "nodeType": "YulFunctionCall", - "src": "1589:12:1" + "src": "1775:12:1" }, "nodeType": "YulExpressionStatement", - "src": "1589:12:1" + "src": "1775:12:1" } ] }, "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", "nodeType": "YulFunctionDefinition", - "src": "1490:117:1" + "src": "1676:117:1" }, { "body": { "nodeType": "YulBlock", - "src": "1702:28:1", + "src": "1888:28:1", "statements": [ { @@ -846,14 +1080,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1719:1:1", + "src": "1905:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1722:1:1", + "src": "1908:1:1", "type": "", "value": "0" } @@ -862,25 +1096,25 @@ { "name": "revert", "nodeType": "YulIdentifier", - "src": "1712:6:1" + "src": "1898:6:1" }, "nodeType": "YulFunctionCall", - "src": "1712:12:1" + "src": "1898:12:1" }, "nodeType": "YulExpressionStatement", - "src": "1712:12:1" + "src": "1898:12:1" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", - "src": "1613:117:1" + "src": "1799:117:1" }, { "body": { "nodeType": "YulBlock", - "src": "1825:28:1", + "src": "2011:28:1", "statements": [ { @@ -891,14 +1125,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "1842:1:1", + "src": "2028:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "1845:1:1", + "src": "2031:1:1", "type": "", "value": "0" } @@ -907,23 +1141,23 @@ { "name": "revert", "nodeType": "YulIdentifier", - "src": "1835:6:1" + "src": "2021:6:1" }, "nodeType": "YulFunctionCall", - "src": "1835:12:1" + "src": "2021:12:1" }, "nodeType": "YulExpressionStatement", - "src": "1835:12:1" + "src": "2021:12:1" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", - "src": "1736:117:1" + "src": "1922:117:1" } ] }, - "contents": "{\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n}\n", + "contents": "{\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function panic_error_0x02() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x02)\n revert(0, 0x24)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" diff --git a/test/cmdlineTests/constant_optimizer_yul/output b/test/cmdlineTests/constant_optimizer_yul/output index 181a8105b..484cc2f38 100644 --- a/test/cmdlineTests/constant_optimizer_yul/output +++ b/test/cmdlineTests/constant_optimizer_yul/output @@ -10,7 +10,12 @@ object "C_12" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } sstore(0, shl(180, 1)) let _1 := datasize("C_12_deployed") codecopy(128, dataoffset("C_12_deployed"), _1) @@ -21,7 +26,12 @@ object "C_12" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } sstore(0, 0x1000000000000000000000000000000000000000000000) stop() } diff --git a/test/cmdlineTests/dup_opt_peephole/output b/test/cmdlineTests/dup_opt_peephole/output index fec862428..f5e676957 100644 --- a/test/cmdlineTests/dup_opt_peephole/output +++ b/test/cmdlineTests/dup_opt_peephole/output @@ -3,16 +3,35 @@ EVM assembly: /* "dup_opt_peephole/input.sol":0:111 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert + jumpi(tag_1, iszero(callvalue)) + tag_2 + tag_3 + jump // in +tag_2: tag_1: - pop + jump(tag_4) + /* "#utility.yul":7:187 */ +tag_3: + /* "#utility.yul":55:132 */ + 0x4e487b7100000000000000000000000000000000000000000000000000000000 + /* "#utility.yul":52:53 */ + 0x00 + /* "#utility.yul":45:133 */ + mstore + /* "#utility.yul":152:156 */ + 0x02 + /* "#utility.yul":149:150 */ + 0x04 + /* "#utility.yul":142:157 */ + mstore + /* "#utility.yul":176:180 */ + 0x24 + /* "#utility.yul":173:174 */ + 0x00 + /* "#utility.yul":166:181 */ + revert + /* "dup_opt_peephole/input.sol":0:111 contract C {... */ +tag_4: dataSize(sub_0) dup1 dataOffset(sub_0) @@ -25,16 +44,12 @@ stop sub_0: assembly { /* "dup_opt_peephole/input.sol":0:111 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_3 - jumpi - 0x00 - dup1 - revert + jumpi(tag_3, iszero(callvalue)) + tag_4 + tag_5 + jump // in + tag_4: tag_3: - pop /* "dup_opt_peephole/input.sol":74:75 0 */ 0x00 /* "dup_opt_peephole/input.sol":61:76 calldataload(0) */ @@ -49,6 +64,26 @@ sub_0: assembly { pop /* "dup_opt_peephole/input.sol":0:111 contract C {... */ stop + /* "#utility.yul":7:187 */ + tag_5: + /* "#utility.yul":55:132 */ + 0x4e487b7100000000000000000000000000000000000000000000000000000000 + /* "#utility.yul":52:53 */ + 0x00 + /* "#utility.yul":45:133 */ + mstore + /* "#utility.yul":152:156 */ + 0x02 + /* "#utility.yul":149:150 */ + 0x04 + /* "#utility.yul":142:157 */ + mstore + /* "#utility.yul":176:180 */ + 0x24 + /* "#utility.yul":173:174 */ + 0x00 + /* "#utility.yul":166:181 */ + revert auxdata: } diff --git a/test/cmdlineTests/exp_base_literal/output b/test/cmdlineTests/exp_base_literal/output index 14b1a616a..844e7aaa7 100644 --- a/test/cmdlineTests/exp_base_literal/output +++ b/test/cmdlineTests/exp_base_literal/output @@ -10,7 +10,9 @@ IR: object "C_81" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_81() @@ -27,8 +29,10 @@ object "C_81" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -45,7 +49,9 @@ object "C_81" { { // f(uint256,uint256,uint256,uint256) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } let param_0, param_1, param_2, param_3 := abi_decode_tuple_t_uint256t_uint256t_uint256t_uint256(4, calldatasize()) let ret_0, ret_1, ret_2, ret_3 := fun_f_80(param_0, param_1, param_2, param_3) let memPos := allocate_unbounded() @@ -288,6 +294,12 @@ object "C_81" { } + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } + function panic_error_0x11() { mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) mstore(4, 0x11) @@ -302,10 +314,6 @@ object "C_81" { revert(0, 0) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) - } - function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() { revert(0, 0) } diff --git a/test/cmdlineTests/function_debug_info/output b/test/cmdlineTests/function_debug_info/output index 071e0076e..870f36da7 100644 --- a/test/cmdlineTests/function_debug_info/output +++ b/test/cmdlineTests/function_debug_info/output @@ -13,16 +13,22 @@ }, "abi_decode_tuple_t_uint256_fromMemory": { - "entryPoint": 94, + "entryPoint": 95, "parameterSlots": 2, "returnSlots": 1 + }, + "panic_error_0x02": + { + "entryPoint": 120, + "parameterSlots": 0, + "returnSlots": 0 } }, "function-debug-runtime": { "@f_14": { - "entryPoint": 128, + "entryPoint": 129, "id": 14, "parameterSlots": 2, "returnSlots": 1 @@ -35,13 +41,13 @@ }, "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr": { - "entryPoint": 164, + "entryPoint": 165, "parameterSlots": 2, "returnSlots": 2 }, "abi_decode_tuple_t_uint256": { - "entryPoint": 281, + "entryPoint": 282, "parameterSlots": 2, "returnSlots": 1 }, @@ -50,9 +56,15 @@ "parameterSlots": 2, "returnSlots": 1 }, + "panic_error_0x02": + { + "entryPoint": 307, + "parameterSlots": 0, + "returnSlots": 0 + }, "panic_error_0x32": { - "entryPoint": 306, + "entryPoint": 329, "parameterSlots": 0, "returnSlots": 0 } diff --git a/test/cmdlineTests/ir_compiler_inheritance_nosubobjects/output b/test/cmdlineTests/ir_compiler_inheritance_nosubobjects/output index 829981fcf..295d28f31 100644 --- a/test/cmdlineTests/ir_compiler_inheritance_nosubobjects/output +++ b/test/cmdlineTests/ir_compiler_inheritance_nosubobjects/output @@ -10,7 +10,12 @@ object "C_7" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("C_7_deployed") codecopy(128, dataoffset("C_7_deployed"), _1) return(128, _1) @@ -38,7 +43,12 @@ object "D_10" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("D_10_deployed") codecopy(128, dataoffset("D_10_deployed"), _1) return(128, _1) diff --git a/test/cmdlineTests/ir_compiler_subobjects/output b/test/cmdlineTests/ir_compiler_subobjects/output index 96ebe2727..cc350ff94 100644 --- a/test/cmdlineTests/ir_compiler_subobjects/output +++ b/test/cmdlineTests/ir_compiler_subobjects/output @@ -10,7 +10,12 @@ object "C_3" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("C_3_deployed") codecopy(128, dataoffset("C_3_deployed"), _1) return(128, _1) @@ -38,7 +43,12 @@ object "D_16" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("D_16_deployed") codecopy(128, dataoffset("D_16_deployed"), _1) return(128, _1) @@ -53,7 +63,12 @@ object "D_16" { let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(_1))) { - if callvalue() { revert(_1, _1) } + if callvalue() + { + mstore(_1, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(_1, 0x24) + } if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } let _2 := datasize("C_3") let _3 := add(128, _2) @@ -80,7 +95,12 @@ object "D_16" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("C_3_deployed") codecopy(128, dataoffset("C_3_deployed"), _1) return(128, _1) diff --git a/test/cmdlineTests/ir_with_assembly_no_memoryguard_creation/output b/test/cmdlineTests/ir_with_assembly_no_memoryguard_creation/output index 72ed66a1d..979b1a6ce 100644 --- a/test/cmdlineTests/ir_with_assembly_no_memoryguard_creation/output +++ b/test/cmdlineTests/ir_with_assembly_no_memoryguard_creation/output @@ -10,7 +10,12 @@ object "D_12" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("D_12_deployed") codecopy(128, dataoffset("D_12_deployed"), _1) return(128, _1) @@ -25,7 +30,12 @@ object "D_12" { let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(_1))) { - if callvalue() { revert(_1, _1) } + if callvalue() + { + mstore(_1, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(_1, 0x24) + } if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } return(128, _1) } diff --git a/test/cmdlineTests/ir_with_assembly_no_memoryguard_runtime/output b/test/cmdlineTests/ir_with_assembly_no_memoryguard_runtime/output index a04c2f13b..e2299d9a1 100644 --- a/test/cmdlineTests/ir_with_assembly_no_memoryguard_runtime/output +++ b/test/cmdlineTests/ir_with_assembly_no_memoryguard_runtime/output @@ -10,7 +10,12 @@ object "D_8" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("D_8_deployed") codecopy(128, dataoffset("D_8_deployed"), _1) return(128, _1) @@ -25,7 +30,12 @@ object "D_8" { let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(_1))) { - if callvalue() { revert(_1, _1) } + if callvalue() + { + mstore(_1, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(_1, 0x24) + } if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } return(128, _1) } diff --git a/test/cmdlineTests/keccak_optimization_deploy_code/output b/test/cmdlineTests/keccak_optimization_deploy_code/output index 48721502a..53b0e3e28 100644 --- a/test/cmdlineTests/keccak_optimization_deploy_code/output +++ b/test/cmdlineTests/keccak_optimization_deploy_code/output @@ -10,7 +10,12 @@ object "C_12" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } mstore(0, 100) sstore(0, keccak256(0, 32)) let _1 := datasize("C_12_deployed") @@ -22,7 +27,12 @@ object "C_12" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } mstore(0, 100) sstore(0, 17385872270140913825666367956517731270094621555228275961425792378517567244498) stop() diff --git a/test/cmdlineTests/keccak_optimization_low_runs/output b/test/cmdlineTests/keccak_optimization_low_runs/output index c2e9b023a..2b539d858 100644 --- a/test/cmdlineTests/keccak_optimization_low_runs/output +++ b/test/cmdlineTests/keccak_optimization_low_runs/output @@ -10,7 +10,12 @@ object "C_7" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("C_7_deployed") codecopy(128, dataoffset("C_7_deployed"), _1) return(128, _1) @@ -20,7 +25,12 @@ object "C_7" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } mstore(0, 100) sstore(0, keccak256(0, 32)) stop() diff --git a/test/cmdlineTests/linking_standard_solidity_unresolved_references/output.json b/test/cmdlineTests/linking_standard_solidity_unresolved_references/output.json index 65db86584..23bb971fa 100644 --- a/test/cmdlineTests/linking_standard_solidity_unresolved_references/output.json +++ b/test/cmdlineTests/linking_standard_solidity_unresolved_references/output.json @@ -1 +1 @@ -{"contracts":{"A":{"C":{"evm":{"bytecode":{"linkReferences":{"A":{"L2":[{"length":20,"start":184},{"length":20,"start":368}]}},"object":"__$622b2f540b6a16ff5db7bea656ad8fcf4f$____$622b2f540b6a16ff5db7bea656ad8fcf4f$__"}}}}},"sources":{"A":{"id":0}}} +{"contracts":{"A":{"C":{"evm":{"bytecode":{"linkReferences":{"A":{"L2":[{"length":20,"start":240},{"length":20,"start":424}]}},"object":"__$622b2f540b6a16ff5db7bea656ad8fcf4f$____$622b2f540b6a16ff5db7bea656ad8fcf4f$__"}}}}},"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/name_simplifier/output b/test/cmdlineTests/name_simplifier/output index 96f2ec391..65bbff425 100644 --- a/test/cmdlineTests/name_simplifier/output +++ b/test/cmdlineTests/name_simplifier/output @@ -10,7 +10,12 @@ object "C_59" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("C_59_deployed") codecopy(128, dataoffset("C_59_deployed"), _1) return(128, _1) @@ -25,7 +30,12 @@ object "C_59" { let _1 := 0 if eq(0xf8eddcc6, shr(224, calldataload(_1))) { - if callvalue() { revert(_1, _1) } + if callvalue() + { + mstore(_1, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(_1, 0x24) + } let _2 := 32 if slt(add(calldatasize(), not(3)), _2) { revert(_1, _1) } let offset := calldataload(4) @@ -45,7 +55,7 @@ object "C_59" { for { } lt(i, _4) { i := add(i, 1) } { if slt(sub(calldatasize(), src), _2) { revert(_1, _1) } - let value := allocate_memory_1228() + let value := allocate_memory_1244() mstore(value, calldataload(src)) mstore(dst, value) dst := add(dst, _2) @@ -76,7 +86,7 @@ object "C_59" { } tail := add(add(headStart, and(add(length, 31), not(31))), 96) } - function allocate_memory_1228() -> memPtr + function allocate_memory_1244() -> memPtr { memPtr := mload(64) let newFreePtr := add(memPtr, 32) diff --git a/test/cmdlineTests/optimize_full_storage_write/output b/test/cmdlineTests/optimize_full_storage_write/output index 1a7322030..d2bf5281d 100644 --- a/test/cmdlineTests/optimize_full_storage_write/output +++ b/test/cmdlineTests/optimize_full_storage_write/output @@ -3,16 +3,39 @@ EVM assembly: /* "optimize_full_storage_write/input.sol":60:213 contract OptimizeFullSlotWrite {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in +tag_2: + jump(tag_5) + /* "#utility.yul":14:141 */ +tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ 0x00 - dup1 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ revert -tag_1: - pop + /* "#utility.yul":46:141 */ +tag_5: + /* "optimize_full_storage_write/input.sol":60:213 contract OptimizeFullSlotWrite {... */ dataSize(sub_0) dup1 dataOffset(sub_0) @@ -25,30 +48,25 @@ stop sub_0: assembly { /* "optimize_full_storage_write/input.sol":60:213 contract OptimizeFullSlotWrite {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert - tag_1: - pop - jumpi(tag_2, lt(calldatasize, 0x04)) + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in + tag_2: + jumpi(tag_4, lt(calldatasize, 0x04)) shr(0xe0, calldataload(0x00)) dup1 0x26121ff0 eq - tag_3 + tag_5 jumpi - tag_2: + tag_4: 0x00 dup1 revert /* "optimize_full_storage_write/input.sol":111:211 function f() public {... */ - tag_3: - tag_4 + tag_5: + tag_6 /* "optimize_full_storage_write/input.sol":192:207 nums[3] = 44444 */ 0xad9c000000000000823500000000000056ce0000000000002b67 /* "optimize_full_storage_write/input.sol":135:139 nums */ @@ -57,8 +75,32 @@ sub_0: assembly { sstore /* "optimize_full_storage_write/input.sol":111:211 function f() public {... */ jump - tag_4: + tag_6: stop + /* "#utility.yul":14:141 */ + tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ + 0x00 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ + revert auxdata: } diff --git a/test/cmdlineTests/optimizer_BlockDeDuplicator/output b/test/cmdlineTests/optimizer_BlockDeDuplicator/output index ddf17bdae..265ee645b 100644 --- a/test/cmdlineTests/optimizer_BlockDeDuplicator/output +++ b/test/cmdlineTests/optimizer_BlockDeDuplicator/output @@ -10,7 +10,7 @@ EVM assembly: not(sub(shl(0x40, 0x01), 0x01)) and /* "optimizer_BlockDeDuplicator/input.sol":201:206 fun_x */ - or(tag_0_7, shl(0x20, tag_2)) + or(tag_0_9, shl(0x20, tag_2)) sub(shl(0x40, 0x01), 0x01) /* "optimizer_BlockDeDuplicator/input.sol":179:210 function() r = true ? fun_x : f */ and @@ -18,22 +18,42 @@ EVM assembly: swap1 sstore /* "optimizer_BlockDeDuplicator/input.sol":60:213 contract C {... */ - callvalue - dup1 - iszero - tag_5 - jumpi - 0x00 - dup1 - revert -tag_5: - pop - jump(tag_6) + jumpi(tag_6, iszero(callvalue)) + tag_6 + tag_7 + jump // in +tag_6: + jump(tag_13) /* "optimizer_BlockDeDuplicator/input.sol":138:174 function f() public { true ? 1 : 3;} */ tag_2: jump // out + /* "#utility.yul":14:141 */ +tag_7: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ + 0x00 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ + revert + /* "#utility.yul":46:141 */ +tag_13: /* "optimizer_BlockDeDuplicator/input.sol":60:213 contract C {... */ -tag_6: dataSize(sub_0) dup1 dataOffset(sub_0) @@ -46,42 +66,61 @@ stop sub_0: assembly { /* "optimizer_BlockDeDuplicator/input.sol":60:213 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert - tag_1: - pop - jumpi(tag_2, lt(calldatasize, 0x04)) + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in + tag_2: + jumpi(tag_4, lt(calldatasize, 0x04)) shr(0xe0, calldataload(0x00)) dup1 0x26121ff0 eq - tag_3 + tag_5 jumpi dup1 0x2e1fb2bc eq - tag_3 + tag_5 jumpi dup1 0x4753a67d eq - tag_3 + tag_5 jumpi - tag_2: + tag_4: 0x00 dup1 revert /* "optimizer_BlockDeDuplicator/input.sol":138:174 function f() public { true ? 1 : 3;} */ - tag_3: + tag_5: stop - tag_7: + tag_9: jump // out + /* "#utility.yul":14:141 */ + tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ + 0x00 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ + revert auxdata: } diff --git a/test/cmdlineTests/optimizer_array_sload/output b/test/cmdlineTests/optimizer_array_sload/output index f5a3cf77d..34ca751d2 100644 --- a/test/cmdlineTests/optimizer_array_sload/output +++ b/test/cmdlineTests/optimizer_array_sload/output @@ -10,7 +10,12 @@ object "Arraysum_34" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("Arraysum_34_deployed") codecopy(128, dataoffset("Arraysum_34_deployed"), _1) return(128, _1) @@ -25,7 +30,12 @@ object "Arraysum_34" { let _1 := 0 if eq(0x81d73423, shr(224, calldataload(_1))) { - if callvalue() { revert(_1, _1) } + if callvalue() + { + mstore(_1, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(_1, 0x24) + } if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } let var_sum := _1 let var_i := _1 diff --git a/test/cmdlineTests/optimizer_inliner_add/output b/test/cmdlineTests/optimizer_inliner_add/output index 648d20fe8..988742b0e 100644 --- a/test/cmdlineTests/optimizer_inliner_add/output +++ b/test/cmdlineTests/optimizer_inliner_add/output @@ -3,16 +3,39 @@ EVM assembly: /* "optimizer_inliner_add/input.sol":165:305 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in +tag_2: + jump(tag_5) + /* "#utility.yul":14:141 */ +tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ 0x00 - dup1 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ revert -tag_1: - pop + /* "#utility.yul":46:141 */ +tag_5: + /* "optimizer_inliner_add/input.sol":165:305 contract C {... */ dataSize(sub_0) dup1 dataOffset(sub_0) @@ -25,39 +48,34 @@ stop sub_0: assembly { /* "optimizer_inliner_add/input.sol":165:305 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert - tag_1: - pop - jumpi(tag_2, lt(calldatasize, 0x04)) + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in + tag_2: + jumpi(tag_4, lt(calldatasize, 0x04)) shr(0xe0, calldataload(0x00)) dup1 0x26121ff0 eq - tag_3 + tag_5 jumpi - tag_2: + tag_4: 0x00 dup1 revert /* "optimizer_inliner_add/input.sol":182:303 function f() public pure {... */ - tag_3: - tag_4 - tag_5 - jump // in - tag_4: - stop tag_5: + tag_6 + tag_7 + jump // in + tag_6: + stop + tag_7: /* "optimizer_inliner_add/input.sol":221:227 uint x */ 0x00 /* "optimizer_inliner_add/input.sol":217:297 for(uint x = 0; x < 10; x = unsafe_add(x, unsafe_add(x, 1)))... */ - tag_7: + tag_9: /* "optimizer_inliner_add/input.sol":237:239 10 */ 0x0a /* "optimizer_inliner_add/input.sol":233:234 x */ @@ -66,7 +84,7 @@ sub_0: assembly { lt /* "optimizer_inliner_add/input.sol":217:297 for(uint x = 0; x < 10; x = unsafe_add(x, unsafe_add(x, 1)))... */ iszero - tag_8 + tag_10 jumpi /* "optimizer_inliner_add/input.sol":149:154 x + y */ dup1 @@ -76,11 +94,35 @@ sub_0: assembly { /* "optimizer_inliner_add/input.sol":149:154 x + y */ add /* "optimizer_inliner_add/input.sol":217:297 for(uint x = 0; x < 10; x = unsafe_add(x, unsafe_add(x, 1)))... */ - jump(tag_7) - tag_8: + jump(tag_9) + tag_10: pop /* "optimizer_inliner_add/input.sol":182:303 function f() public pure {... */ jump // out + /* "#utility.yul":14:141 */ + tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ + 0x00 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ + revert auxdata: } diff --git a/test/cmdlineTests/optimizer_inliner_call_from_constructor/output b/test/cmdlineTests/optimizer_inliner_call_from_constructor/output index 86c09e27e..eff1cc92a 100644 --- a/test/cmdlineTests/optimizer_inliner_call_from_constructor/output +++ b/test/cmdlineTests/optimizer_inliner_call_from_constructor/output @@ -4,16 +4,11 @@ EVM assembly: /* "optimizer_inliner_call_from_constructor/input.sol":60:263 contract C {... */ mstore(0x40, 0x80) /* "optimizer_inliner_call_from_constructor/input.sol":89:115 constructor() { x = a(); } */ - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert -tag_1: - pop + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in +tag_2: /* "optimizer_inliner_call_from_constructor/input.sol":257:258 6 */ 0x06 /* "optimizer_inliner_call_from_constructor/input.sol":105:106 x */ @@ -21,6 +16,34 @@ tag_1: /* "optimizer_inliner_call_from_constructor/input.sol":105:112 x = a() */ sstore /* "optimizer_inliner_call_from_constructor/input.sol":60:263 contract C {... */ + jump(tag_13) + /* "#utility.yul":14:141 */ +tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ + 0x00 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ + revert + /* "#utility.yul":46:141 */ +tag_13: + /* "optimizer_inliner_call_from_constructor/input.sol":60:263 contract C {... */ dataSize(sub_0) dup1 dataOffset(sub_0) @@ -33,29 +56,24 @@ stop sub_0: assembly { /* "optimizer_inliner_call_from_constructor/input.sol":60:263 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert - tag_1: - pop - jumpi(tag_2, lt(calldatasize, 0x04)) + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in + tag_2: + jumpi(tag_4, lt(calldatasize, 0x04)) shr(0xe0, calldataload(0x00)) dup1 0x0dbe671f eq - tag_3 + tag_5 jumpi - tag_2: + tag_4: 0x00 dup1 revert /* "optimizer_inliner_call_from_constructor/input.sol":120:175 function a() public pure returns (uint) { return f(); } */ - tag_3: + tag_5: /* "optimizer_inliner_call_from_constructor/input.sol":257:258 6 */ 0x06 /* "optimizer_inliner_call_from_constructor/input.sol":120:175 function a() public pure returns (uint) { return f(); } */ @@ -75,6 +93,30 @@ sub_0: assembly { sub swap1 return + /* "#utility.yul":196:323 */ + tag_3: + /* "#utility.yul":257:267 */ + 0x4e487b71 + /* "#utility.yul":252:255 */ + 0xe0 + /* "#utility.yul":248:268 */ + shl + /* "#utility.yul":245:246 */ + 0x00 + /* "#utility.yul":238:269 */ + mstore + /* "#utility.yul":288:292 */ + 0x02 + /* "#utility.yul":285:286 */ + 0x04 + /* "#utility.yul":278:293 */ + mstore + /* "#utility.yul":312:316 */ + 0x24 + /* "#utility.yul":309:310 */ + 0x00 + /* "#utility.yul":302:317 */ + revert auxdata: } diff --git a/test/cmdlineTests/optimizer_inliner_dynamic_reference/output b/test/cmdlineTests/optimizer_inliner_dynamic_reference/output index 1f5597478..2e97273a3 100644 --- a/test/cmdlineTests/optimizer_inliner_dynamic_reference/output +++ b/test/cmdlineTests/optimizer_inliner_dynamic_reference/output @@ -3,16 +3,39 @@ EVM assembly: /* "optimizer_inliner_dynamic_reference/input.sol":60:367 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in +tag_2: + jump(tag_5) + /* "#utility.yul":14:141 */ +tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ 0x00 - dup1 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ revert -tag_1: - pop + /* "#utility.yul":46:141 */ +tag_5: + /* "optimizer_inliner_dynamic_reference/input.sol":60:367 contract C {... */ dataSize(sub_0) dup1 dataOffset(sub_0) @@ -25,43 +48,38 @@ stop sub_0: assembly { /* "optimizer_inliner_dynamic_reference/input.sol":60:367 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert - tag_1: - pop - jumpi(tag_2, lt(calldatasize, 0x04)) + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in + tag_2: + jumpi(tag_4, lt(calldatasize, 0x04)) shr(0xe0, calldataload(0x00)) dup1 0x0dbe671f eq - tag_3 + tag_5 jumpi dup1 0xb8c9d365 eq - tag_4 + tag_6 jumpi dup1 0xe2179b8e eq - tag_5 + tag_7 jumpi - tag_2: + tag_4: 0x00 dup1 revert /* "optimizer_inliner_dynamic_reference/input.sol":160:215 function a() public pure returns (uint) { return f(); } */ - tag_3: + tag_5: /* "optimizer_inliner_dynamic_reference/input.sol":361:362 6 */ 0x06 /* "optimizer_inliner_dynamic_reference/input.sol":160:215 function a() public pure returns (uint) { return f(); } */ - tag_6: + tag_8: mload(0x40) /* "#utility.yul":160:185 */ swap1 @@ -79,12 +97,12 @@ sub_0: assembly { swap1 return /* "optimizer_inliner_dynamic_reference/input.sol":246:305 function h() public view returns (uint) { return x() + 1; } */ - tag_4: - tag_6 - tag_11 + tag_6: + tag_8 + tag_13 jump // in /* "optimizer_inliner_dynamic_reference/input.sol":125:155 function g() public { x = f; } */ - tag_5: + tag_7: /* "optimizer_inliner_dynamic_reference/input.sol":147:148 x */ 0x00 /* "optimizer_inliner_dynamic_reference/input.sol":147:152 x = f */ @@ -93,7 +111,7 @@ sub_0: assembly { not(0xffffffffffffffff) and /* "optimizer_inliner_dynamic_reference/input.sol":151:152 f */ - tag_17 + tag_19 /* "optimizer_inliner_dynamic_reference/input.sol":147:152 x = f */ or swap1 @@ -101,7 +119,7 @@ sub_0: assembly { /* "optimizer_inliner_dynamic_reference/input.sol":125:155 function g() public { x = f; } */ stop /* "optimizer_inliner_dynamic_reference/input.sol":209:212 f() */ - tag_16: + tag_18: /* "optimizer_inliner_dynamic_reference/input.sol":202:212 return f() */ swap1 pop @@ -109,49 +127,49 @@ sub_0: assembly { swap1 jump // out /* "optimizer_inliner_dynamic_reference/input.sol":246:305 function h() public view returns (uint) { return x() + 1; } */ - tag_11: + tag_13: /* "optimizer_inliner_dynamic_reference/input.sol":280:284 uint */ 0x00 /* "optimizer_inliner_dynamic_reference/input.sol":295:296 x */ dup1 sload /* "optimizer_inliner_dynamic_reference/input.sol":295:298 x() */ - tag_19 + tag_21 swap1 /* "optimizer_inliner_dynamic_reference/input.sol":295:296 x */ dup1 iszero - tag_20 + tag_22 mul or /* "optimizer_inliner_dynamic_reference/input.sol":295:298 x() */ 0xffffffff and jump // in - tag_19: + tag_21: /* "optimizer_inliner_dynamic_reference/input.sol":295:302 x() + 1 */ - tag_16 + tag_18 swap1 /* "optimizer_inliner_dynamic_reference/input.sol":301:302 1 */ 0x01 /* "optimizer_inliner_dynamic_reference/input.sol":295:302 x() + 1 */ - tag_22 + tag_24 jump // in /* "optimizer_inliner_dynamic_reference/input.sol":310:365 function f() internal pure returns (uint) { return 6; } */ - tag_17: + tag_19: /* "optimizer_inliner_dynamic_reference/input.sol":361:362 6 */ 0x06 swap1 /* "optimizer_inliner_dynamic_reference/input.sol":310:365 function f() internal pure returns (uint) { return 6; } */ jump // out - tag_20: - tag_25 - tag_26 + tag_22: + tag_27 + tag_28 jump // in - tag_25: + tag_27: jump // out /* "#utility.yul":196:421 */ - tag_22: + tag_24: /* "#utility.yul":236:239 */ 0x00 /* "#utility.yul":267:268 */ @@ -164,7 +182,7 @@ sub_0: assembly { gt /* "#utility.yul":254:256 */ iszero - tag_30 + tag_32 jumpi /* "#utility.yul":312:322 */ 0x4e487b71 @@ -189,7 +207,7 @@ sub_0: assembly { /* "#utility.yul":365:380 */ revert /* "#utility.yul":254:256 */ - tag_30: + tag_32: pop /* "#utility.yul":406:415 */ add @@ -197,7 +215,7 @@ sub_0: assembly { /* "#utility.yul":244:421 */ jump // out /* "#utility.yul":426:553 */ - tag_26: + tag_3: /* "#utility.yul":487:497 */ 0x4e487b71 /* "#utility.yul":482:485 */ @@ -209,7 +227,7 @@ sub_0: assembly { /* "#utility.yul":468:499 */ mstore /* "#utility.yul":518:522 */ - 0x51 + 0x02 /* "#utility.yul":515:516 */ 0x04 /* "#utility.yul":508:523 */ @@ -220,6 +238,30 @@ sub_0: assembly { 0x00 /* "#utility.yul":532:547 */ revert + /* "#utility.yul":558:685 */ + tag_28: + /* "#utility.yul":619:629 */ + 0x4e487b71 + /* "#utility.yul":614:617 */ + 0xe0 + /* "#utility.yul":610:630 */ + shl + /* "#utility.yul":607:608 */ + 0x00 + /* "#utility.yul":600:631 */ + mstore + /* "#utility.yul":650:654 */ + 0x51 + /* "#utility.yul":647:648 */ + 0x04 + /* "#utility.yul":640:655 */ + mstore + /* "#utility.yul":674:678 */ + 0x24 + /* "#utility.yul":671:672 */ + 0x00 + /* "#utility.yul":664:679 */ + revert auxdata: } diff --git a/test/cmdlineTests/optimizer_inliner_dynamic_reference_constructor/output b/test/cmdlineTests/optimizer_inliner_dynamic_reference_constructor/output index f17c19176..22ff490e5 100644 --- a/test/cmdlineTests/optimizer_inliner_dynamic_reference_constructor/output +++ b/test/cmdlineTests/optimizer_inliner_dynamic_reference_constructor/output @@ -4,16 +4,11 @@ EVM assembly: /* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361 contract C {... */ mstore(0x40, 0x80) /* "optimizer_inliner_dynamic_reference_constructor/input.sol":77:101 constructor() { x = f; } */ - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert -tag_1: - pop + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in +tag_2: /* "optimizer_inliner_dynamic_reference_constructor/input.sol":93:94 x */ 0x00 /* "optimizer_inliner_dynamic_reference_constructor/input.sol":93:98 x = f */ @@ -22,7 +17,7 @@ tag_1: not(sub(shl(0x40, 0x01), 0x01)) and /* "optimizer_inliner_dynamic_reference_constructor/input.sol":97:98 f */ - or(tag_0_12, shl(0x20, tag_4)) + or(tag_0_14, shl(0x20, tag_6)) sub(shl(0x40, 0x01), 0x01) /* "optimizer_inliner_dynamic_reference_constructor/input.sol":93:98 x = f */ and @@ -30,16 +25,41 @@ tag_1: swap1 sstore /* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361 contract C {... */ - jump(tag_5) + jump(tag_9) /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359 function f() internal pure returns (uint) { return 6; } */ -tag_4: +tag_6: /* "optimizer_inliner_dynamic_reference_constructor/input.sol":355:356 6 */ 0x06 swap1 /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359 function f() internal pure returns (uint) { return 6; } */ jump // out + /* "#utility.yul":14:141 */ +tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ + 0x00 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ + revert + /* "#utility.yul":46:141 */ +tag_9: /* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361 contract C {... */ -tag_5: dataSize(sub_0) dup1 dataOffset(sub_0) @@ -52,38 +72,33 @@ stop sub_0: assembly { /* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert - tag_1: - pop - jumpi(tag_2, lt(calldatasize, 0x04)) + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in + tag_2: + jumpi(tag_4, lt(calldatasize, 0x04)) shr(0xe0, calldataload(0x00)) dup1 0x0dbe671f eq - tag_3 + tag_5 jumpi dup1 0xb8c9d365 eq - tag_4 + tag_6 jumpi - tag_2: + tag_4: 0x00 dup1 revert /* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209 function a() public pure returns (uint) { return f(); } */ - tag_3: + tag_5: /* "optimizer_inliner_dynamic_reference_constructor/input.sol":355:356 6 */ 0x06 /* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209 function a() public pure returns (uint) { return f(); } */ - tag_5: + tag_7: mload(0x40) /* "#utility.yul":160:185 */ swap1 @@ -101,12 +116,12 @@ sub_0: assembly { swap1 return /* "optimizer_inliner_dynamic_reference_constructor/input.sol":240:299 function h() public view returns (uint) { return x() + 1; } */ - tag_4: - tag_5 - tag_10 + tag_6: + tag_7 + tag_12 jump // in /* "optimizer_inliner_dynamic_reference_constructor/input.sol":203:206 f() */ - tag_14: + tag_16: /* "optimizer_inliner_dynamic_reference_constructor/input.sol":196:206 return f() */ swap1 pop @@ -114,49 +129,49 @@ sub_0: assembly { swap1 jump // out /* "optimizer_inliner_dynamic_reference_constructor/input.sol":240:299 function h() public view returns (uint) { return x() + 1; } */ - tag_10: + tag_12: /* "optimizer_inliner_dynamic_reference_constructor/input.sol":274:278 uint */ 0x00 /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:290 x */ dup1 sload /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:292 x() */ - tag_16 + tag_18 swap1 /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:290 x */ dup1 iszero - tag_17 + tag_19 mul or /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:292 x() */ 0xffffffff and jump // in - tag_16: + tag_18: /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:296 x() + 1 */ - tag_14 + tag_16 swap1 /* "optimizer_inliner_dynamic_reference_constructor/input.sol":295:296 1 */ 0x01 /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:296 x() + 1 */ - tag_19 + tag_21 jump // in /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359 function f() internal pure returns (uint) { return 6; } */ - tag_12: + tag_14: /* "optimizer_inliner_dynamic_reference_constructor/input.sol":355:356 6 */ 0x06 swap1 /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359 function f() internal pure returns (uint) { return 6; } */ jump // out - tag_17: - tag_21 - tag_22 + tag_19: + tag_23 + tag_24 jump // in - tag_21: + tag_23: jump // out /* "#utility.yul":196:421 */ - tag_19: + tag_21: /* "#utility.yul":236:239 */ 0x00 /* "#utility.yul":267:268 */ @@ -169,7 +184,7 @@ sub_0: assembly { gt /* "#utility.yul":254:256 */ iszero - tag_26 + tag_28 jumpi /* "#utility.yul":312:322 */ 0x4e487b71 @@ -194,7 +209,7 @@ sub_0: assembly { /* "#utility.yul":365:380 */ revert /* "#utility.yul":254:256 */ - tag_26: + tag_28: pop /* "#utility.yul":406:415 */ add @@ -202,7 +217,7 @@ sub_0: assembly { /* "#utility.yul":244:421 */ jump // out /* "#utility.yul":426:553 */ - tag_22: + tag_3: /* "#utility.yul":487:497 */ 0x4e487b71 /* "#utility.yul":482:485 */ @@ -214,7 +229,7 @@ sub_0: assembly { /* "#utility.yul":468:499 */ mstore /* "#utility.yul":518:522 */ - 0x51 + 0x02 /* "#utility.yul":515:516 */ 0x04 /* "#utility.yul":508:523 */ @@ -225,6 +240,30 @@ sub_0: assembly { 0x00 /* "#utility.yul":532:547 */ revert + /* "#utility.yul":558:685 */ + tag_24: + /* "#utility.yul":619:629 */ + 0x4e487b71 + /* "#utility.yul":614:617 */ + 0xe0 + /* "#utility.yul":610:630 */ + shl + /* "#utility.yul":607:608 */ + 0x00 + /* "#utility.yul":600:631 */ + mstore + /* "#utility.yul":650:654 */ + 0x51 + /* "#utility.yul":647:648 */ + 0x04 + /* "#utility.yul":640:655 */ + mstore + /* "#utility.yul":674:678 */ + 0x24 + /* "#utility.yul":671:672 */ + 0x00 + /* "#utility.yul":664:679 */ + revert auxdata: } diff --git a/test/cmdlineTests/optimizer_inliner_inc/output b/test/cmdlineTests/optimizer_inliner_inc/output index 04f5f745a..2c00e4434 100644 --- a/test/cmdlineTests/optimizer_inliner_inc/output +++ b/test/cmdlineTests/optimizer_inliner_inc/output @@ -3,16 +3,39 @@ EVM assembly: /* "optimizer_inliner_inc/input.sol":157:279 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in +tag_2: + jump(tag_5) + /* "#utility.yul":14:141 */ +tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ 0x00 - dup1 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ revert -tag_1: - pop + /* "#utility.yul":46:141 */ +tag_5: + /* "optimizer_inliner_inc/input.sol":157:279 contract C {... */ dataSize(sub_0) dup1 dataOffset(sub_0) @@ -25,39 +48,34 @@ stop sub_0: assembly { /* "optimizer_inliner_inc/input.sol":157:279 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert - tag_1: - pop - jumpi(tag_2, lt(calldatasize, 0x04)) + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in + tag_2: + jumpi(tag_4, lt(calldatasize, 0x04)) shr(0xe0, calldataload(0x00)) dup1 0x26121ff0 eq - tag_3 + tag_5 jumpi - tag_2: + tag_4: 0x00 dup1 revert /* "optimizer_inliner_inc/input.sol":174:277 function f() public pure {... */ - tag_3: - tag_4 - tag_5 - jump // in - tag_4: - stop tag_5: + tag_6 + tag_7 + jump // in + tag_6: + stop + tag_7: /* "optimizer_inliner_inc/input.sol":213:219 uint x */ 0x00 /* "optimizer_inliner_inc/input.sol":209:271 for(uint x = 0; x < 10; x = unsafe_inc(x))... */ - tag_7: + tag_9: /* "optimizer_inliner_inc/input.sol":229:231 10 */ 0x0a /* "optimizer_inliner_inc/input.sol":225:226 x */ @@ -66,18 +84,42 @@ sub_0: assembly { lt /* "optimizer_inliner_inc/input.sol":209:271 for(uint x = 0; x < 10; x = unsafe_inc(x))... */ iszero - tag_8 + tag_10 jumpi /* "optimizer_inliner_inc/input.sol":145:146 1 */ 0x01 /* "optimizer_inliner_inc/input.sol":141:146 x + 1 */ add /* "optimizer_inliner_inc/input.sol":209:271 for(uint x = 0; x < 10; x = unsafe_inc(x))... */ - jump(tag_7) - tag_8: + jump(tag_9) + tag_10: pop /* "optimizer_inliner_inc/input.sol":174:277 function f() public pure {... */ jump // out + /* "#utility.yul":14:141 */ + tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ + 0x00 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ + revert auxdata: } diff --git a/test/cmdlineTests/optimizer_inliner_multireturn/output b/test/cmdlineTests/optimizer_inliner_multireturn/output index ca7b0abdf..ae7fa4bd4 100644 --- a/test/cmdlineTests/optimizer_inliner_multireturn/output +++ b/test/cmdlineTests/optimizer_inliner_multireturn/output @@ -3,16 +3,39 @@ EVM assembly: /* "optimizer_inliner_multireturn/input.sol":162:298 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in +tag_2: + jump(tag_5) + /* "#utility.yul":14:141 */ +tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ 0x00 - dup1 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ revert -tag_1: - pop + /* "#utility.yul":46:141 */ +tag_5: + /* "optimizer_inliner_multireturn/input.sol":162:298 contract C {... */ dataSize(sub_0) dup1 dataOffset(sub_0) @@ -25,41 +48,36 @@ stop sub_0: assembly { /* "optimizer_inliner_multireturn/input.sol":162:298 contract C {... */ mstore(0x40, 0x80) - callvalue - dup1 - iszero - tag_1 - jumpi - 0x00 - dup1 - revert - tag_1: - pop - jumpi(tag_2, lt(calldatasize, 0x04)) + jumpi(tag_2, iszero(callvalue)) + tag_2 + tag_3 + jump // in + tag_2: + jumpi(tag_4, lt(calldatasize, 0x04)) shr(0xe0, calldataload(0x00)) dup1 0x26121ff0 eq - tag_3 + tag_5 jumpi - tag_2: + tag_4: 0x00 dup1 revert /* "optimizer_inliner_multireturn/input.sol":179:296 function f() public pure {... */ - tag_3: - tag_4 - tag_5 - jump // in - tag_4: - stop tag_5: + tag_6 + tag_7 + jump // in + tag_6: + stop + tag_7: /* "optimizer_inliner_multireturn/input.sol":219:225 uint x */ 0x00 /* "optimizer_inliner_multireturn/input.sol":241:242 1 */ 0x01 /* "optimizer_inliner_multireturn/input.sol":214:290 for((uint x, uint y) = (0, 1); x < 10; (x, y) = test(x))... */ - tag_7: + tag_9: /* "optimizer_inliner_multireturn/input.sol":249:251 10 */ 0x0a /* "optimizer_inliner_multireturn/input.sol":245:246 x */ @@ -68,7 +86,7 @@ sub_0: assembly { lt /* "optimizer_inliner_multireturn/input.sol":214:290 for((uint x, uint y) = (0, 1); x < 10; (x, y) = test(x))... */ iszero - tag_8 + tag_10 jumpi pop /* "optimizer_inliner_multireturn/input.sol":146:147 1 */ @@ -78,12 +96,36 @@ sub_0: assembly { add swap1 /* "optimizer_inliner_multireturn/input.sol":214:290 for((uint x, uint y) = (0, 1); x < 10; (x, y) = test(x))... */ - jump(tag_7) - tag_8: + jump(tag_9) + tag_10: pop pop /* "optimizer_inliner_multireturn/input.sol":179:296 function f() public pure {... */ jump // out + /* "#utility.yul":14:141 */ + tag_3: + /* "#utility.yul":75:85 */ + 0x4e487b71 + /* "#utility.yul":70:73 */ + 0xe0 + /* "#utility.yul":66:86 */ + shl + /* "#utility.yul":63:64 */ + 0x00 + /* "#utility.yul":56:87 */ + mstore + /* "#utility.yul":106:110 */ + 0x02 + /* "#utility.yul":103:104 */ + 0x04 + /* "#utility.yul":96:111 */ + mstore + /* "#utility.yul":130:134 */ + 0x24 + /* "#utility.yul":127:128 */ + 0x00 + /* "#utility.yul":120:135 */ + revert auxdata: } diff --git a/test/cmdlineTests/revert_strings/output b/test/cmdlineTests/revert_strings/output index 8fd41fba4..d3092bb6f 100644 --- a/test/cmdlineTests/revert_strings/output +++ b/test/cmdlineTests/revert_strings/output @@ -10,7 +10,9 @@ IR: object "C_15" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_15() @@ -27,23 +29,10 @@ object "C_15" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - - let start := allocate_unbounded() - let pos := start - mstore(pos, 3963877391197344453575983046348115674221700746820753546331534351508065746944) - pos := add(pos, 4) - mstore(pos, 0x20) - pos := add(pos, 0x20) - mstore(pos, 34) - pos := add(pos, 0x20) - - mstore(add(pos, 0), "Ether sent to non-payable functi") - - mstore(add(pos, 32), "on") - - revert(start, 132) - + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -60,7 +49,9 @@ object "C_15" { { // f(uint256[][],uint8) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } let param_0, param_1 := abi_decode_tuple_t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptrt_enum$_E_$3(4, calldatasize()) fun_f_14(param_0, param_1) let memPos := allocate_unbounded() @@ -216,6 +207,12 @@ object "C_15" { } + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } + function panic_error_0x41() { mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) mstore(4, 0x41) @@ -298,25 +295,6 @@ object "C_15" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - - let start := allocate_unbounded() - let pos := start - mstore(pos, 3963877391197344453575983046348115674221700746820753546331534351508065746944) - pos := add(pos, 4) - mstore(pos, 0x20) - pos := add(pos, 0x20) - mstore(pos, 34) - pos := add(pos, 0x20) - - mstore(add(pos, 0), "Ether sent to non-payable functi") - - mstore(add(pos, 32), "on") - - revert(start, 132) - - } - function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() { let start := allocate_unbounded() diff --git a/test/cmdlineTests/standard_ewasm_requested/output.json b/test/cmdlineTests/standard_ewasm_requested/output.json index d3eef7f27..555e15317 100644 --- a/test/cmdlineTests/standard_ewasm_requested/output.json +++ b/test/cmdlineTests/standard_ewasm_requested/output.json @@ -1,4 +1,4 @@ -{"contracts":{"A":{"C":{"ewasm":{"wasm":"0061736d010000000125086000006000017e6000017f60017e017f60017f0060017f017f60027f7f0060037f7f7f0002510408657468657265756d08636f6465436f7079000708657468657265756d06726576657274000608657468657265756d0c67657443616c6c56616c7565000408657468657265756d0666696e6973680006030a090002030202020505010503010001060100071102066d656d6f72790200046d61696e000400b6030c435f335f6465706c6f7965640061736d010000000112046000006000017f60017f017f60027f7f0002130108657468657265756d06726576657274000303060500010102020503010001060100071102066d656d6f72790200046d61696e00010ad20205a10104027f017e017f047e024010022100200041c0006a210120012000490440000b420021022002a7210320031005ad42208621042002422088210520042005a71005ad84210620012006370000200141086a2006370000200141106a2006370000428001a71005ad4220862107200141186a2007428001422088a71005ad8437000020022002200284200284520440000b20022005520440000b1003200310000b0b2b01017f024042004200420084420084520440000b420042c000422088520440000b42c000a721000b20000b4203017f017e017f02404200210120012001200184200184520440000b20012001422088520440000b2001a72102200241c0006a210020002002490440000b0b20000b1f01017f024020004108744180fe0371200041087641ff01717221010b20010b1e01027f02402000100441107421022002200041107610047221010b20010b0ae303099a0102027f047e024010072100200041c0006a210120012000490440000b4200a7100bad422086210220024200422088a7100bad84210320012003370000200141086a2003370000200141106a2003370000200141186a100c37000041001002410829000021044200420084200441002900008484504504401008100510010b42a9032105100942b901100620051006100010092005100610030b0b2f02017f017e02404200210120012001200184200184520440000b20012001422088520440000b2001a721000b20000b2901017f024042004200420084420084520440000b42002000422088520440000b2000a721010b20010b2b01017f024042004200420084420084520440000b420042c000422088520440000b42c000a721000b20000b1e01027f024010052101200141c0006a210020002001490440000b0b20000b3c01027f024042004200420084420084520440000b4200428001422088520440000b428001a72101200141c0006a210020002001490440000b0b20000b1f01017f024020004108744180fe0371200041087641ff01717221010b20010b1e01027f02402000100a411074210220022000411076100a7221010b20010b2401027e0240428001a7100bad42208621012001428001422088a7100bad8421000b20000b","wast":"(module +{"contracts":{"A":{"C":{"ewasm":{"wasm":"0061736d0100000001360b6000006000017f60017e0060017e017e60017e017f60027e7e0060047e7e7e7e0060017f0060017f017f60027f7f0060037f7f7f0002510408657468657265756d08636f6465436f7079000a08657468657265756d06726576657274000908657468657265756d0c67657443616c6c56616c7565000708657468657265756d0666696e6973680009030e0d000401010808030500060002000503010001060100071102066d656d6f72790200046d61696e000400b6030c435f335f6465706c6f7965640061736d010000000112046000006000017f60017f017f60027f7f0002130108657468657265756d06726576657274000303060500010102020503010001060100071102066d656d6f72790200046d61696e00010ad20205a10104027f017e017f047e024010022100200041c0006a210120012000490440000b420021022002a7210320031005ad42208621042002422088210520042005a71005ad84210620012006370000200141086a2006370000200141106a2006370000428001a71005ad4220862107200141186a2007428001422088a71005ad8437000020022002200284200284520440000b20022005520440000b1003200310000b0b2b01017f024042004200420084420084520440000b420042c000422088520440000b42c000a721000b20000b4203017f017e017f02404200210120012001200184200184520440000b20012001422088520440000b2001a72102200241c0006a210020002002490440000b0b20000b1f01017f024020004108744180fe0371200041087641ff01717221010b20010b1e01027f02402000100441107421022002200041107610047221010b20010b0a89080d8d02030c7e017f027e0240100c4100100241082900002100200041002900008421014200210220022002842001845045044042e001210320022104200221052002210642f1f6a1f204210720022108200221092002210a2002210b200250210c200c200c710440200c0440200342800254044020034280015a04402002210420072105200221062002210720034280017d21030b200342c0005a044020052104200621052007210620022107200342c0007d21030b42c00020037d210d2007200386210b20062003862007200d8884210a20052003862006200d8884210920042003862005200d888421080b0b0b20082009200a200b100d100e10100b42a903210e42ce01200e100b200e100f0b0b2901017f024042004200420084420084520440000b42002000422088520440000b2000a721010b20010b2b01017f024042004200420084420084520440000b4200428001422088520440000b428001a721000b20000b2f02017f017e02404200210120012001200184200184520440000b20012001422088520440000b2001a721000b20000b1f01017f024020004108744180fe0371200041087641ff01717221010b20010b1e01027f02402000100841107421022002200041107610087221010b20010b2201027e02402000a71009ad422086210220022000422088a71009ad8421010b20010b3001047f024020011005210220001005210310062104200441c0006a210520052004490440000b20052003200210000b0b970103017e027f037e02404200210020002000200084200084520440000b200042c000422088520440000b42c000a72101200141c0006a210220022001490440000b2000a71009ad422086210320032000422088a71009ad84210420022004370000200241086a2004370000200241106a2004370000428001a71009ad4220862105200241186a2005428001422088a71009ad843700000b0b4901027f024010072104200441c0006a210520052004490440000b20052000100a370000200541086a2001100a370000200541106a2002100a370000200541186a2003100a3700000b0b930103017e027f037e02404200210020002000200084200084520440000b20004204422088520440000b4204a72101200141c0006a210220022001490440000b2000a71009ad422086210320032000422088a71009ad84210420022004370000200241086a2004370000200241106a20043700004202a71009ad4220862105200241186a20054202422088a71009ad843700000b0b2801037f024020001005210110062102200241c0006a210320032002490440000b2003200110030b0b3e01027f024042004200420084420084520440000b42004224422088520440000b10072100200041c0006a210120012000490440000b20014224a710010b0b","wast":"(module ;; custom section for sub-module ;; The Keccak-256 hash of the text representation of \"C_3_deployed\": d5523336521d49fa8bd64dba28ece7291aa7d45c646a23eabd038bbeecc2d803 ;; (@custom \"C_3_deployed\" \"0061736d010000000112046000006000017f60017f017f60027f7f0002130108657468657265756d06726576657274000303060500010102020503010001060100071102066d656d6f72790200046d61696e00010ad20205a10104027f017e017f047e024010022100200041c0006a210120012000490440000b420021022002a7210320031005ad42208621042002422088210520042005a71005ad84210620012006370000200141086a2006370000200141106a2006370000428001a71005ad4220862107200141186a2007428001422088a71005ad8437000020022002200284200284520440000b20022005520440000b1003200310000b0b2b01017f024042004200420084420084520440000b420042c000422088520440000b42c000a721000b20000b4203017f017e017f02404200210120012001200184200184520440000b20012001422088520440000b2001a72102200241c0006a210020002002490440000b0b20000b1f01017f024020004108744180fe0371200041087641ff01717221010b20010b1e01027f02402000100441107421022002200041107610047221010b20010b\") @@ -10,38 +10,106 @@ (export \"main\" (func $main)) (func $main - (local $p i32) - (local $r i32) - (local $hi i64) - (local $y i64) (local $z3 i64) (local $_1 i64) + (local $_2 i64) + (local $x4 i64) + (local $y1 i64) + (local $y2 i64) + (local $y3 i64) + (local $y4 i64) + (local $z1 i64) + (local $z2 i64) + (local $z3_1 i64) + (local $z4 i64) + (local $_3 i32) + (local $_4 i64) + (local $_5 i64) (block $label_ - (local.set $p (call $u256_to_i32_726)) - (local.set $r (i32.add (local.get $p) (i32.const 64))) - (if (i32.lt_u (local.get $r) (local.get $p)) (then - (unreachable))) - (local.set $hi (i64.shl (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.const 0)))) (i64.const 32))) - (local.set $y (i64.or (local.get $hi) (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.shr_u (i64.const 0) (i64.const 32))))))) - (i64.store (local.get $r) (local.get $y)) - (i64.store (i32.add (local.get $r) (i32.const 8)) (local.get $y)) - (i64.store (i32.add (local.get $r) (i32.const 16)) (local.get $y)) - (i64.store (i32.add (local.get $r) (i32.const 24)) (call $bswap64)) + (call $mstore_730) (call $eth.getCallValue (i32.const 0)) (local.set $z3 (i64.load (i32.const 8))) - (if (i32.eqz (i64.eqz (i64.or (i64.or (i64.const 0) (i64.const 0)) (i64.or (local.get $z3) (i64.load (i32.const 0)))))) (then - (call $eth.revert (call $to_internal_i32ptr) (call $u256_to_i32_344)))) - (local.set $_1 (datasize \"C_3_deployed\")) - (call $eth.codeCopy (call $to_internal_i32ptr_348) (call $u256_to_i32 (dataoffset \"C_3_deployed\")) (call $u256_to_i32 (local.get $_1))) - (call $eth.finish (call $to_internal_i32ptr_348) (call $u256_to_i32 (local.get $_1))) + (local.set $_1 (i64.or (local.get $z3) (i64.load (i32.const 0)))) + (local.set $_2 (i64.const 0)) + (if (i32.eqz (i64.eqz (i64.or (i64.or (local.get $_2) (local.get $_2)) (local.get $_1)))) (then + (local.set $x4 (i64.const 224)) + (local.set $y1 (local.get $_2)) + (local.set $y2 (local.get $_2)) + (local.set $y3 (local.get $_2)) + (local.set $y4 (i64.const 1313373041)) + (local.set $z1 (local.get $_2)) + (local.set $z2 (local.get $_2)) + (local.set $z3_1 (local.get $_2)) + (local.set $z4 (local.get $_2)) + (local.set $_3 (i64.eqz (local.get $_2))) + (if (i32.and (local.get $_3) (local.get $_3)) (then + (if (local.get $_3) (then + (if (i64.lt_u (local.get $x4) (i64.const 256)) (then + (if (i64.ge_u (local.get $x4) (i64.const 128)) (then + (local.set $y1 (local.get $_2)) + (local.set $y2 (local.get $y4)) + (local.set $y3 (local.get $_2)) + (local.set $y4 (local.get $_2)) + (local.set $x4 (i64.sub (local.get $x4) (i64.const 128))) + )) + (if (i64.ge_u (local.get $x4) (i64.const 64)) (then + (local.set $y1 (local.get $y2)) + (local.set $y2 (local.get $y3)) + (local.set $y3 (local.get $y4)) + (local.set $y4 (local.get $_2)) + (local.set $x4 (i64.sub (local.get $x4) (i64.const 64))) + )) + (local.set $_4 (i64.sub (i64.const 64) (local.get $x4))) + (local.set $z4 (i64.shl (local.get $y4) (local.get $x4))) + (local.set $z3_1 (i64.or (i64.shl (local.get $y3) (local.get $x4)) (i64.shr_u (local.get $y4) (local.get $_4)))) + (local.set $z2 (i64.or (i64.shl (local.get $y2) (local.get $x4)) (i64.shr_u (local.get $y3) (local.get $_4)))) + (local.set $z1 (i64.or (i64.shl (local.get $y1) (local.get $x4)) (i64.shr_u (local.get $y2) (local.get $_4)))) + )) + )) + )) + (call $mstore_731 (local.get $z1) (local.get $z2) (local.get $z3_1) (local.get $z4)) + (call $mstore) + (call $revert))) + (local.set $_5 (datasize \"C_3_deployed\")) + (call $codecopy (dataoffset \"C_3_deployed\") (local.get $_5)) + (call $return (local.get $_5)) ) ) -(func $u256_to_i32_344 +(func $u256_to_i32_1381 + (param $x4 i64) + (result i32) + (local $v i32) + (block $label__1 + (if (i64.ne (i64.const 0) (i64.or (i64.or (i64.const 0) (i64.const 0)) (i64.const 0))) (then + (unreachable))) + (if (i64.ne (i64.const 0) (i64.shr_u (local.get $x4) (i64.const 32))) (then + (unreachable))) + (local.set $v (i32.wrap_i64 (local.get $x4))) + + ) + (local.get $v) +) + +(func $u256_to_i32 + (result i32) + (local $v i32) + (block $label__2 + (if (i64.ne (i64.const 0) (i64.or (i64.or (i64.const 0) (i64.const 0)) (i64.const 0))) (then + (unreachable))) + (if (i64.ne (i64.const 0) (i64.shr_u (i64.const 128) (i64.const 32))) (then + (unreachable))) + (local.set $v (i32.wrap_i64 (i64.const 128))) + + ) + (local.get $v) +) + +(func $u256_to_i32_1385 (result i32) (local $v i32) (local $_1 i64) - (block $label__1 + (block $label__3 (local.set $_1 (i64.const 0)) (if (i64.ne (local.get $_1) (i64.or (i64.or (local.get $_1) (local.get $_1)) (local.get $_1))) (then (unreachable))) @@ -53,72 +121,11 @@ (local.get $v) ) -(func $u256_to_i32 - (param $x4 i64) - (result i32) - (local $v i32) - (block $label__2 - (if (i64.ne (i64.const 0) (i64.or (i64.or (i64.const 0) (i64.const 0)) (i64.const 0))) (then - (unreachable))) - (if (i64.ne (i64.const 0) (i64.shr_u (local.get $x4) (i64.const 32))) (then - (unreachable))) - (local.set $v (i32.wrap_i64 (local.get $x4))) - - ) - (local.get $v) -) - -(func $u256_to_i32_726 - (result i32) - (local $v i32) - (block $label__3 - (if (i64.ne (i64.const 0) (i64.or (i64.or (i64.const 0) (i64.const 0)) (i64.const 0))) (then - (unreachable))) - (if (i64.ne (i64.const 0) (i64.shr_u (i64.const 64) (i64.const 32))) (then - (unreachable))) - (local.set $v (i32.wrap_i64 (i64.const 64))) - - ) - (local.get $v) -) - -(func $to_internal_i32ptr - (result i32) - (local $r i32) - (local $p i32) - (block $label__4 - (local.set $p (call $u256_to_i32_344)) - (local.set $r (i32.add (local.get $p) (i32.const 64))) - (if (i32.lt_u (local.get $r) (local.get $p)) (then - (unreachable))) - - ) - (local.get $r) -) - -(func $to_internal_i32ptr_348 - (result i32) - (local $r i32) - (local $v i32) - (block $label__5 - (if (i64.ne (i64.const 0) (i64.or (i64.or (i64.const 0) (i64.const 0)) (i64.const 0))) (then - (unreachable))) - (if (i64.ne (i64.const 0) (i64.shr_u (i64.const 128) (i64.const 32))) (then - (unreachable))) - (local.set $v (i32.wrap_i64 (i64.const 128))) - (local.set $r (i32.add (local.get $v) (i32.const 64))) - (if (i32.lt_u (local.get $r) (local.get $v)) (then - (unreachable))) - - ) - (local.get $r) -) - (func $bswap16 (param $x i32) (result i32) (local $y i32) - (block $label__6 + (block $label__4 (local.set $y (i32.or (i32.and (i32.shl (local.get $x) (i32.const 8)) (i32.const 65280)) (i32.and (i32.shr_u (local.get $x) (i32.const 8)) (i32.const 255)))) ) @@ -130,7 +137,7 @@ (result i32) (local $y i32) (local $hi i32) - (block $label__7 + (block $label__5 (local.set $hi (i32.shl (call $bswap16 (local.get $x)) (i32.const 16))) (local.set $y (i32.or (local.get $hi) (call $bswap16 (i32.shr_u (local.get $x) (i32.const 16))))) @@ -139,16 +146,139 @@ ) (func $bswap64 + (param $x i64) (result i64) (local $y i64) (local $hi i64) - (block $label__8 - (local.set $hi (i64.shl (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.const 128)))) (i64.const 32))) - (local.set $y (i64.or (local.get $hi) (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.shr_u (i64.const 128) (i64.const 32))))))) + (block $label__6 + (local.set $hi (i64.shl (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (local.get $x)))) (i64.const 32))) + (local.set $y (i64.or (local.get $hi) (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.shr_u (local.get $x) (i64.const 32))))))) ) (local.get $y) ) +(func $codecopy + (param $y4 i64) + (param $z4 i64) + (local $_1 i32) + (local $_2 i32) + (local $p i32) + (local $r i32) + (block $label__7 + (local.set $_1 (call $u256_to_i32_1381 (local.get $z4))) + (local.set $_2 (call $u256_to_i32_1381 (local.get $y4))) + (local.set $p (call $u256_to_i32)) + (local.set $r (i32.add (local.get $p) (i32.const 64))) + (if (i32.lt_u (local.get $r) (local.get $p)) (then + (unreachable))) + (call $eth.codeCopy (local.get $r) (local.get $_2) (local.get $_1)) + ) +) + +(func $mstore_730 + (local $_1 i64) + (local $v i32) + (local $r i32) + (local $hi i64) + (local $y i64) + (local $hi_1 i64) + (block $label__8 + (local.set $_1 (i64.const 0)) + (if (i64.ne (local.get $_1) (i64.or (i64.or (local.get $_1) (local.get $_1)) (local.get $_1))) (then + (unreachable))) + (if (i64.ne (local.get $_1) (i64.shr_u (i64.const 64) (i64.const 32))) (then + (unreachable))) + (local.set $v (i32.wrap_i64 (i64.const 64))) + (local.set $r (i32.add (local.get $v) (i32.const 64))) + (if (i32.lt_u (local.get $r) (local.get $v)) (then + (unreachable))) + (local.set $hi (i64.shl (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (local.get $_1)))) (i64.const 32))) + (local.set $y (i64.or (local.get $hi) (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.shr_u (local.get $_1) (i64.const 32))))))) + (i64.store (local.get $r) (local.get $y)) + (i64.store (i32.add (local.get $r) (i32.const 8)) (local.get $y)) + (i64.store (i32.add (local.get $r) (i32.const 16)) (local.get $y)) + (local.set $hi_1 (i64.shl (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.const 128)))) (i64.const 32))) + (i64.store (i32.add (local.get $r) (i32.const 24)) (i64.or (local.get $hi_1) (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.shr_u (i64.const 128) (i64.const 32))))))) + ) +) + +(func $mstore_731 + (param $y1 i64) + (param $y2 i64) + (param $y3 i64) + (param $y4 i64) + (local $p i32) + (local $r i32) + (block $label__9 + (local.set $p (call $u256_to_i32_1385)) + (local.set $r (i32.add (local.get $p) (i32.const 64))) + (if (i32.lt_u (local.get $r) (local.get $p)) (then + (unreachable))) + (i64.store (local.get $r) (call $bswap64 (local.get $y1))) + (i64.store (i32.add (local.get $r) (i32.const 8)) (call $bswap64 (local.get $y2))) + (i64.store (i32.add (local.get $r) (i32.const 16)) (call $bswap64 (local.get $y3))) + (i64.store (i32.add (local.get $r) (i32.const 24)) (call $bswap64 (local.get $y4))) + ) +) + +(func $mstore + (local $_1 i64) + (local $v i32) + (local $r i32) + (local $hi i64) + (local $y i64) + (local $hi_1 i64) + (block $label__10 + (local.set $_1 (i64.const 0)) + (if (i64.ne (local.get $_1) (i64.or (i64.or (local.get $_1) (local.get $_1)) (local.get $_1))) (then + (unreachable))) + (if (i64.ne (local.get $_1) (i64.shr_u (i64.const 4) (i64.const 32))) (then + (unreachable))) + (local.set $v (i32.wrap_i64 (i64.const 4))) + (local.set $r (i32.add (local.get $v) (i32.const 64))) + (if (i32.lt_u (local.get $r) (local.get $v)) (then + (unreachable))) + (local.set $hi (i64.shl (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (local.get $_1)))) (i64.const 32))) + (local.set $y (i64.or (local.get $hi) (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.shr_u (local.get $_1) (i64.const 32))))))) + (i64.store (local.get $r) (local.get $y)) + (i64.store (i32.add (local.get $r) (i32.const 8)) (local.get $y)) + (i64.store (i32.add (local.get $r) (i32.const 16)) (local.get $y)) + (local.set $hi_1 (i64.shl (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.const 2)))) (i64.const 32))) + (i64.store (i32.add (local.get $r) (i32.const 24)) (i64.or (local.get $hi_1) (i64.extend_i32_u (call $bswap32 (i32.wrap_i64 (i64.shr_u (i64.const 2) (i64.const 32))))))) + ) +) + +(func $return + (param $y4 i64) + (local $_1 i32) + (local $p i32) + (local $r i32) + (block $label__11 + (local.set $_1 (call $u256_to_i32_1381 (local.get $y4))) + (local.set $p (call $u256_to_i32)) + (local.set $r (i32.add (local.get $p) (i32.const 64))) + (if (i32.lt_u (local.get $r) (local.get $p)) (then + (unreachable))) + (call $eth.finish (local.get $r) (local.get $_1)) + ) +) + +(func $revert + (local $p i32) + (local $r i32) + (block $label__12 + (if (i64.ne (i64.const 0) (i64.or (i64.or (i64.const 0) (i64.const 0)) (i64.const 0))) (then + (unreachable))) + (if (i64.ne (i64.const 0) (i64.shr_u (i64.const 36) (i64.const 32))) (then + (unreachable))) + (local.set $p (call $u256_to_i32_1385)) + (local.set $r (i32.add (local.get $p) (i32.const 64))) + (if (i32.lt_u (local.get $r) (local.get $p)) (then + (unreachable))) + (call $eth.revert (local.get $r) (i32.wrap_i64 (i64.const 36))) + ) +) + ) "}}}},"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_function_debug_info/output.json b/test/cmdlineTests/standard_function_debug_info/output.json index e0e6d7257..eee2c23d4 100644 --- a/test/cmdlineTests/standard_function_debug_info/output.json +++ b/test/cmdlineTests/standard_function_debug_info/output.json @@ -1 +1 @@ -{"contracts":{"a.sol":{"A":{"evm":{"bytecode":{"functionDebugData":{}},"deployedBytecode":{"functionDebugData":{"@f_19":{"entryPoint":96,"id":19,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":171,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":283,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":329,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":350,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":423,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":438,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":465,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":492,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":502,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":546,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":632,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":642,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":691,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":738,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":785,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":832,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":837,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":842,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":847,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":852,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_uint256":{"entryPoint":869,"id":null,"parameterSlots":1,"returnSlots":0}}}}}}},"sources":{"a.sol":{"id":0}}} +{"contracts":{"a.sol":{"A":{"evm":{"bytecode":{"functionDebugData":{"panic_error_0x02":{"entryPoint":24,"id":null,"parameterSlots":0,"returnSlots":0}}},"deployedBytecode":{"functionDebugData":{"@f_19":{"entryPoint":98,"id":19,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":173,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":285,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":331,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":352,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":425,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":440,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":467,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":494,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":504,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":548,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":634,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":644,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x02":{"entryPoint":693,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":740,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":787,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":834,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":881,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":886,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":891,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":896,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":901,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_uint256":{"entryPoint":918,"id":null,"parameterSlots":1,"returnSlots":0}}}}}}},"sources":{"a.sol":{"id":0}}} diff --git a/test/cmdlineTests/standard_generatedSources/output.json b/test/cmdlineTests/standard_generatedSources/output.json index 507bc25ed..0c4a4943f 100644 --- a/test/cmdlineTests/standard_generatedSources/output.json +++ b/test/cmdlineTests/standard_generatedSources/output.json @@ -1,4 +1,13 @@ -{"contracts":{"a.sol":{"A":{"evm":{"bytecode":{"generatedSources":[],"object":""},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4001:1","statements":[{"body":{"nodeType":"YulBlock","src":"126:620:1","statements":[{"nodeType":"YulAssignment","src":"136:90:1","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"218:6:1"}],"functionName":{"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"161:56:1"},"nodeType":"YulFunctionCall","src":"161:64:1"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"145:15:1"},"nodeType":"YulFunctionCall","src":"145:81:1"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:1"}]},{"nodeType":"YulVariableDeclaration","src":"235:16:1","value":{"name":"array","nodeType":"YulIdentifier","src":"246:5:1"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"239:3:1","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"268:5:1"},{"name":"length","nodeType":"YulIdentifier","src":"275:6:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"261:6:1"},"nodeType":"YulFunctionCall","src":"261:21:1"},"nodeType":"YulExpressionStatement","src":"261:21:1"},{"nodeType":"YulAssignment","src":"291:23:1","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"302:5:1"},{"kind":"number","nodeType":"YulLiteral","src":"309:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:1"},"nodeType":"YulFunctionCall","src":"298:16:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"291:3:1"}]},{"nodeType":"YulVariableDeclaration","src":"324:17:1","value":{"name":"offset","nodeType":"YulIdentifier","src":"335:6:1"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"328:3:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"390:103:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"404:77:1"},"nodeType":"YulFunctionCall","src":"404:79:1"},"nodeType":"YulExpressionStatement","src":"404:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"360:3:1"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"369:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"377:4:1","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"365:3:1"},"nodeType":"YulFunctionCall","src":"365:17:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"356:3:1"},"nodeType":"YulFunctionCall","src":"356:27:1"},{"name":"end","nodeType":"YulIdentifier","src":"385:3:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"353:2:1"},"nodeType":"YulFunctionCall","src":"353:36:1"},"nodeType":"YulIf","src":"350:2:1"},{"body":{"nodeType":"YulBlock","src":"562:178:1","statements":[{"nodeType":"YulVariableDeclaration","src":"577:21:1","value":{"name":"src","nodeType":"YulIdentifier","src":"595:3:1"},"variables":[{"name":"elementPos","nodeType":"YulTypedName","src":"581:10:1","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"619:3:1"},{"arguments":[{"name":"elementPos","nodeType":"YulIdentifier","src":"645:10:1"},{"name":"end","nodeType":"YulIdentifier","src":"657:3:1"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"624:20:1"},"nodeType":"YulFunctionCall","src":"624:37:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"612:6:1"},"nodeType":"YulFunctionCall","src":"612:50:1"},"nodeType":"YulExpressionStatement","src":"612:50:1"},{"nodeType":"YulAssignment","src":"675:21:1","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"686:3:1"},{"kind":"number","nodeType":"YulLiteral","src":"691:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"682:3:1"},"nodeType":"YulFunctionCall","src":"682:14:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"675:3:1"}]},{"nodeType":"YulAssignment","src":"709:21:1","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"720:3:1"},{"kind":"number","nodeType":"YulLiteral","src":"725:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"716:3:1"},"nodeType":"YulFunctionCall","src":"716:14:1"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"709:3:1"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"524:1:1"},{"name":"length","nodeType":"YulIdentifier","src":"527:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"521:2:1"},"nodeType":"YulFunctionCall","src":"521:13:1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"535:18:1","statements":[{"nodeType":"YulAssignment","src":"537:14:1","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"546:1:1"},{"kind":"number","nodeType":"YulLiteral","src":"549:1:1","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"542:3:1"},"nodeType":"YulFunctionCall","src":"542:9:1"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"537:1:1"}]}]},"pre":{"nodeType":"YulBlock","src":"506:14:1","statements":[{"nodeType":"YulVariableDeclaration","src":"508:10:1","value":{"kind":"number","nodeType":"YulLiteral","src":"517:1:1","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"512:1:1","type":""}]}]},"src":"502:238:1"}]},"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"96:6:1","type":""},{"name":"length","nodeType":"YulTypedName","src":"104:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"112:3:1","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"120:5:1","type":""}],"src":"24:722:1"},{"body":{"nodeType":"YulBlock","src":"846:293:1","statements":[{"body":{"nodeType":"YulBlock","src":"895:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"897:77:1"},"nodeType":"YulFunctionCall","src":"897:79:1"},"nodeType":"YulExpressionStatement","src":"897:79:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"874:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"882:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"870:3:1"},"nodeType":"YulFunctionCall","src":"870:17:1"},{"name":"end","nodeType":"YulIdentifier","src":"889:3:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"866:3:1"},"nodeType":"YulFunctionCall","src":"866:27:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"859:6:1"},"nodeType":"YulFunctionCall","src":"859:35:1"},"nodeType":"YulIf","src":"856:2:1"},{"nodeType":"YulVariableDeclaration","src":"987:34:1","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1014:6:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1001:12:1"},"nodeType":"YulFunctionCall","src":"1001:20:1"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"991:6:1","type":""}]},{"nodeType":"YulAssignment","src":"1030:103:1","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1106:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"1114:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1102:3:1"},"nodeType":"YulFunctionCall","src":"1102:17:1"},{"name":"length","nodeType":"YulIdentifier","src":"1121:6:1"},{"name":"end","nodeType":"YulIdentifier","src":"1129:3:1"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"1039:62:1"},"nodeType":"YulFunctionCall","src":"1039:94:1"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1030:5:1"}]}]},"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"824:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"832:3:1","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"840:5:1","type":""}],"src":"769:370:1"},{"body":{"nodeType":"YulBlock","src":"1197:87:1","statements":[{"nodeType":"YulAssignment","src":"1207:29:1","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1229:6:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1216:12:1"},"nodeType":"YulFunctionCall","src":"1216:20:1"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1207:5:1"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1272:5:1"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"1245:26:1"},"nodeType":"YulFunctionCall","src":"1245:33:1"},"nodeType":"YulExpressionStatement","src":"1245:33:1"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1175:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"1183:3:1","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1191:5:1","type":""}],"src":"1145:139:1"},{"body":{"nodeType":"YulBlock","src":"1381:448:1","statements":[{"body":{"nodeType":"YulBlock","src":"1427:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"1429:77:1"},"nodeType":"YulFunctionCall","src":"1429:79:1"},"nodeType":"YulExpressionStatement","src":"1429:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1402:7:1"},{"name":"headStart","nodeType":"YulIdentifier","src":"1411:9:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1398:3:1"},"nodeType":"YulFunctionCall","src":"1398:23:1"},{"kind":"number","nodeType":"YulLiteral","src":"1423:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1394:3:1"},"nodeType":"YulFunctionCall","src":"1394:32:1"},"nodeType":"YulIf","src":"1391:2:1"},{"nodeType":"YulBlock","src":"1520:302:1","statements":[{"nodeType":"YulVariableDeclaration","src":"1535:45:1","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1566:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1577:1:1","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1562:3:1"},"nodeType":"YulFunctionCall","src":"1562:17:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1549:12:1"},"nodeType":"YulFunctionCall","src":"1549:31:1"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1539:6:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"1627:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"1629:77:1"},"nodeType":"YulFunctionCall","src":"1629:79:1"},"nodeType":"YulExpressionStatement","src":"1629:79:1"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1599:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"1607:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1596:2:1"},"nodeType":"YulFunctionCall","src":"1596:30:1"},"nodeType":"YulIf","src":"1593:2:1"},{"nodeType":"YulAssignment","src":"1724:88:1","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1784:9:1"},{"name":"offset","nodeType":"YulIdentifier","src":"1795:6:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1780:3:1"},"nodeType":"YulFunctionCall","src":"1780:22:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1804:7:1"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"1734:45:1"},"nodeType":"YulFunctionCall","src":"1734:78:1"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1724:6:1"}]}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1351:9:1","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1362:7:1","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1374:6:1","type":""}],"src":"1290:539:1"},{"body":{"nodeType":"YulBlock","src":"1900:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1917:3:1"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1940:5:1"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1922:17:1"},"nodeType":"YulFunctionCall","src":"1922:24:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1910:6:1"},"nodeType":"YulFunctionCall","src":"1910:37:1"},"nodeType":"YulExpressionStatement","src":"1910:37:1"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1888:5:1","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1895:3:1","type":""}],"src":"1835:118:1"},{"body":{"nodeType":"YulBlock","src":"2057:124:1","statements":[{"nodeType":"YulAssignment","src":"2067:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2079:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"2090:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2075:3:1"},"nodeType":"YulFunctionCall","src":"2075:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2067:4:1"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2147:6:1"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2160:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"2171:1:1","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2156:3:1"},"nodeType":"YulFunctionCall","src":"2156:17:1"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2103:43:1"},"nodeType":"YulFunctionCall","src":"2103:71:1"},"nodeType":"YulExpressionStatement","src":"2103:71:1"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2029:9:1","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2041:6:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2052:4:1","type":""}],"src":"1959:222:1"},{"body":{"nodeType":"YulBlock","src":"2228:88:1","statements":[{"nodeType":"YulAssignment","src":"2238:30:1","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"2248:18:1"},"nodeType":"YulFunctionCall","src":"2248:20:1"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2238:6:1"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2297:6:1"},{"name":"size","nodeType":"YulIdentifier","src":"2305:4:1"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"2277:19:1"},"nodeType":"YulFunctionCall","src":"2277:33:1"},"nodeType":"YulExpressionStatement","src":"2277:33:1"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"2212:4:1","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2221:6:1","type":""}],"src":"2187:129:1"},{"body":{"nodeType":"YulBlock","src":"2362:35:1","statements":[{"nodeType":"YulAssignment","src":"2372:19:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2388:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2382:5:1"},"nodeType":"YulFunctionCall","src":"2382:9:1"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2372:6:1"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2355:6:1","type":""}],"src":"2322:75:1"},{"body":{"nodeType":"YulBlock","src":"2485:229:1","statements":[{"body":{"nodeType":"YulBlock","src":"2590:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2592:16:1"},"nodeType":"YulFunctionCall","src":"2592:18:1"},"nodeType":"YulExpressionStatement","src":"2592:18:1"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2562:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"2570:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2559:2:1"},"nodeType":"YulFunctionCall","src":"2559:30:1"},"nodeType":"YulIf","src":"2556:2:1"},{"nodeType":"YulAssignment","src":"2622:25:1","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2634:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"2642:4:1","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2630:3:1"},"nodeType":"YulFunctionCall","src":"2630:17:1"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"2622:4:1"}]},{"nodeType":"YulAssignment","src":"2684:23:1","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2696:4:1"},{"kind":"number","nodeType":"YulLiteral","src":"2702:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2692:3:1"},"nodeType":"YulFunctionCall","src":"2692:15:1"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"2684:4:1"}]}]},"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"2469:6:1","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"2480:4:1","type":""}],"src":"2403:311:1"},{"body":{"nodeType":"YulBlock","src":"2765:32:1","statements":[{"nodeType":"YulAssignment","src":"2775:16:1","value":{"name":"value","nodeType":"YulIdentifier","src":"2786:5:1"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2775:7:1"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2747:5:1","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2757:7:1","type":""}],"src":"2720:77:1"},{"body":{"nodeType":"YulBlock","src":"2846:238:1","statements":[{"nodeType":"YulVariableDeclaration","src":"2856:58:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2878:6:1"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2908:4:1"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"2886:21:1"},"nodeType":"YulFunctionCall","src":"2886:27:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2874:3:1"},"nodeType":"YulFunctionCall","src":"2874:40:1"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2860:10:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"3025:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3027:16:1"},"nodeType":"YulFunctionCall","src":"3027:18:1"},"nodeType":"YulExpressionStatement","src":"3027:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2968:10:1"},{"kind":"number","nodeType":"YulLiteral","src":"2980:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2965:2:1"},"nodeType":"YulFunctionCall","src":"2965:34:1"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3004:10:1"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3016:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3001:2:1"},"nodeType":"YulFunctionCall","src":"3001:22:1"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2962:2:1"},"nodeType":"YulFunctionCall","src":"2962:62:1"},"nodeType":"YulIf","src":"2959:2:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3063:2:1","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3067:10:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3056:6:1"},"nodeType":"YulFunctionCall","src":"3056:22:1"},"nodeType":"YulExpressionStatement","src":"3056:22:1"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"2832:6:1","type":""},{"name":"size","nodeType":"YulTypedName","src":"2840:4:1","type":""}],"src":"2803:281:1"},{"body":{"nodeType":"YulBlock","src":"3118:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3135:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3138:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3128:6:1"},"nodeType":"YulFunctionCall","src":"3128:88:1"},"nodeType":"YulExpressionStatement","src":"3128:88:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3232:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3235:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3225:6:1"},"nodeType":"YulFunctionCall","src":"3225:15:1"},"nodeType":"YulExpressionStatement","src":"3225:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3256:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3259:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3249:6:1"},"nodeType":"YulFunctionCall","src":"3249:15:1"},"nodeType":"YulExpressionStatement","src":"3249:15:1"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3090:180:1"},{"body":{"nodeType":"YulBlock","src":"3365:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3382:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3385:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3375:6:1"},"nodeType":"YulFunctionCall","src":"3375:12:1"},"nodeType":"YulExpressionStatement","src":"3375:12:1"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"3276:117:1"},{"body":{"nodeType":"YulBlock","src":"3488:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3505:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3508:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3498:6:1"},"nodeType":"YulFunctionCall","src":"3498:12:1"},"nodeType":"YulExpressionStatement","src":"3498:12:1"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulFunctionDefinition","src":"3399:117:1"},{"body":{"nodeType":"YulBlock","src":"3611:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3628:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3631:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3621:6:1"},"nodeType":"YulFunctionCall","src":"3621:12:1"},"nodeType":"YulExpressionStatement","src":"3621:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"3522:117:1"},{"body":{"nodeType":"YulBlock","src":"3734:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3751:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3754:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3744:6:1"},"nodeType":"YulFunctionCall","src":"3744:12:1"},"nodeType":"YulExpressionStatement","src":"3744:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"3645:117:1"},{"body":{"nodeType":"YulBlock","src":"3816:54:1","statements":[{"nodeType":"YulAssignment","src":"3826:38:1","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3844:5:1"},{"kind":"number","nodeType":"YulLiteral","src":"3851:2:1","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3840:3:1"},"nodeType":"YulFunctionCall","src":"3840:14:1"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3860:2:1","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3856:3:1"},"nodeType":"YulFunctionCall","src":"3856:7:1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3836:3:1"},"nodeType":"YulFunctionCall","src":"3836:28:1"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"3826:6:1"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3799:5:1","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"3809:6:1","type":""}],"src":"3768:102:1"},{"body":{"nodeType":"YulBlock","src":"3919:79:1","statements":[{"body":{"nodeType":"YulBlock","src":"3976:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3985:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3988:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3978:6:1"},"nodeType":"YulFunctionCall","src":"3978:12:1"},"nodeType":"YulExpressionStatement","src":"3978:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3942:5:1"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3967:5:1"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"3949:17:1"},"nodeType":"YulFunctionCall","src":"3949:24:1"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3939:2:1"},"nodeType":"YulFunctionCall","src":"3939:35:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3932:6:1"},"nodeType":"YulFunctionCall","src":"3932:43:1"},"nodeType":"YulIf","src":"3929:2:1"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3912:5:1","type":""}],"src":"3876:122:1"}]},"contents":"{ +{"contracts":{"a.sol":{"A":{"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:190:1","statements":[{"body":{"nodeType":"YulBlock","src":"35:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"52:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"55:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45:6:1"},"nodeType":"YulFunctionCall","src":"45:88:1"},"nodeType":"YulExpressionStatement","src":"45:88:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"149:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"152:4:1","type":"","value":"0x02"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"142:6:1"},"nodeType":"YulFunctionCall","src":"142:15:1"},"nodeType":"YulExpressionStatement","src":"142:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"173:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"176:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"166:6:1"},"nodeType":"YulFunctionCall","src":"166:15:1"},"nodeType":"YulExpressionStatement","src":"166:15:1"}]},"name":"panic_error_0x02","nodeType":"YulFunctionDefinition","src":"7:180:1"}]},"contents":"{ + + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } + +} +","id":1,"language":"Yul","name":"#utility.yul"}],"object":""},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4187:1","statements":[{"body":{"nodeType":"YulBlock","src":"126:620:1","statements":[{"nodeType":"YulAssignment","src":"136:90:1","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"218:6:1"}],"functionName":{"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"161:56:1"},"nodeType":"YulFunctionCall","src":"161:64:1"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"145:15:1"},"nodeType":"YulFunctionCall","src":"145:81:1"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:1"}]},{"nodeType":"YulVariableDeclaration","src":"235:16:1","value":{"name":"array","nodeType":"YulIdentifier","src":"246:5:1"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"239:3:1","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"268:5:1"},{"name":"length","nodeType":"YulIdentifier","src":"275:6:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"261:6:1"},"nodeType":"YulFunctionCall","src":"261:21:1"},"nodeType":"YulExpressionStatement","src":"261:21:1"},{"nodeType":"YulAssignment","src":"291:23:1","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"302:5:1"},{"kind":"number","nodeType":"YulLiteral","src":"309:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:1"},"nodeType":"YulFunctionCall","src":"298:16:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"291:3:1"}]},{"nodeType":"YulVariableDeclaration","src":"324:17:1","value":{"name":"offset","nodeType":"YulIdentifier","src":"335:6:1"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"328:3:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"390:103:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"404:77:1"},"nodeType":"YulFunctionCall","src":"404:79:1"},"nodeType":"YulExpressionStatement","src":"404:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"360:3:1"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"369:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"377:4:1","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"365:3:1"},"nodeType":"YulFunctionCall","src":"365:17:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"356:3:1"},"nodeType":"YulFunctionCall","src":"356:27:1"},{"name":"end","nodeType":"YulIdentifier","src":"385:3:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"353:2:1"},"nodeType":"YulFunctionCall","src":"353:36:1"},"nodeType":"YulIf","src":"350:2:1"},{"body":{"nodeType":"YulBlock","src":"562:178:1","statements":[{"nodeType":"YulVariableDeclaration","src":"577:21:1","value":{"name":"src","nodeType":"YulIdentifier","src":"595:3:1"},"variables":[{"name":"elementPos","nodeType":"YulTypedName","src":"581:10:1","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"619:3:1"},{"arguments":[{"name":"elementPos","nodeType":"YulIdentifier","src":"645:10:1"},{"name":"end","nodeType":"YulIdentifier","src":"657:3:1"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"624:20:1"},"nodeType":"YulFunctionCall","src":"624:37:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"612:6:1"},"nodeType":"YulFunctionCall","src":"612:50:1"},"nodeType":"YulExpressionStatement","src":"612:50:1"},{"nodeType":"YulAssignment","src":"675:21:1","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"686:3:1"},{"kind":"number","nodeType":"YulLiteral","src":"691:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"682:3:1"},"nodeType":"YulFunctionCall","src":"682:14:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"675:3:1"}]},{"nodeType":"YulAssignment","src":"709:21:1","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"720:3:1"},{"kind":"number","nodeType":"YulLiteral","src":"725:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"716:3:1"},"nodeType":"YulFunctionCall","src":"716:14:1"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"709:3:1"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"524:1:1"},{"name":"length","nodeType":"YulIdentifier","src":"527:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"521:2:1"},"nodeType":"YulFunctionCall","src":"521:13:1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"535:18:1","statements":[{"nodeType":"YulAssignment","src":"537:14:1","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"546:1:1"},{"kind":"number","nodeType":"YulLiteral","src":"549:1:1","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"542:3:1"},"nodeType":"YulFunctionCall","src":"542:9:1"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"537:1:1"}]}]},"pre":{"nodeType":"YulBlock","src":"506:14:1","statements":[{"nodeType":"YulVariableDeclaration","src":"508:10:1","value":{"kind":"number","nodeType":"YulLiteral","src":"517:1:1","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"512:1:1","type":""}]}]},"src":"502:238:1"}]},"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"96:6:1","type":""},{"name":"length","nodeType":"YulTypedName","src":"104:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"112:3:1","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"120:5:1","type":""}],"src":"24:722:1"},{"body":{"nodeType":"YulBlock","src":"846:293:1","statements":[{"body":{"nodeType":"YulBlock","src":"895:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"897:77:1"},"nodeType":"YulFunctionCall","src":"897:79:1"},"nodeType":"YulExpressionStatement","src":"897:79:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"874:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"882:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"870:3:1"},"nodeType":"YulFunctionCall","src":"870:17:1"},{"name":"end","nodeType":"YulIdentifier","src":"889:3:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"866:3:1"},"nodeType":"YulFunctionCall","src":"866:27:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"859:6:1"},"nodeType":"YulFunctionCall","src":"859:35:1"},"nodeType":"YulIf","src":"856:2:1"},{"nodeType":"YulVariableDeclaration","src":"987:34:1","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1014:6:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1001:12:1"},"nodeType":"YulFunctionCall","src":"1001:20:1"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"991:6:1","type":""}]},{"nodeType":"YulAssignment","src":"1030:103:1","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1106:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"1114:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1102:3:1"},"nodeType":"YulFunctionCall","src":"1102:17:1"},{"name":"length","nodeType":"YulIdentifier","src":"1121:6:1"},{"name":"end","nodeType":"YulIdentifier","src":"1129:3:1"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"1039:62:1"},"nodeType":"YulFunctionCall","src":"1039:94:1"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1030:5:1"}]}]},"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"824:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"832:3:1","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"840:5:1","type":""}],"src":"769:370:1"},{"body":{"nodeType":"YulBlock","src":"1197:87:1","statements":[{"nodeType":"YulAssignment","src":"1207:29:1","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1229:6:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1216:12:1"},"nodeType":"YulFunctionCall","src":"1216:20:1"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1207:5:1"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1272:5:1"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"1245:26:1"},"nodeType":"YulFunctionCall","src":"1245:33:1"},"nodeType":"YulExpressionStatement","src":"1245:33:1"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1175:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"1183:3:1","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1191:5:1","type":""}],"src":"1145:139:1"},{"body":{"nodeType":"YulBlock","src":"1381:448:1","statements":[{"body":{"nodeType":"YulBlock","src":"1427:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"1429:77:1"},"nodeType":"YulFunctionCall","src":"1429:79:1"},"nodeType":"YulExpressionStatement","src":"1429:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1402:7:1"},{"name":"headStart","nodeType":"YulIdentifier","src":"1411:9:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1398:3:1"},"nodeType":"YulFunctionCall","src":"1398:23:1"},{"kind":"number","nodeType":"YulLiteral","src":"1423:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1394:3:1"},"nodeType":"YulFunctionCall","src":"1394:32:1"},"nodeType":"YulIf","src":"1391:2:1"},{"nodeType":"YulBlock","src":"1520:302:1","statements":[{"nodeType":"YulVariableDeclaration","src":"1535:45:1","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1566:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1577:1:1","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1562:3:1"},"nodeType":"YulFunctionCall","src":"1562:17:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1549:12:1"},"nodeType":"YulFunctionCall","src":"1549:31:1"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1539:6:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"1627:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"1629:77:1"},"nodeType":"YulFunctionCall","src":"1629:79:1"},"nodeType":"YulExpressionStatement","src":"1629:79:1"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1599:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"1607:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1596:2:1"},"nodeType":"YulFunctionCall","src":"1596:30:1"},"nodeType":"YulIf","src":"1593:2:1"},{"nodeType":"YulAssignment","src":"1724:88:1","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1784:9:1"},{"name":"offset","nodeType":"YulIdentifier","src":"1795:6:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1780:3:1"},"nodeType":"YulFunctionCall","src":"1780:22:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1804:7:1"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"1734:45:1"},"nodeType":"YulFunctionCall","src":"1734:78:1"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1724:6:1"}]}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1351:9:1","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1362:7:1","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1374:6:1","type":""}],"src":"1290:539:1"},{"body":{"nodeType":"YulBlock","src":"1900:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1917:3:1"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1940:5:1"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1922:17:1"},"nodeType":"YulFunctionCall","src":"1922:24:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1910:6:1"},"nodeType":"YulFunctionCall","src":"1910:37:1"},"nodeType":"YulExpressionStatement","src":"1910:37:1"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1888:5:1","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1895:3:1","type":""}],"src":"1835:118:1"},{"body":{"nodeType":"YulBlock","src":"2057:124:1","statements":[{"nodeType":"YulAssignment","src":"2067:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2079:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"2090:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2075:3:1"},"nodeType":"YulFunctionCall","src":"2075:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2067:4:1"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2147:6:1"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2160:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"2171:1:1","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2156:3:1"},"nodeType":"YulFunctionCall","src":"2156:17:1"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"2103:43:1"},"nodeType":"YulFunctionCall","src":"2103:71:1"},"nodeType":"YulExpressionStatement","src":"2103:71:1"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2029:9:1","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2041:6:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2052:4:1","type":""}],"src":"1959:222:1"},{"body":{"nodeType":"YulBlock","src":"2228:88:1","statements":[{"nodeType":"YulAssignment","src":"2238:30:1","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"2248:18:1"},"nodeType":"YulFunctionCall","src":"2248:20:1"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2238:6:1"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2297:6:1"},{"name":"size","nodeType":"YulIdentifier","src":"2305:4:1"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"2277:19:1"},"nodeType":"YulFunctionCall","src":"2277:33:1"},"nodeType":"YulExpressionStatement","src":"2277:33:1"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"2212:4:1","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2221:6:1","type":""}],"src":"2187:129:1"},{"body":{"nodeType":"YulBlock","src":"2362:35:1","statements":[{"nodeType":"YulAssignment","src":"2372:19:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2388:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2382:5:1"},"nodeType":"YulFunctionCall","src":"2382:9:1"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2372:6:1"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2355:6:1","type":""}],"src":"2322:75:1"},{"body":{"nodeType":"YulBlock","src":"2485:229:1","statements":[{"body":{"nodeType":"YulBlock","src":"2590:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2592:16:1"},"nodeType":"YulFunctionCall","src":"2592:18:1"},"nodeType":"YulExpressionStatement","src":"2592:18:1"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2562:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"2570:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2559:2:1"},"nodeType":"YulFunctionCall","src":"2559:30:1"},"nodeType":"YulIf","src":"2556:2:1"},{"nodeType":"YulAssignment","src":"2622:25:1","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2634:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"2642:4:1","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2630:3:1"},"nodeType":"YulFunctionCall","src":"2630:17:1"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"2622:4:1"}]},{"nodeType":"YulAssignment","src":"2684:23:1","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2696:4:1"},{"kind":"number","nodeType":"YulLiteral","src":"2702:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2692:3:1"},"nodeType":"YulFunctionCall","src":"2692:15:1"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"2684:4:1"}]}]},"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"2469:6:1","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"2480:4:1","type":""}],"src":"2403:311:1"},{"body":{"nodeType":"YulBlock","src":"2765:32:1","statements":[{"nodeType":"YulAssignment","src":"2775:16:1","value":{"name":"value","nodeType":"YulIdentifier","src":"2786:5:1"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2775:7:1"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2747:5:1","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2757:7:1","type":""}],"src":"2720:77:1"},{"body":{"nodeType":"YulBlock","src":"2846:238:1","statements":[{"nodeType":"YulVariableDeclaration","src":"2856:58:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2878:6:1"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2908:4:1"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"2886:21:1"},"nodeType":"YulFunctionCall","src":"2886:27:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2874:3:1"},"nodeType":"YulFunctionCall","src":"2874:40:1"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2860:10:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"3025:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3027:16:1"},"nodeType":"YulFunctionCall","src":"3027:18:1"},"nodeType":"YulExpressionStatement","src":"3027:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2968:10:1"},{"kind":"number","nodeType":"YulLiteral","src":"2980:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2965:2:1"},"nodeType":"YulFunctionCall","src":"2965:34:1"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3004:10:1"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3016:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3001:2:1"},"nodeType":"YulFunctionCall","src":"3001:22:1"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2962:2:1"},"nodeType":"YulFunctionCall","src":"2962:62:1"},"nodeType":"YulIf","src":"2959:2:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3063:2:1","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3067:10:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3056:6:1"},"nodeType":"YulFunctionCall","src":"3056:22:1"},"nodeType":"YulExpressionStatement","src":"3056:22:1"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"2832:6:1","type":""},{"name":"size","nodeType":"YulTypedName","src":"2840:4:1","type":""}],"src":"2803:281:1"},{"body":{"nodeType":"YulBlock","src":"3118:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3135:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3138:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3128:6:1"},"nodeType":"YulFunctionCall","src":"3128:88:1"},"nodeType":"YulExpressionStatement","src":"3128:88:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3232:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3235:4:1","type":"","value":"0x02"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3225:6:1"},"nodeType":"YulFunctionCall","src":"3225:15:1"},"nodeType":"YulExpressionStatement","src":"3225:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3256:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3259:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3249:6:1"},"nodeType":"YulFunctionCall","src":"3249:15:1"},"nodeType":"YulExpressionStatement","src":"3249:15:1"}]},"name":"panic_error_0x02","nodeType":"YulFunctionDefinition","src":"3090:180:1"},{"body":{"nodeType":"YulBlock","src":"3304:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3321:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3324:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3314:6:1"},"nodeType":"YulFunctionCall","src":"3314:88:1"},"nodeType":"YulExpressionStatement","src":"3314:88:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3418:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3421:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3411:6:1"},"nodeType":"YulFunctionCall","src":"3411:15:1"},"nodeType":"YulExpressionStatement","src":"3411:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3442:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3445:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3435:6:1"},"nodeType":"YulFunctionCall","src":"3435:15:1"},"nodeType":"YulExpressionStatement","src":"3435:15:1"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3276:180:1"},{"body":{"nodeType":"YulBlock","src":"3551:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3568:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3571:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3561:6:1"},"nodeType":"YulFunctionCall","src":"3561:12:1"},"nodeType":"YulExpressionStatement","src":"3561:12:1"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"3462:117:1"},{"body":{"nodeType":"YulBlock","src":"3674:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3691:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3694:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3684:6:1"},"nodeType":"YulFunctionCall","src":"3684:12:1"},"nodeType":"YulExpressionStatement","src":"3684:12:1"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulFunctionDefinition","src":"3585:117:1"},{"body":{"nodeType":"YulBlock","src":"3797:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3814:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3817:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3807:6:1"},"nodeType":"YulFunctionCall","src":"3807:12:1"},"nodeType":"YulExpressionStatement","src":"3807:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"3708:117:1"},{"body":{"nodeType":"YulBlock","src":"3920:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3937:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3940:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3930:6:1"},"nodeType":"YulFunctionCall","src":"3930:12:1"},"nodeType":"YulExpressionStatement","src":"3930:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"3831:117:1"},{"body":{"nodeType":"YulBlock","src":"4002:54:1","statements":[{"nodeType":"YulAssignment","src":"4012:38:1","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4030:5:1"},{"kind":"number","nodeType":"YulLiteral","src":"4037:2:1","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4026:3:1"},"nodeType":"YulFunctionCall","src":"4026:14:1"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4046:2:1","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4042:3:1"},"nodeType":"YulFunctionCall","src":"4042:7:1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4022:3:1"},"nodeType":"YulFunctionCall","src":"4022:28:1"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"4012:6:1"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3985:5:1","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"3995:6:1","type":""}],"src":"3954:102:1"},{"body":{"nodeType":"YulBlock","src":"4105:79:1","statements":[{"body":{"nodeType":"YulBlock","src":"4162:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4171:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4174:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4164:6:1"},"nodeType":"YulFunctionCall","src":"4164:12:1"},"nodeType":"YulExpressionStatement","src":"4164:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4128:5:1"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4153:5:1"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"4135:17:1"},"nodeType":"YulFunctionCall","src":"4135:24:1"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4125:2:1"},"nodeType":"YulFunctionCall","src":"4125:35:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4118:6:1"},"nodeType":"YulFunctionCall","src":"4118:43:1"},"nodeType":"YulIf","src":"4115:2:1"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4098:5:1","type":""}],"src":"4062:122:1"}]},"contents":"{ // uint256[] function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array { @@ -90,6 +99,12 @@ mstore(64, newFreePtr) } + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } + function panic_error_0x41() { mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) mstore(4, 0x41) diff --git a/test/cmdlineTests/standard_irOptimized_requested/output.json b/test/cmdlineTests/standard_irOptimized_requested/output.json index 85364f6d5..1cb875380 100644 --- a/test/cmdlineTests/standard_irOptimized_requested/output.json +++ b/test/cmdlineTests/standard_irOptimized_requested/output.json @@ -8,9 +8,8 @@ object \"C_7\" { code { mstore(64, 128) - if callvalue() { - revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() + if callvalue() { panic_error_0x02() } } constructor_C_7() let _1 := allocate_unbounded() @@ -20,8 +19,12 @@ object \"C_7\" { { memPtr := mload(64) } function constructor_C_7() { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() - { revert(0, 0) } + function panic_error_0x02() + { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } } object \"C_7_deployed\" { code { @@ -31,9 +34,8 @@ object \"C_7\" { let selector := shift_right_224_unsigned(calldataload(0)) switch selector case 0x26121ff0 { - if callvalue() { - revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() + if callvalue() { panic_error_0x02() } } abi_decode_tuple_(4, calldatasize()) fun_f_6() @@ -58,10 +60,14 @@ object \"C_7\" { { memPtr := mload(64) } function fun_f_6() { } + function panic_error_0x02() + { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() - { revert(0, 0) } function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() { revert(0, 0) } function shift_right_224_unsigned(value) -> newValue diff --git a/test/cmdlineTests/standard_ir_requested/output.json b/test/cmdlineTests/standard_ir_requested/output.json index edee7445e..554ebc666 100644 --- a/test/cmdlineTests/standard_ir_requested/output.json +++ b/test/cmdlineTests/standard_ir_requested/output.json @@ -9,7 +9,9 @@ object \"C_7\" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_7() @@ -26,8 +28,10 @@ object \"C_7\" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -44,7 +48,9 @@ object \"C_7\" { { // f() - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } abi_decode_tuple_(4, calldatasize()) fun_f_6() let memPos := allocate_unbounded() @@ -75,11 +81,13 @@ object \"C_7\" { } - function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { + function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } diff --git a/test/cmdlineTests/standard_optimizer_generatedSources/output.json b/test/cmdlineTests/standard_optimizer_generatedSources/output.json index 9e8c34405..ef1600034 100644 --- a/test/cmdlineTests/standard_optimizer_generatedSources/output.json +++ b/test/cmdlineTests/standard_optimizer_generatedSources/output.json @@ -1,4 +1,12 @@ -{"contracts":{"a.sol":{"A":{"evm":{"bytecode":{"generatedSources":[],"object":""},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1456:1","statements":[{"nodeType":"YulBlock","src":"6:3:1","statements":[]},{"body":{"nodeType":"YulBlock","src":"109:1031:1","statements":[{"nodeType":"YulVariableDeclaration","src":"119:12:1","value":{"kind":"number","nodeType":"YulLiteral","src":"129:2:1","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"123:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"176:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"185:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"188:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"178:6:1"},"nodeType":"YulFunctionCall","src":"178:12:1"},"nodeType":"YulExpressionStatement","src":"178:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"151:7:1"},{"name":"headStart","nodeType":"YulIdentifier","src":"160:9:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"147:3:1"},"nodeType":"YulFunctionCall","src":"147:23:1"},{"name":"_1","nodeType":"YulIdentifier","src":"172:2:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"143:3:1"},"nodeType":"YulFunctionCall","src":"143:32:1"},"nodeType":"YulIf","src":"140:2:1"},{"nodeType":"YulVariableDeclaration","src":"201:37:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"228:9:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"215:12:1"},"nodeType":"YulFunctionCall","src":"215:23:1"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"205:6:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"247:28:1","value":{"kind":"number","nodeType":"YulLiteral","src":"257:18:1","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"251:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"302:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"311:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"314:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"304:6:1"},"nodeType":"YulFunctionCall","src":"304:12:1"},"nodeType":"YulExpressionStatement","src":"304:12:1"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"290:6:1"},{"name":"_2","nodeType":"YulIdentifier","src":"298:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"287:2:1"},"nodeType":"YulFunctionCall","src":"287:14:1"},"nodeType":"YulIf","src":"284:2:1"},{"nodeType":"YulVariableDeclaration","src":"327:32:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"341:9:1"},{"name":"offset","nodeType":"YulIdentifier","src":"352:6:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"337:3:1"},"nodeType":"YulFunctionCall","src":"337:22:1"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"331:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"407:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"416:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"419:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"409:6:1"},"nodeType":"YulFunctionCall","src":"409:12:1"},"nodeType":"YulExpressionStatement","src":"409:12:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"386:2:1"},{"kind":"number","nodeType":"YulLiteral","src":"390:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"382:3:1"},"nodeType":"YulFunctionCall","src":"382:13:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"397:7:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"378:3:1"},"nodeType":"YulFunctionCall","src":"378:27:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"371:6:1"},"nodeType":"YulFunctionCall","src":"371:35:1"},"nodeType":"YulIf","src":"368:2:1"},{"nodeType":"YulVariableDeclaration","src":"432:26:1","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"455:2:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"442:12:1"},"nodeType":"YulFunctionCall","src":"442:16:1"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"436:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"481:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"483:16:1"},"nodeType":"YulFunctionCall","src":"483:18:1"},"nodeType":"YulExpressionStatement","src":"483:18:1"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"473:2:1"},{"name":"_2","nodeType":"YulIdentifier","src":"477:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"470:2:1"},"nodeType":"YulFunctionCall","src":"470:10:1"},"nodeType":"YulIf","src":"467:2:1"},{"nodeType":"YulVariableDeclaration","src":"512:20:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:1","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"529:2:1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"522:3:1"},"nodeType":"YulFunctionCall","src":"522:10:1"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"516:2:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"541:23:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"561:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"555:5:1"},"nodeType":"YulFunctionCall","src":"555:9:1"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"545:6:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"573:56:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"595:6:1"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"611:2:1"},{"kind":"number","nodeType":"YulLiteral","src":"615:2:1","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"607:3:1"},"nodeType":"YulFunctionCall","src":"607:11:1"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:1","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"620:3:1"},"nodeType":"YulFunctionCall","src":"620:7:1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"603:3:1"},"nodeType":"YulFunctionCall","src":"603:25:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"591:3:1"},"nodeType":"YulFunctionCall","src":"591:38:1"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"577:10:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"688:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"690:16:1"},"nodeType":"YulFunctionCall","src":"690:18:1"},"nodeType":"YulExpressionStatement","src":"690:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"647:10:1"},{"name":"_2","nodeType":"YulIdentifier","src":"659:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"644:2:1"},"nodeType":"YulFunctionCall","src":"644:18:1"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"667:10:1"},{"name":"memPtr","nodeType":"YulIdentifier","src":"679:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"664:2:1"},"nodeType":"YulFunctionCall","src":"664:22:1"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"641:2:1"},"nodeType":"YulFunctionCall","src":"641:46:1"},"nodeType":"YulIf","src":"638:2:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"726:2:1","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"730:10:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"719:6:1"},"nodeType":"YulFunctionCall","src":"719:22:1"},"nodeType":"YulExpressionStatement","src":"719:22:1"},{"nodeType":"YulVariableDeclaration","src":"750:17:1","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"761:6:1"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"754:3:1","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"783:6:1"},{"name":"_4","nodeType":"YulIdentifier","src":"791:2:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"776:6:1"},"nodeType":"YulFunctionCall","src":"776:18:1"},"nodeType":"YulExpressionStatement","src":"776:18:1"},{"nodeType":"YulAssignment","src":"803:22:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"814:6:1"},{"name":"_1","nodeType":"YulIdentifier","src":"822:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:1"},"nodeType":"YulFunctionCall","src":"810:15:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"803:3:1"}]},{"nodeType":"YulVariableDeclaration","src":"834:22:1","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"849:2:1"},{"name":"_1","nodeType":"YulIdentifier","src":"853:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"845:3:1"},"nodeType":"YulFunctionCall","src":"845:11:1"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"838:3:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"902:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"911:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"914:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"904:6:1"},"nodeType":"YulFunctionCall","src":"904:12:1"},"nodeType":"YulExpressionStatement","src":"904:12:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"879:2:1"},{"name":"_5","nodeType":"YulIdentifier","src":"883:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"875:3:1"},"nodeType":"YulFunctionCall","src":"875:11:1"},{"name":"_1","nodeType":"YulIdentifier","src":"888:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"871:3:1"},"nodeType":"YulFunctionCall","src":"871:20:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"893:7:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"868:2:1"},"nodeType":"YulFunctionCall","src":"868:33:1"},"nodeType":"YulIf","src":"865:2:1"},{"nodeType":"YulVariableDeclaration","src":"927:10:1","value":{"kind":"number","nodeType":"YulLiteral","src":"936:1:1","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"931:1:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"991:118:1","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1012:3:1"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1030:3:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1017:12:1"},"nodeType":"YulFunctionCall","src":"1017:17:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1005:6:1"},"nodeType":"YulFunctionCall","src":"1005:30:1"},"nodeType":"YulExpressionStatement","src":"1005:30:1"},{"nodeType":"YulAssignment","src":"1048:19:1","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1059:3:1"},{"name":"_1","nodeType":"YulIdentifier","src":"1064:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1055:3:1"},"nodeType":"YulFunctionCall","src":"1055:12:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1048:3:1"}]},{"nodeType":"YulAssignment","src":"1080:19:1","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1091:3:1"},{"name":"_1","nodeType":"YulIdentifier","src":"1096:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1087:3:1"},"nodeType":"YulFunctionCall","src":"1087:12:1"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1080:3:1"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"957:1:1"},{"name":"_4","nodeType":"YulIdentifier","src":"960:2:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"954:2:1"},"nodeType":"YulFunctionCall","src":"954:9:1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"964:18:1","statements":[{"nodeType":"YulAssignment","src":"966:14:1","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"975:1:1"},{"kind":"number","nodeType":"YulLiteral","src":"978:1:1","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"971:3:1"},"nodeType":"YulFunctionCall","src":"971:9:1"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"966:1:1"}]}]},"pre":{"nodeType":"YulBlock","src":"950:3:1","statements":[]},"src":"946:163:1"},{"nodeType":"YulAssignment","src":"1118:16:1","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1128:6:1"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1118:6:1"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"75:9:1","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"86:7:1","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"98:6:1","type":""}],"src":"14:1126:1"},{"body":{"nodeType":"YulBlock","src":"1246:76:1","statements":[{"nodeType":"YulAssignment","src":"1256:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1268:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1279:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1264:3:1"},"nodeType":"YulFunctionCall","src":"1264:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1256:4:1"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1298:9:1"},{"name":"value0","nodeType":"YulIdentifier","src":"1309:6:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1291:6:1"},"nodeType":"YulFunctionCall","src":"1291:25:1"},"nodeType":"YulExpressionStatement","src":"1291:25:1"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1215:9:1","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1226:6:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1237:4:1","type":""}],"src":"1145:177:1"},{"body":{"nodeType":"YulBlock","src":"1359:95:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1376:1:1","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1383:3:1","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1388:10:1","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1379:3:1"},"nodeType":"YulFunctionCall","src":"1379:20:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1369:6:1"},"nodeType":"YulFunctionCall","src":"1369:31:1"},"nodeType":"YulExpressionStatement","src":"1369:31:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1416:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1419:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1409:6:1"},"nodeType":"YulFunctionCall","src":"1409:15:1"},"nodeType":"YulExpressionStatement","src":"1409:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1440:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1443:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1433:6:1"},"nodeType":"YulFunctionCall","src":"1433:15:1"},"nodeType":"YulExpressionStatement","src":"1433:15:1"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1327:127:1"}]},"contents":"{ +{"contracts":{"a.sol":{"A":{"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:200:1","statements":[{"nodeType":"YulBlock","src":"6:3:1","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"66:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:1"},"nodeType":"YulFunctionCall","src":"56:88:1"},"nodeType":"YulExpressionStatement","src":"56:88:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"160:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"163:4:1","type":"","value":"0x02"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"153:6:1"},"nodeType":"YulFunctionCall","src":"153:15:1"},"nodeType":"YulExpressionStatement","src":"153:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"184:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"187:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"177:6:1"},"nodeType":"YulFunctionCall","src":"177:15:1"},"nodeType":"YulExpressionStatement","src":"177:15:1"}]},"name":"panic_error_0x02","nodeType":"YulFunctionDefinition","src":"14:184:1"}]},"contents":"{ + { } + function panic_error_0x02() + { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } +}","id":1,"language":"Yul","name":"#utility.yul"}],"object":""},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1588:1","statements":[{"nodeType":"YulBlock","src":"6:3:1","statements":[]},{"body":{"nodeType":"YulBlock","src":"109:1031:1","statements":[{"nodeType":"YulVariableDeclaration","src":"119:12:1","value":{"kind":"number","nodeType":"YulLiteral","src":"129:2:1","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"123:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"176:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"185:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"188:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"178:6:1"},"nodeType":"YulFunctionCall","src":"178:12:1"},"nodeType":"YulExpressionStatement","src":"178:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"151:7:1"},{"name":"headStart","nodeType":"YulIdentifier","src":"160:9:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"147:3:1"},"nodeType":"YulFunctionCall","src":"147:23:1"},{"name":"_1","nodeType":"YulIdentifier","src":"172:2:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"143:3:1"},"nodeType":"YulFunctionCall","src":"143:32:1"},"nodeType":"YulIf","src":"140:2:1"},{"nodeType":"YulVariableDeclaration","src":"201:37:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"228:9:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"215:12:1"},"nodeType":"YulFunctionCall","src":"215:23:1"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"205:6:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"247:28:1","value":{"kind":"number","nodeType":"YulLiteral","src":"257:18:1","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"251:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"302:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"311:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"314:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"304:6:1"},"nodeType":"YulFunctionCall","src":"304:12:1"},"nodeType":"YulExpressionStatement","src":"304:12:1"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"290:6:1"},{"name":"_2","nodeType":"YulIdentifier","src":"298:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"287:2:1"},"nodeType":"YulFunctionCall","src":"287:14:1"},"nodeType":"YulIf","src":"284:2:1"},{"nodeType":"YulVariableDeclaration","src":"327:32:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"341:9:1"},{"name":"offset","nodeType":"YulIdentifier","src":"352:6:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"337:3:1"},"nodeType":"YulFunctionCall","src":"337:22:1"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"331:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"407:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"416:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"419:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"409:6:1"},"nodeType":"YulFunctionCall","src":"409:12:1"},"nodeType":"YulExpressionStatement","src":"409:12:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"386:2:1"},{"kind":"number","nodeType":"YulLiteral","src":"390:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"382:3:1"},"nodeType":"YulFunctionCall","src":"382:13:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"397:7:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"378:3:1"},"nodeType":"YulFunctionCall","src":"378:27:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"371:6:1"},"nodeType":"YulFunctionCall","src":"371:35:1"},"nodeType":"YulIf","src":"368:2:1"},{"nodeType":"YulVariableDeclaration","src":"432:26:1","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"455:2:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"442:12:1"},"nodeType":"YulFunctionCall","src":"442:16:1"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"436:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"481:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"483:16:1"},"nodeType":"YulFunctionCall","src":"483:18:1"},"nodeType":"YulExpressionStatement","src":"483:18:1"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"473:2:1"},{"name":"_2","nodeType":"YulIdentifier","src":"477:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"470:2:1"},"nodeType":"YulFunctionCall","src":"470:10:1"},"nodeType":"YulIf","src":"467:2:1"},{"nodeType":"YulVariableDeclaration","src":"512:20:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:1","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"529:2:1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"522:3:1"},"nodeType":"YulFunctionCall","src":"522:10:1"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"516:2:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"541:23:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"561:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"555:5:1"},"nodeType":"YulFunctionCall","src":"555:9:1"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"545:6:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"573:56:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"595:6:1"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"611:2:1"},{"kind":"number","nodeType":"YulLiteral","src":"615:2:1","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"607:3:1"},"nodeType":"YulFunctionCall","src":"607:11:1"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:1","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"620:3:1"},"nodeType":"YulFunctionCall","src":"620:7:1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"603:3:1"},"nodeType":"YulFunctionCall","src":"603:25:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"591:3:1"},"nodeType":"YulFunctionCall","src":"591:38:1"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"577:10:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"688:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"690:16:1"},"nodeType":"YulFunctionCall","src":"690:18:1"},"nodeType":"YulExpressionStatement","src":"690:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"647:10:1"},{"name":"_2","nodeType":"YulIdentifier","src":"659:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"644:2:1"},"nodeType":"YulFunctionCall","src":"644:18:1"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"667:10:1"},{"name":"memPtr","nodeType":"YulIdentifier","src":"679:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"664:2:1"},"nodeType":"YulFunctionCall","src":"664:22:1"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"641:2:1"},"nodeType":"YulFunctionCall","src":"641:46:1"},"nodeType":"YulIf","src":"638:2:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"726:2:1","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"730:10:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"719:6:1"},"nodeType":"YulFunctionCall","src":"719:22:1"},"nodeType":"YulExpressionStatement","src":"719:22:1"},{"nodeType":"YulVariableDeclaration","src":"750:17:1","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"761:6:1"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"754:3:1","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"783:6:1"},{"name":"_4","nodeType":"YulIdentifier","src":"791:2:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"776:6:1"},"nodeType":"YulFunctionCall","src":"776:18:1"},"nodeType":"YulExpressionStatement","src":"776:18:1"},{"nodeType":"YulAssignment","src":"803:22:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"814:6:1"},{"name":"_1","nodeType":"YulIdentifier","src":"822:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:1"},"nodeType":"YulFunctionCall","src":"810:15:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"803:3:1"}]},{"nodeType":"YulVariableDeclaration","src":"834:22:1","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"849:2:1"},{"name":"_1","nodeType":"YulIdentifier","src":"853:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"845:3:1"},"nodeType":"YulFunctionCall","src":"845:11:1"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"838:3:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"902:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"911:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"914:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"904:6:1"},"nodeType":"YulFunctionCall","src":"904:12:1"},"nodeType":"YulExpressionStatement","src":"904:12:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"879:2:1"},{"name":"_5","nodeType":"YulIdentifier","src":"883:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"875:3:1"},"nodeType":"YulFunctionCall","src":"875:11:1"},{"name":"_1","nodeType":"YulIdentifier","src":"888:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"871:3:1"},"nodeType":"YulFunctionCall","src":"871:20:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"893:7:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"868:2:1"},"nodeType":"YulFunctionCall","src":"868:33:1"},"nodeType":"YulIf","src":"865:2:1"},{"nodeType":"YulVariableDeclaration","src":"927:10:1","value":{"kind":"number","nodeType":"YulLiteral","src":"936:1:1","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"931:1:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"991:118:1","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1012:3:1"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1030:3:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1017:12:1"},"nodeType":"YulFunctionCall","src":"1017:17:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1005:6:1"},"nodeType":"YulFunctionCall","src":"1005:30:1"},"nodeType":"YulExpressionStatement","src":"1005:30:1"},{"nodeType":"YulAssignment","src":"1048:19:1","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1059:3:1"},{"name":"_1","nodeType":"YulIdentifier","src":"1064:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1055:3:1"},"nodeType":"YulFunctionCall","src":"1055:12:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1048:3:1"}]},{"nodeType":"YulAssignment","src":"1080:19:1","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1091:3:1"},{"name":"_1","nodeType":"YulIdentifier","src":"1096:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1087:3:1"},"nodeType":"YulFunctionCall","src":"1087:12:1"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1080:3:1"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"957:1:1"},{"name":"_4","nodeType":"YulIdentifier","src":"960:2:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"954:2:1"},"nodeType":"YulFunctionCall","src":"954:9:1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"964:18:1","statements":[{"nodeType":"YulAssignment","src":"966:14:1","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"975:1:1"},{"kind":"number","nodeType":"YulLiteral","src":"978:1:1","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"971:3:1"},"nodeType":"YulFunctionCall","src":"971:9:1"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"966:1:1"}]}]},"pre":{"nodeType":"YulBlock","src":"950:3:1","statements":[]},"src":"946:163:1"},{"nodeType":"YulAssignment","src":"1118:16:1","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1128:6:1"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1118:6:1"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"75:9:1","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"86:7:1","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"98:6:1","type":""}],"src":"14:1126:1"},{"body":{"nodeType":"YulBlock","src":"1246:76:1","statements":[{"nodeType":"YulAssignment","src":"1256:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1268:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1279:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1264:3:1"},"nodeType":"YulFunctionCall","src":"1264:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1256:4:1"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1298:9:1"},{"name":"value0","nodeType":"YulIdentifier","src":"1309:6:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1291:6:1"},"nodeType":"YulFunctionCall","src":"1291:25:1"},"nodeType":"YulExpressionStatement","src":"1291:25:1"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1215:9:1","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1226:6:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1237:4:1","type":""}],"src":"1145:177:1"},{"body":{"nodeType":"YulBlock","src":"1359:95:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1376:1:1","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1383:3:1","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1388:10:1","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1379:3:1"},"nodeType":"YulFunctionCall","src":"1379:20:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1369:6:1"},"nodeType":"YulFunctionCall","src":"1369:31:1"},"nodeType":"YulExpressionStatement","src":"1369:31:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1416:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1419:4:1","type":"","value":"0x02"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1409:6:1"},"nodeType":"YulFunctionCall","src":"1409:15:1"},"nodeType":"YulExpressionStatement","src":"1409:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1440:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1443:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1433:6:1"},"nodeType":"YulFunctionCall","src":"1433:15:1"},"nodeType":"YulExpressionStatement","src":"1433:15:1"}]},"name":"panic_error_0x02","nodeType":"YulFunctionDefinition","src":"1327:127:1"},{"body":{"nodeType":"YulBlock","src":"1491:95:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1508:1:1","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1515:3:1","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1520:10:1","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1511:3:1"},"nodeType":"YulFunctionCall","src":"1511:20:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1501:6:1"},"nodeType":"YulFunctionCall","src":"1501:31:1"},"nodeType":"YulExpressionStatement","src":"1501:31:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1548:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1551:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1541:6:1"},"nodeType":"YulFunctionCall","src":"1541:15:1"},"nodeType":"YulExpressionStatement","src":"1541:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1572:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1575:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:1"},"nodeType":"YulFunctionCall","src":"1565:15:1"},"nodeType":"YulExpressionStatement","src":"1565:15:1"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1459:127:1"}]},"contents":"{ { } function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0 { @@ -35,6 +43,12 @@ tail := add(headStart, 32) mstore(headStart, value0) } + function panic_error_0x02() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } function panic_error_0x41() { mstore(0, shl(224, 0x4e487b71)) diff --git a/test/cmdlineTests/standard_viair_requested/output.json b/test/cmdlineTests/standard_viair_requested/output.json index b09f39fa7..ccd33c416 100644 --- a/test/cmdlineTests/standard_viair_requested/output.json +++ b/test/cmdlineTests/standard_viair_requested/output.json @@ -9,7 +9,9 @@ object \"C_3\" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_3() @@ -26,8 +28,10 @@ object \"C_3\" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -77,7 +81,9 @@ object \"C_3\" { object \"D_16\" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_D_16() @@ -94,8 +100,10 @@ object \"D_16\" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -112,7 +120,9 @@ object \"D_16\" { { // f() - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } abi_decode_tuple_(4, calldatasize()) fun_f_15() let memPos := allocate_unbounded() @@ -155,6 +165,12 @@ object \"D_16\" { } + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } + function panic_error_0x41() { mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) mstore(4, 0x41) @@ -165,10 +181,6 @@ object \"D_16\" { revert(0, 0) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) - } - function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() { revert(0, 0) } @@ -197,7 +209,9 @@ object \"D_16\" { object \"C_3\" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_3() @@ -214,8 +228,10 @@ object \"D_16\" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } diff --git a/test/cmdlineTests/viair_abicoder_v1/output b/test/cmdlineTests/viair_abicoder_v1/output index 5c227b33f..6493c2ae9 100644 --- a/test/cmdlineTests/viair_abicoder_v1/output +++ b/test/cmdlineTests/viair_abicoder_v1/output @@ -10,7 +10,9 @@ IR: object "test_11" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_test_11() @@ -27,8 +29,10 @@ object "test_11" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -45,7 +49,9 @@ object "test_11" { { // f() - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } abi_decode_tuple_(4, calldatasize()) let ret_0 := fun_f_10() let memPos := allocate_unbounded() @@ -92,11 +98,13 @@ object "test_11" { } - function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { + function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } diff --git a/test/cmdlineTests/viair_subobjects/output b/test/cmdlineTests/viair_subobjects/output index 3847e7df6..817fcfa8a 100644 --- a/test/cmdlineTests/viair_subobjects/output +++ b/test/cmdlineTests/viair_subobjects/output @@ -1,7 +1,7 @@ ======= viair_subobjects/input.sol:C ======= Binary: -60806040523415600f5760006000fd5b600a80601e608039806080f350fe608060405260006000fd +60806040523415601f57634e487b7160e01b600052600260045260246000fd5b600a80602e608039806080f350fe608060405260006000fd Binary of the runtime part: 608060405260006000fd Optimized IR: @@ -16,7 +16,12 @@ object "C_3" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("C_3_deployed") codecopy(128, dataoffset("C_3_deployed"), _1) return(128, _1) @@ -35,9 +40,9 @@ object "C_3" { ======= viair_subobjects/input.sol:D ======= Binary: -608060405234156100105760006000fd5b60ba80610020608039806080f350fe6080604052600436101515608b576000803560e01c6326121ff0141560895734156027578081fd5b80600319360112156036578081fd5b6028806080016080811067ffffffffffffffff82111715606457634e487b7160e01b83526041600452602483fd5b508061009260803980608083f015156082576040513d83823e3d81fd505b5080604051f35b505b60006000fdfe60806040523415600f5760006000fd5b600a80601e608039806080f350fe608060405260006000fd +6080604052341561002057634e487b7160e01b600052600260045260246000fd5b60e080610030608039806080f350fe60806040526004361015156100a1576000803560e01c6326121ff0141561009f57341561003a57634e487b7160e01b81526002600452602481fd5b806003193601121561004a578081fd5b6038806080016080811067ffffffffffffffff8211171561007957634e487b7160e01b83526041600452602483fd5b50806100a860803980608083f01515610098576040513d83823e3d81fd505b5080604051f35b505b60006000fdfe60806040523415601f57634e487b7160e01b600052600260045260246000fd5b600a80602e608039806080f350fe608060405260006000fd Binary of the runtime part: -6080604052600436101515608b576000803560e01c6326121ff0141560895734156027578081fd5b80600319360112156036578081fd5b6028806080016080811067ffffffffffffffff82111715606457634e487b7160e01b83526041600452602483fd5b508061009260803980608083f015156082576040513d83823e3d81fd505b5080604051f35b505b60006000fdfe60806040523415600f5760006000fd5b600a80601e608039806080f350fe608060405260006000fd +60806040526004361015156100a1576000803560e01c6326121ff0141561009f57341561003a57634e487b7160e01b81526002600452602481fd5b806003193601121561004a578081fd5b6038806080016080811067ffffffffffffffff8211171561007957634e487b7160e01b83526041600452602483fd5b50806100a860803980608083f01515610098576040513d83823e3d81fd505b5080604051f35b505b60006000fdfe60806040523415601f57634e487b7160e01b600052600260045260246000fd5b600a80602e608039806080f350fe608060405260006000fd Optimized IR: /******************************************************* * WARNING * @@ -50,7 +55,12 @@ object "D_16" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("D_16_deployed") codecopy(128, dataoffset("D_16_deployed"), _1) return(128, _1) @@ -65,7 +75,12 @@ object "D_16" { let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(_1))) { - if callvalue() { revert(_1, _1) } + if callvalue() + { + mstore(_1, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(_1, 0x24) + } if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } let _2 := datasize("C_3") let _3 := add(128, _2) @@ -92,7 +107,12 @@ object "D_16" { code { { mstore(64, 128) - if callvalue() { revert(0, 0) } + if callvalue() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } let _1 := datasize("C_3_deployed") codecopy(128, dataoffset("C_3_deployed"), _1) return(128, _1) diff --git a/test/cmdlineTests/yul_optimizer_steps/output b/test/cmdlineTests/yul_optimizer_steps/output index dee816447..9885646e8 100644 --- a/test/cmdlineTests/yul_optimizer_steps/output +++ b/test/cmdlineTests/yul_optimizer_steps/output @@ -10,18 +10,19 @@ object "C_7" { code { { mstore(64, 128) - if callvalue() - { - revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() - } + if callvalue() { panic_error_0x02() } let _1 := allocate_unbounded() codecopy(_1, dataoffset("C_7_deployed"), datasize("C_7_deployed")) return(_1, datasize("C_7_deployed")) } function allocate_unbounded() -> memPtr { memPtr := mload(64) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() - { revert(0, 0) } + function panic_error_0x02() + { + mstore(0, shl(224, 0x4e487b71)) + mstore(4, 0x02) + revert(0, 0x24) + } } object "C_7_deployed" { code { diff --git a/test/cmdlineTests/yul_string_format_ascii/output.json b/test/cmdlineTests/yul_string_format_ascii/output.json index 379c14171..092335c63 100644 --- a/test/cmdlineTests/yul_string_format_ascii/output.json +++ b/test/cmdlineTests/yul_string_format_ascii/output.json @@ -9,7 +9,9 @@ object \"C_11\" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_11() @@ -26,8 +28,10 @@ object \"C_11\" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -44,7 +48,9 @@ object \"C_11\" { { // f() - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } abi_decode_tuple_(4, calldatasize()) let ret_0 := fun_f_10() let memPos := allocate_unbounded() @@ -154,6 +160,12 @@ object \"C_11\" { } + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } + function panic_error_0x41() { mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) mstore(4, 0x41) @@ -164,10 +176,6 @@ object \"C_11\" { revert(0, 0) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) - } - function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() { revert(0, 0) } diff --git a/test/cmdlineTests/yul_string_format_ascii_bytes32/output.json b/test/cmdlineTests/yul_string_format_ascii_bytes32/output.json index 98e28617f..d42bf0653 100644 --- a/test/cmdlineTests/yul_string_format_ascii_bytes32/output.json +++ b/test/cmdlineTests/yul_string_format_ascii_bytes32/output.json @@ -9,7 +9,9 @@ object \"C_11\" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_11() @@ -26,8 +28,10 @@ object \"C_11\" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -44,7 +48,9 @@ object \"C_11\" { { // f() - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } abi_decode_tuple_(4, calldatasize()) let ret_0 := fun_f_10() let memPos := allocate_unbounded() @@ -94,11 +100,13 @@ object \"C_11\" { } - function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { + function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } diff --git a/test/cmdlineTests/yul_string_format_ascii_bytes32_from_number/output.json b/test/cmdlineTests/yul_string_format_ascii_bytes32_from_number/output.json index 7226bfa95..6864358a5 100644 --- a/test/cmdlineTests/yul_string_format_ascii_bytes32_from_number/output.json +++ b/test/cmdlineTests/yul_string_format_ascii_bytes32_from_number/output.json @@ -9,7 +9,9 @@ object \"C_11\" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_11() @@ -26,8 +28,10 @@ object \"C_11\" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -44,7 +48,9 @@ object \"C_11\" { { // f() - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } abi_decode_tuple_(4, calldatasize()) let ret_0 := fun_f_10() let memPos := allocate_unbounded() @@ -99,11 +105,13 @@ object \"C_11\" { } - function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { + function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } diff --git a/test/cmdlineTests/yul_string_format_ascii_long/output.json b/test/cmdlineTests/yul_string_format_ascii_long/output.json index 6ad20e86b..85c1cba40 100644 --- a/test/cmdlineTests/yul_string_format_ascii_long/output.json +++ b/test/cmdlineTests/yul_string_format_ascii_long/output.json @@ -9,7 +9,9 @@ object \"C_11\" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_11() @@ -26,8 +28,10 @@ object \"C_11\" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -44,7 +48,9 @@ object \"C_11\" { { // f() - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } abi_decode_tuple_(4, calldatasize()) let ret_0 := fun_f_10() let memPos := allocate_unbounded() @@ -154,6 +160,12 @@ object \"C_11\" { } + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) + } + function panic_error_0x41() { mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) mstore(4, 0x41) @@ -164,10 +176,6 @@ object \"C_11\" { revert(0, 0) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) - } - function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() { revert(0, 0) } diff --git a/test/cmdlineTests/yul_string_format_hex/output.json b/test/cmdlineTests/yul_string_format_hex/output.json index dc8a2a67c..30bd29c95 100644 --- a/test/cmdlineTests/yul_string_format_hex/output.json +++ b/test/cmdlineTests/yul_string_format_hex/output.json @@ -9,7 +9,9 @@ object \"C_11\" { code { mstore(64, 128) - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } constructor_C_11() @@ -26,8 +28,10 @@ object \"C_11\" { } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } } @@ -44,7 +48,9 @@ object \"C_11\" { { // f() - if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } + { + if callvalue() { panic_error_0x02() } + } abi_decode_tuple_(4, calldatasize()) let ret_0 := fun_f_10() let memPos := allocate_unbounded() @@ -99,11 +105,13 @@ object \"C_11\" { } - function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { - revert(0, 0) + function panic_error_0x02() { + mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) + mstore(4, 0x02) + revert(0, 0x24) } - function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { + function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } diff --git a/test/libsolidity/gasTests/abiv2.sol b/test/libsolidity/gasTests/abiv2.sol index 8d84e0a29..bca837ee4 100644 --- a/test/libsolidity/gasTests/abiv2.sol +++ b/test/libsolidity/gasTests/abiv2.sol @@ -14,11 +14,11 @@ contract C { } // ---- // creation: -// codeDepositCost: 1259800 -// executionCost: 1308 -// totalCost: 1261108 +// codeDepositCost: 1269600 +// executionCost: 1329 +// totalCost: 1270929 // external: -// a(): 2430 +// a(): 2425 // b(uint256): infinite // f1(uint256): infinite // f2(uint256[],string[],uint16,address): infinite diff --git a/test/libsolidity/gasTests/abiv2_optimised.sol b/test/libsolidity/gasTests/abiv2_optimised.sol index 093acf49a..52c9abe50 100644 --- a/test/libsolidity/gasTests/abiv2_optimised.sol +++ b/test/libsolidity/gasTests/abiv2_optimised.sol @@ -17,13 +17,13 @@ contract C { // optimize-yul: true // ---- // creation: -// codeDepositCost: 680600 -// executionCost: 715 -// totalCost: 681315 +// codeDepositCost: 685200 +// executionCost: 728 +// totalCost: 685928 // external: -// a(): 2285 -// b(uint256): 4652 -// f1(uint256): 307 +// a(): 2280 +// b(uint256): 4647 +// f1(uint256): 302 // f2(uint256[],string[],uint16,address): infinite // f3(uint16[],string[],uint16,address): infinite // f4(uint32[],string[12],bytes[2][],address): infinite diff --git a/test/libsolidity/gasTests/data_storage.sol b/test/libsolidity/gasTests/data_storage.sol index fa0db135d..6d9ee2494 100644 --- a/test/libsolidity/gasTests/data_storage.sol +++ b/test/libsolidity/gasTests/data_storage.sol @@ -13,8 +13,8 @@ contract C { } // ---- // creation: -// codeDepositCost: 387600 -// executionCost: 424 -// totalCost: 388024 +// codeDepositCost: 397400 +// executionCost: 443 +// totalCost: 397843 // external: -// f(): 428 +// f(): 423 diff --git a/test/libsolidity/gasTests/dispatch_large.sol b/test/libsolidity/gasTests/dispatch_large.sol index 21369e6f7..ae9c68232 100644 --- a/test/libsolidity/gasTests/dispatch_large.sol +++ b/test/libsolidity/gasTests/dispatch_large.sol @@ -24,11 +24,11 @@ contract Large { } // ---- // creation: -// codeDepositCost: 640200 -// executionCost: 676 -// totalCost: 640876 +// codeDepositCost: 654400 +// executionCost: 696 +// totalCost: 655096 // external: -// a(): 2475 +// a(): 2470 // b(uint256): infinite // f0(uint256): infinite // f1(uint256): infinite diff --git a/test/libsolidity/gasTests/dispatch_large_optimised.sol b/test/libsolidity/gasTests/dispatch_large_optimised.sol index ae38258f0..65f716391 100644 --- a/test/libsolidity/gasTests/dispatch_large_optimised.sol +++ b/test/libsolidity/gasTests/dispatch_large_optimised.sol @@ -27,22 +27,22 @@ contract Large { // optimize-runs: 2 // ---- // creation: -// codeDepositCost: 232800 -// executionCost: 275 -// totalCost: 233075 +// codeDepositCost: 211600 +// executionCost: 264 +// totalCost: 211864 // external: -// a(): 2283 -// b(uint256): 4937 -// f0(uint256): 366 -// f1(uint256): 47006 -// f2(uint256): 24972 -// f3(uint256): 25060 -// f4(uint256): 25038 -// f5(uint256): 25016 -// f6(uint256): 24928 -// f7(uint256): 24708 -// f8(uint256): 24840 -// f9(uint256): 24862 +// a(): 2278 +// b(uint256): 4932 +// f0(uint256): 361 +// f1(uint256): 47001 +// f2(uint256): 24967 +// f3(uint256): 25055 +// f4(uint256): 25033 +// f5(uint256): 25011 +// f6(uint256): 24923 +// f7(uint256): 24703 +// f8(uint256): 24835 +// f9(uint256): 24857 // g0(uint256): 606 // g1(uint256): 46718 // g2(uint256): 24706 diff --git a/test/libsolidity/gasTests/dispatch_medium.sol b/test/libsolidity/gasTests/dispatch_medium.sol index c76fc852e..24ea89b72 100644 --- a/test/libsolidity/gasTests/dispatch_medium.sol +++ b/test/libsolidity/gasTests/dispatch_medium.sol @@ -11,11 +11,11 @@ contract Medium { } // ---- // creation: -// codeDepositCost: 269600 -// executionCost: 312 -// totalCost: 269912 +// codeDepositCost: 281000 +// executionCost: 325 +// totalCost: 281325 // external: -// a(): 2452 +// a(): 2447 // b(uint256): infinite // f1(uint256): infinite // f2(uint256): infinite diff --git a/test/libsolidity/gasTests/dispatch_medium_optimised.sol b/test/libsolidity/gasTests/dispatch_medium_optimised.sol index fca8d2695..a2d52f3d1 100644 --- a/test/libsolidity/gasTests/dispatch_medium_optimised.sol +++ b/test/libsolidity/gasTests/dispatch_medium_optimised.sol @@ -14,15 +14,15 @@ contract Medium { // optimize-runs: 2 // ---- // creation: -// codeDepositCost: 131600 -// executionCost: 177 -// totalCost: 131777 +// codeDepositCost: 137000 +// executionCost: 190 +// totalCost: 137190 // external: -// a(): 2283 -// b(uint256): 4695 -// f1(uint256): 46786 -// f2(uint256): 24730 -// f3(uint256): 24774 +// a(): 2278 +// b(uint256): 4690 +// f1(uint256): 46781 +// f2(uint256): 24725 +// f3(uint256): 24769 // g0(uint256): 364 // g7(uint256): 24640 // g8(uint256): 24618 diff --git a/test/libsolidity/gasTests/dispatch_small.sol b/test/libsolidity/gasTests/dispatch_small.sol index bf66fe182..91948055b 100644 --- a/test/libsolidity/gasTests/dispatch_small.sol +++ b/test/libsolidity/gasTests/dispatch_small.sol @@ -6,11 +6,11 @@ contract Small { } // ---- // creation: -// codeDepositCost: 108800 -// executionCost: 153 -// totalCost: 108953 +// codeDepositCost: 119400 +// executionCost: 172 +// totalCost: 119572 // external: // fallback: 129 -// a(): 2407 +// a(): 2402 // b(uint256): infinite // f1(uint256): infinite diff --git a/test/libsolidity/gasTests/dispatch_small_optimised.sol b/test/libsolidity/gasTests/dispatch_small_optimised.sol index 28ddf2af0..5b29b055d 100644 --- a/test/libsolidity/gasTests/dispatch_small_optimised.sol +++ b/test/libsolidity/gasTests/dispatch_small_optimised.sol @@ -9,11 +9,11 @@ contract Small { // optimize-runs: 2 // ---- // creation: -// codeDepositCost: 60800 -// executionCost: 111 -// totalCost: 60911 +// codeDepositCost: 65800 +// executionCost: 124 +// totalCost: 65924 // external: // fallback: 118 -// a(): 2261 -// b(uint256): 4585 -// f1(uint256): 46720 +// a(): 2256 +// b(uint256): 4580 +// f1(uint256): 46715 diff --git a/test/libsolidity/gasTests/exp.sol b/test/libsolidity/gasTests/exp.sol index 8dc59b094..0d82ff059 100644 --- a/test/libsolidity/gasTests/exp.sol +++ b/test/libsolidity/gasTests/exp.sol @@ -19,11 +19,11 @@ contract C { // optimize-yul: false // ---- // creation: -// codeDepositCost: 110800 -// executionCost: 159 -// totalCost: 110959 +// codeDepositCost: 120600 +// executionCost: 172 +// totalCost: 120772 // external: -// exp_neg_one(uint256): 2259 +// exp_neg_one(uint256): 2254 // exp_one(uint256): infinite // exp_two(uint256): infinite // exp_zero(uint256): infinite diff --git a/test/libsolidity/gasTests/exp_optimized.sol b/test/libsolidity/gasTests/exp_optimized.sol index c934c710e..b6899f571 100644 --- a/test/libsolidity/gasTests/exp_optimized.sol +++ b/test/libsolidity/gasTests/exp_optimized.sol @@ -19,11 +19,11 @@ contract C { // optimize-yul: true // ---- // creation: -// codeDepositCost: 37200 -// executionCost: 87 -// totalCost: 37287 +// codeDepositCost: 41400 +// executionCost: 100 +// totalCost: 41500 // external: -// exp_neg_one(uint256): 1917 -// exp_one(uint256): 1870 -// exp_two(uint256): 1848 -// exp_zero(uint256): 1892 +// exp_neg_one(uint256): 1912 +// exp_one(uint256): 1865 +// exp_two(uint256): 1843 +// exp_zero(uint256): 1887 diff --git a/test/libsolidity/gasTests/storage_costs.sol b/test/libsolidity/gasTests/storage_costs.sol index 1e4995833..b85b323b0 100644 --- a/test/libsolidity/gasTests/storage_costs.sol +++ b/test/libsolidity/gasTests/storage_costs.sol @@ -15,10 +15,10 @@ contract C { // optimize-yul: true // ---- // creation: -// codeDepositCost: 27200 -// executionCost: 81 -// totalCost: 27281 +// codeDepositCost: 31400 +// executionCost: 88 +// totalCost: 31488 // external: -// readX(): 2290 -// resetX(): 5116 -// setX(uint256): 22312 +// readX(): 2285 +// resetX(): 5111 +// setX(uint256): 22307 diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2_storage.sol b/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2_storage.sol index 8fb1e41c0..63413f17c 100644 --- a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2_storage.sol +++ b/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2_storage.sol @@ -25,5 +25,5 @@ contract C { // ---- // f() -> 0x20, 0x8, 0x40, 0x3, 0x9, 0xa, 0xb // gas irOptimized: 203921 -// gas legacy: 206126 -// gas legacyOptimized: 203105 +// gas legacy: 206121 +// gas legacyOptimized: 203100 diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol b/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol index b4d533ce0..9c25305bb 100644 --- a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol +++ b/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol @@ -60,10 +60,10 @@ contract C { // compileViaYul: also // ---- // test_bytes() -> -// gas irOptimized: 465417 -// gas legacy: 423563 -// gas legacyOptimized: 331391 +// gas irOptimized: 465306 +// gas legacy: 423378 +// gas legacyOptimized: 331206 // test_uint256() -> -// gas irOptimized: 661059 -// gas legacy: 591392 -// gas legacyOptimized: 456137 +// gas irOptimized: 660948 +// gas legacy: 591207 +// gas legacyOptimized: 455952 diff --git a/test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol b/test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol index 6dfcb1cde..aef646a0a 100644 --- a/test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol +++ b/test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol @@ -27,5 +27,5 @@ contract C { // library: L // f() -> 8, 7, 1, 2, 7, 12 // gas irOptimized: 168199 -// gas legacy: 169475 -// gas legacyOptimized: 167397 +// gas legacy: 169470 +// gas legacyOptimized: 167392 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol index d5687aac7..33cf70cf4 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol @@ -61,10 +61,10 @@ contract C { // compileViaYul: also // ---- // test_bytes() -> -// gas irOptimized: 465417 -// gas legacy: 423563 -// gas legacyOptimized: 331391 +// gas irOptimized: 465306 +// gas legacy: 423378 +// gas legacyOptimized: 331206 // test_uint256() -> -// gas irOptimized: 661059 -// gas legacy: 591392 -// gas legacyOptimized: 456137 +// gas irOptimized: 660948 +// gas legacy: 591207 +// gas legacyOptimized: 455952 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2.sol b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2.sol index 6e21e0174..f79ba2b1b 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2.sol @@ -53,6 +53,6 @@ contract C { // f2() -> 0x20, 0xa0, 0x1, 0x60, 0x2, 0x3, "abc" // f3() -> 0x20, 0xa0, 0x1, 0x60, 0x2, 0x3, "abc" // f4() -> 0x20, 0x160, 0x1, 0x80, 0xc0, 0x2, 0x3, "abc", 0x7, 0x40, 0x2, 0x2, 0x3 -// gas irOptimized: 113683 -// gas legacy: 114728 -// gas legacyOptimized: 112606 +// gas irOptimized: 113680 +// gas legacy: 114723 +// gas legacyOptimized: 112601 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_function_inherited_in_v1_contract.sol b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_function_inherited_in_v1_contract.sol index 2e9e6af40..2a6779c6d 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_function_inherited_in_v1_contract.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_function_inherited_in_v1_contract.sol @@ -32,6 +32,6 @@ contract C is B { // compileViaYul: also // ---- // test() -> 77 -// gas irOptimized: 132435 -// gas legacy: 155249 -// gas legacyOptimized: 111743 +// gas irOptimized: 135658 +// gas legacy: 165071 +// gas legacyOptimized: 116358 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_modifier_used_in_v1_contract.sol b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_modifier_used_in_v1_contract.sol index 6c5d1df29..cd1f01c72 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_modifier_used_in_v1_contract.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_modifier_used_in_v1_contract.sol @@ -40,5 +40,5 @@ contract C is B { // compileViaYul: also // ---- // test() -> 5, 10 -// gas irOptimized: 91524 -// gas legacy: 99137 +// gas irOptimized: 94736 +// gas legacy: 108565 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol b/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol index a426c9661..7c27352e0 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol @@ -22,5 +22,5 @@ contract C { // f(uint256[][1]): 32, 32, 1, 42 -> true // f(uint256[][1]): 32, 32, 8, 421, 422, 423, 424, 425, 426, 427, 428 -> true // gas irOptimized: 224675 -// gas legacy: 141900 -// gas legacyOptimized: 121788 +// gas legacy: 141885 +// gas legacyOptimized: 121773 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol b/test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol index 3196a29e4..2f8530d28 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol @@ -20,9 +20,9 @@ contract C { // ---- // h(uint256[2][]): 0x20, 3, 123, 124, 223, 224, 323, 324 -> 32, 256, 0x20, 3, 123, 124, 223, 224, 323, 324 // gas irOptimized: 181410 -// gas legacy: 184929 -// gas legacyOptimized: 181504 +// gas legacy: 184924 +// gas legacyOptimized: 181499 // i(uint256[2][2]): 123, 124, 223, 224 -> 32, 128, 123, 124, 223, 224 // gas irOptimized: 112981 -// gas legacy: 115468 -// gas legacyOptimized: 112988 +// gas legacy: 115463 +// gas legacyOptimized: 112983 diff --git a/test/libsolidity/semanticTests/abiencodedecode/abi_decode_simple_storage.sol b/test/libsolidity/semanticTests/abiencodedecode/abi_decode_simple_storage.sol index a26d7bf08..e929adb6b 100644 --- a/test/libsolidity/semanticTests/abiencodedecode/abi_decode_simple_storage.sol +++ b/test/libsolidity/semanticTests/abiencodedecode/abi_decode_simple_storage.sol @@ -12,5 +12,5 @@ contract C { // ---- // f(bytes): 0x20, 0x80, 0x21, 0x40, 0x7, "abcdefg" -> 0x21, 0x40, 0x7, "abcdefg" // gas irOptimized: 136231 -// gas legacy: 137190 -// gas legacyOptimized: 136082 +// gas legacy: 137185 +// gas legacyOptimized: 136077 diff --git a/test/libsolidity/semanticTests/arithmetics/check_var_init.sol b/test/libsolidity/semanticTests/arithmetics/check_var_init.sol index f8e4ca2a4..b9abf1eb8 100644 --- a/test/libsolidity/semanticTests/arithmetics/check_var_init.sol +++ b/test/libsolidity/semanticTests/arithmetics/check_var_init.sol @@ -18,4 +18,4 @@ contract D { // ---- // f() -> FAILURE, hex"4e487b71", 0x11 // g(), 100 wei -> 1 -// gas legacy: 101918 +// gas legacy: 111331 diff --git a/test/libsolidity/semanticTests/array/arrays_complex_from_and_to_storage.sol b/test/libsolidity/semanticTests/array/arrays_complex_from_and_to_storage.sol index a95183c30..3e453c8b9 100644 --- a/test/libsolidity/semanticTests/array/arrays_complex_from_and_to_storage.sol +++ b/test/libsolidity/semanticTests/array/arrays_complex_from_and_to_storage.sol @@ -14,9 +14,9 @@ contract Test { // compileViaYul: also // ---- // set(uint24[3][]): 0x20, 0x06, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12 -> 0x06 -// gas irOptimized: 191293 -// gas legacy: 211485 -// gas legacyOptimized: 206394 +// gas irOptimized: 191290 +// gas legacy: 211480 +// gas legacyOptimized: 206389 // data(uint256,uint256): 0x02, 0x02 -> 0x09 // data(uint256,uint256): 0x05, 0x01 -> 0x11 // data(uint256,uint256): 0x06, 0x00 -> FAILURE diff --git a/test/libsolidity/semanticTests/array/byte_array_storage_layout.sol b/test/libsolidity/semanticTests/array/byte_array_storage_layout.sol index b1b3a7bf4..901ee2c7f 100644 --- a/test/libsolidity/semanticTests/array/byte_array_storage_layout.sol +++ b/test/libsolidity/semanticTests/array/byte_array_storage_layout.sol @@ -43,15 +43,15 @@ contract c { // ---- // storageEmpty -> 1 // test_short() -> 1780731860627700044960722568376587075150542249149356309979516913770823710 -// gas legacy: 59838 -// gas legacyOptimized: 58606 +// gas legacy: 59833 +// gas legacyOptimized: 58601 // storageEmpty -> 0 // test_long() -> 67 -// gas irOptimized: 91520 -// gas legacy: 103590 -// gas legacyOptimized: 101044 +// gas irOptimized: 91517 +// gas legacy: 103585 +// gas legacyOptimized: 101039 // storageEmpty -> 0 // test_pop() -> 1780731860627700044960722568376592200742329637303199754547598369979433020 -// gas legacy: 61930 -// gas legacyOptimized: 59404 +// gas legacy: 61925 +// gas legacyOptimized: 59399 // storageEmpty -> 0 diff --git a/test/libsolidity/semanticTests/array/byte_array_transitional_2.sol b/test/libsolidity/semanticTests/array/byte_array_transitional_2.sol index 1f8e202e3..a265b72ec 100644 --- a/test/libsolidity/semanticTests/array/byte_array_transitional_2.sol +++ b/test/libsolidity/semanticTests/array/byte_array_transitional_2.sol @@ -20,5 +20,5 @@ contract c { // ---- // test() -> 0 // gas irOptimized: 171767 -// gas legacy: 189715 -// gas legacyOptimized: 184472 +// gas legacy: 189710 +// gas legacyOptimized: 184467 diff --git a/test/libsolidity/semanticTests/array/bytes_length_member.sol b/test/libsolidity/semanticTests/array/bytes_length_member.sol index 0da89b36e..e6194891f 100644 --- a/test/libsolidity/semanticTests/array/bytes_length_member.sol +++ b/test/libsolidity/semanticTests/array/bytes_length_member.sol @@ -16,6 +16,6 @@ contract c { // getLength() -> 0 // set(): 1, 2 -> true // gas irOptimized: 110570 -// gas legacy: 110726 -// gas legacyOptimized: 110567 +// gas legacy: 110721 +// gas legacyOptimized: 110562 // getLength() -> 68 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_calldata_storage.sol b/test/libsolidity/semanticTests/array/copying/array_copy_calldata_storage.sol index c7fb030aa..b3e72a07f 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_calldata_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_calldata_storage.sol @@ -23,6 +23,6 @@ contract c { // ---- // store(uint256[9],uint8[3][]): 21, 22, 23, 24, 25, 26, 27, 28, 29, 0x140, 4, 1, 2, 3, 11, 12, 13, 21, 22, 23, 31, 32, 33 -> 32 // gas irOptimized: 651816 -// gas legacy: 694515 -// gas legacyOptimized: 694013 +// gas legacy: 694510 +// gas legacyOptimized: 694008 // retrieve() -> 9, 28, 9, 28, 4, 3, 32 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_cleanup_uint128.sol b/test/libsolidity/semanticTests/array/copying/array_copy_cleanup_uint128.sol index b9d5ccd96..83dcf3c46 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_cleanup_uint128.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_cleanup_uint128.sol @@ -24,5 +24,5 @@ contract C { // ---- // f() -> true // gas irOptimized: 92958 -// gas legacy: 93035 -// gas legacyOptimized: 92257 +// gas legacy: 93030 +// gas legacyOptimized: 92252 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_cleanup_uint40.sol b/test/libsolidity/semanticTests/array/copying/array_copy_cleanup_uint40.sol index dddd14840..7441531fa 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_cleanup_uint40.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_cleanup_uint40.sol @@ -49,5 +49,5 @@ contract C { // ---- // f() -> true // gas irOptimized: 154441 -// gas legacy: 155961 -// gas legacyOptimized: 153588 +// gas legacy: 155956 +// gas legacyOptimized: 153583 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_clear_storage.sol b/test/libsolidity/semanticTests/array/copying/array_copy_clear_storage.sol index fea48ca61..8b87a38f0 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_clear_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_clear_storage.sol @@ -16,5 +16,5 @@ contract C { // ---- // f() -> 0 // gas irOptimized: 135505 -// gas legacy: 135313 -// gas legacyOptimized: 134548 +// gas legacy: 135308 +// gas legacyOptimized: 134543 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_clear_storage_packed.sol b/test/libsolidity/semanticTests/array/copying/array_copy_clear_storage_packed.sol index 55b3d39ba..0b9941f7d 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_clear_storage_packed.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_clear_storage_packed.sol @@ -42,11 +42,11 @@ contract C { // compileViaYul: also // ---- // f() -> 0 -// gas irOptimized: 92966 -// gas legacy: 93006 -// gas legacyOptimized: 92261 +// gas irOptimized: 92963 +// gas legacy: 93001 +// gas legacyOptimized: 92256 // g() -> 0 // h() -> 0 -// gas irOptimized: 93012 -// gas legacy: 93028 -// gas legacyOptimized: 92303 +// gas irOptimized: 93009 +// gas legacy: 93023 +// gas legacyOptimized: 92298 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_different_packing.sol b/test/libsolidity/semanticTests/array/copying/array_copy_different_packing.sol index 9542662ed..dfcdda432 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_different_packing.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_different_packing.sol @@ -22,5 +22,5 @@ contract c { // ---- // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x05000000000000000000000000000000000000000000000000 // gas irOptimized: 214644 -// gas legacy: 221883 -// gas legacyOptimized: 220734 +// gas legacy: 221878 +// gas legacyOptimized: 220729 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_including_array.sol b/test/libsolidity/semanticTests/array/copying/array_copy_including_array.sol index a77aaedd6..ed00d332f 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_including_array.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_including_array.sol @@ -37,12 +37,12 @@ contract c { // compileViaYul: also // ---- // test() -> 0x02000202 -// gas irOptimized: 4690992 -// gas legacy: 4578341 -// gas legacyOptimized: 4548354 +// gas irOptimized: 4689872 +// gas legacy: 4578336 +// gas legacyOptimized: 4548349 // storageEmpty -> 1 // clear() -> 0, 0 // gas irOptimized: 4516821 -// gas legacy: 4410769 -// gas legacyOptimized: 4382531 +// gas legacy: 4410764 +// gas legacyOptimized: 4382526 // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_nested_array.sol b/test/libsolidity/semanticTests/array/copying/array_copy_nested_array.sol index f6c53a9f8..820ec0861 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_nested_array.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_nested_array.sol @@ -16,5 +16,5 @@ contract c { // ---- // test(uint256[2][]): 32, 3, 7, 8, 9, 10, 11, 12 -> 10 // gas irOptimized: 691977 -// gas legacy: 686268 -// gas legacyOptimized: 685688 +// gas legacy: 686263 +// gas legacyOptimized: 685683 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_different_base.sol b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_different_base.sol index e67fe2411..dc148b18c 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_different_base.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_different_base.sol @@ -20,5 +20,5 @@ contract c { // ---- // test() -> 5, 4 // gas irOptimized: 226467 -// gas legacy: 233801 -// gas legacyOptimized: 232816 +// gas legacy: 233796 +// gas legacyOptimized: 232811 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_different_base_nested.sol b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_different_base_nested.sol index a0a1844ff..82a1057d8 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_different_base_nested.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_different_base_nested.sol @@ -25,5 +25,5 @@ contract c { // ---- // test() -> 3, 4 // gas irOptimized: 191858 -// gas legacy: 195353 -// gas legacyOptimized: 192441 +// gas legacy: 195348 +// gas legacyOptimized: 192436 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_dyn_dyn.sol b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_dyn_dyn.sol index e9ad1e78f..55e899d02 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_dyn_dyn.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_dyn_dyn.sol @@ -17,9 +17,9 @@ contract c { // ---- // setData1(uint256,uint256,uint256): 10, 5, 4 -> // copyStorageStorage() -> -// gas irOptimized: 111563 -// gas legacy: 109278 -// gas legacyOptimized: 109268 +// gas irOptimized: 111560 +// gas legacy: 109273 +// gas legacyOptimized: 109263 // getData2(uint256): 5 -> 10, 4 // setData1(uint256,uint256,uint256): 0, 0, 0 -> // copyStorageStorage() -> diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_dynamic_dynamic.sol b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_dynamic_dynamic.sol index 47d682bf0..c4d8e6dbd 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_dynamic_dynamic.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_dynamic_dynamic.sol @@ -21,5 +21,5 @@ contract c { // ---- // test() -> 5, 4 // gas irOptimized: 272786 -// gas legacy: 270834 -// gas legacyOptimized: 269960 +// gas legacy: 270829 +// gas legacyOptimized: 269955 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_dynamic.sol b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_dynamic.sol index 72ac4201e..45daa65d8 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_dynamic.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_dynamic.sol @@ -14,6 +14,6 @@ contract c { // compileViaYul: also // ---- // test() -> 9, 4 -// gas irOptimized: 123375 -// gas legacy: 123579 -// gas legacyOptimized: 123208 +// gas irOptimized: 123397 +// gas legacy: 123574 +// gas legacyOptimized: 123203 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_simple.sol b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_simple.sol index a7dacd749..26656d6c2 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_simple.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_simple.sol @@ -14,5 +14,5 @@ contract C { // compileViaYul: also // ---- // test() -> left(0x01), left(0x02) -// gas legacy: 90001 -// gas legacyOptimized: 89085 +// gas legacy: 89996 +// gas legacyOptimized: 89080 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_static.sol b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_static.sol index 06296e358..b94ec9803 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_static.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_static_static.sol @@ -18,6 +18,6 @@ contract c { // compileViaYul: also // ---- // test() -> 8, 0 -// gas irOptimized: 236656 -// gas legacy: 234695 -// gas legacyOptimized: 234103 +// gas irOptimized: 236731 +// gas legacy: 234690 +// gas legacyOptimized: 234098 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_struct.sol b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_struct.sol index fd5c398a1..9e6f77660 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_struct.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_storage_storage_struct.sol @@ -20,6 +20,6 @@ contract c { // ---- // test() -> 4, 5 // gas irOptimized: 240552 -// gas legacy: 238736 -// gas legacyOptimized: 237159 +// gas legacy: 238731 +// gas legacyOptimized: 237154 // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_storage_to_memory_nested.sol b/test/libsolidity/semanticTests/array/copying/array_copy_storage_to_memory_nested.sol index fcfc9ffc7..4c93036d8 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_storage_to_memory_nested.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_storage_to_memory_nested.sol @@ -18,5 +18,5 @@ contract C { // ---- // f() -> 0x20, 2, 0x40, 0xa0, 2, 0, 1, 2, 2, 3 // gas irOptimized: 161991 -// gas legacy: 162278 -// gas legacyOptimized: 159955 +// gas legacy: 162273 +// gas legacyOptimized: 159950 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover.sol b/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover.sol index 311a74992..7d3fe0f47 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover.sol @@ -21,5 +21,5 @@ contract c { // ---- // test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000 // gas irOptimized: 140618 -// gas legacy: 186406 -// gas legacyOptimized: 166126 +// gas legacy: 186401 +// gas legacyOptimized: 166121 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover2.sol b/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover2.sol index 802b9a198..5879c71f5 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover2.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover2.sol @@ -23,5 +23,5 @@ contract c { // ---- // test() -> 0x04000000000000000000000000000000000000000000000000, 0x0, 0x0 // gas irOptimized: 95528 -// gas legacy: 97451 -// gas legacyOptimized: 94200 +// gas legacy: 97446 +// gas legacyOptimized: 94195 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_target_simple.sol b/test/libsolidity/semanticTests/array/copying/array_copy_target_simple.sol index 204981aa4..37eca865a 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_target_simple.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_target_simple.sol @@ -23,5 +23,5 @@ contract c { // ---- // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x0 // gas irOptimized: 296092 -// gas legacy: 303653 -// gas legacyOptimized: 301999 +// gas legacy: 303648 +// gas legacyOptimized: 301994 diff --git a/test/libsolidity/semanticTests/array/copying/array_copy_target_simple_2.sol b/test/libsolidity/semanticTests/array/copying/array_copy_target_simple_2.sol index 61480065f..b1c91c214 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_target_simple_2.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_target_simple_2.sol @@ -23,5 +23,5 @@ contract c { // ---- // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x00 // gas irOptimized: 274785 -// gas legacy: 276381 -// gas legacyOptimized: 275453 +// gas legacy: 276376 +// gas legacyOptimized: 275448 diff --git a/test/libsolidity/semanticTests/array/copying/array_nested_calldata_to_storage.sol b/test/libsolidity/semanticTests/array/copying/array_nested_calldata_to_storage.sol index 55922af9a..3aca09f60 100644 --- a/test/libsolidity/semanticTests/array/copying/array_nested_calldata_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/array_nested_calldata_to_storage.sol @@ -38,10 +38,10 @@ contract c { // compileViaYul: true // ---- // test1(uint256[][]): 0x20, 2, 0x40, 0x40, 2, 23, 42 -> 2, 65 -// gas irOptimized: 182348 +// gas irOptimized: 182345 // test2(uint256[][2]): 0x20, 0x40, 0x40, 2, 23, 42 -> 2, 65 -// gas irOptimized: 158638 +// gas irOptimized: 158635 // test3(uint256[2][]): 0x20, 2, 23, 42, 23, 42 -> 2, 65 -// gas irOptimized: 135778 +// gas irOptimized: 135775 // test4(uint256[2][2]): 23, 42, 23, 42 -> 65 -// gas irOptimized: 111695 +// gas irOptimized: 111692 diff --git a/test/libsolidity/semanticTests/array/copying/array_nested_memory_to_storage.sol b/test/libsolidity/semanticTests/array/copying/array_nested_memory_to_storage.sol index 4b7ce0928..ef8250091 100644 --- a/test/libsolidity/semanticTests/array/copying/array_nested_memory_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/array_nested_memory_to_storage.sol @@ -40,12 +40,12 @@ contract Test { // compileViaYul: also // ---- // test() -> 24 -// gas irOptimized: 227891 -// gas legacy: 227133 -// gas legacyOptimized: 226547 +// gas irOptimized: 227888 +// gas legacy: 227128 +// gas legacyOptimized: 226542 // test1() -> 3 // test2() -> 6 // test3() -> 24 -// gas irOptimized: 134338 -// gas legacy: 134295 -// gas legacyOptimized: 133383 +// gas irOptimized: 134335 +// gas legacy: 134290 +// gas legacyOptimized: 133378 diff --git a/test/libsolidity/semanticTests/array/copying/array_storage_multi_items_per_slot.sol b/test/libsolidity/semanticTests/array/copying/array_storage_multi_items_per_slot.sol index 215ac9625..aa3928590 100644 --- a/test/libsolidity/semanticTests/array/copying/array_storage_multi_items_per_slot.sol +++ b/test/libsolidity/semanticTests/array/copying/array_storage_multi_items_per_slot.sol @@ -16,5 +16,5 @@ contract C { // ---- // f() -> 1, 2, 3 // gas irOptimized: 133671 -// gas legacy: 134619 -// gas legacyOptimized: 131940 +// gas legacy: 134614 +// gas legacyOptimized: 131935 diff --git a/test/libsolidity/semanticTests/array/copying/arrays_from_and_to_storage.sol b/test/libsolidity/semanticTests/array/copying/arrays_from_and_to_storage.sol index c2f7faa4f..ebb811120 100644 --- a/test/libsolidity/semanticTests/array/copying/arrays_from_and_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/arrays_from_and_to_storage.sol @@ -12,9 +12,9 @@ contract Test { // compileViaYul: also // ---- // set(uint24[]): 0x20, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 -> 18 -// gas irOptimized: 101659 -// gas legacy: 103815 -// gas legacyOptimized: 101614 +// gas irOptimized: 101656 +// gas legacy: 103810 +// gas legacyOptimized: 101609 // data(uint256): 7 -> 8 // data(uint256): 15 -> 16 // data(uint256): 18 -> FAILURE diff --git a/test/libsolidity/semanticTests/array/copying/bytes_inside_mappings.sol b/test/libsolidity/semanticTests/array/copying/bytes_inside_mappings.sol index 254a16f31..b0a8f6d76 100644 --- a/test/libsolidity/semanticTests/array/copying/bytes_inside_mappings.sol +++ b/test/libsolidity/semanticTests/array/copying/bytes_inside_mappings.sol @@ -7,13 +7,13 @@ contract c { // compileViaYul: also // ---- // set(uint256): 1, 2 -> true -// gas irOptimized: 110824 -// gas legacy: 111091 -// gas legacyOptimized: 110736 +// gas irOptimized: 110821 +// gas legacy: 111086 +// gas legacyOptimized: 110731 // set(uint256): 2, 2, 3, 4, 5 -> true -// gas irOptimized: 177811 -// gas legacy: 178021 -// gas legacyOptimized: 177666 +// gas irOptimized: 177808 +// gas legacy: 178016 +// gas legacyOptimized: 177661 // storageEmpty -> 0 // copy(uint256,uint256): 1, 2 -> true // storageEmpty -> 0 diff --git a/test/libsolidity/semanticTests/array/copying/bytes_storage_to_storage.sol b/test/libsolidity/semanticTests/array/copying/bytes_storage_to_storage.sol index f449e3bf6..f3dbd4951 100644 --- a/test/libsolidity/semanticTests/array/copying/bytes_storage_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/bytes_storage_to_storage.sol @@ -20,24 +20,24 @@ contract c { // f(uint256): 0 -> 0x20, 0x00 // f(uint256): 31 -> 0x20, 0x1f, 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e00 // gas irOptimized: 135396 -// gas legacy: 124364 -// gas legacyOptimized: 119898 +// gas legacy: 124359 +// gas legacyOptimized: 119893 // f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671 // gas irOptimized: 142291 -// gas legacy: 135431 -// gas legacyOptimized: 130829 +// gas legacy: 135426 +// gas legacyOptimized: 130824 // f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000 // gas irOptimized: 149603 -// gas legacy: 142238 -// gas legacyOptimized: 137518 +// gas legacy: 142233 +// gas legacyOptimized: 137513 // f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992 // gas irOptimized: 174873 -// gas legacy: 160728 -// gas legacyOptimized: 152168 +// gas legacy: 160723 +// gas legacyOptimized: 152163 // f(uint256): 12 -> 0x20, 0x0c, 0x0102030405060708090a0b0000000000000000000000000000000000000000 -// gas legacy: 59345 -// gas legacyOptimized: 57279 +// gas legacy: 59340 +// gas legacyOptimized: 57274 // f(uint256): 129 -> 0x20, 0x81, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f, 29063324697304692433803953038474361308315562010425523193971352996434451193439, 0x606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f, -57896044618658097711785492504343953926634992332820282019728792003956564819968 // gas irOptimized: 452115 -// gas legacy: 423017 -// gas legacyOptimized: 406021 +// gas legacy: 423012 +// gas legacyOptimized: 406016 diff --git a/test/libsolidity/semanticTests/array/copying/calldata_array_dynamic_to_storage.sol b/test/libsolidity/semanticTests/array/copying/calldata_array_dynamic_to_storage.sol index 58e1b4d57..9e72c4b6a 100644 --- a/test/libsolidity/semanticTests/array/copying/calldata_array_dynamic_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/calldata_array_dynamic_to_storage.sol @@ -12,5 +12,5 @@ contract C { // ---- // f(uint256[]): 0x20, 0x03, 0x1, 0x2, 0x3 -> 0x1 // gas irOptimized: 111384 -// gas legacy: 111565 -// gas legacyOptimized: 111347 +// gas legacy: 111560 +// gas legacyOptimized: 111342 diff --git a/test/libsolidity/semanticTests/array/copying/copy_byte_array_in_struct_to_storage.sol b/test/libsolidity/semanticTests/array/copying/copy_byte_array_in_struct_to_storage.sol index 4adf028b1..5de4fba75 100644 --- a/test/libsolidity/semanticTests/array/copying/copy_byte_array_in_struct_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/copy_byte_array_in_struct_to_storage.sol @@ -37,12 +37,12 @@ contract C { // compileViaYul: also // ---- // f() -> 0x40, 0x80, 6, 0x6162636465660000000000000000000000000000000000000000000000000000, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000 -// gas irOptimized: 180274 -// gas legacy: 180694 -// gas legacyOptimized: 180088 +// gas irOptimized: 180271 +// gas legacy: 180689 +// gas legacyOptimized: 180083 // g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000 -// gas irOptimized: 107618 -// gas legacy: 107895 -// gas legacyOptimized: 107254 +// gas irOptimized: 107615 +// gas legacy: 107890 +// gas legacyOptimized: 107249 // h() -> 0x40, 0x60, 0x00, 0x00 // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/copying/copy_byte_array_to_storage.sol b/test/libsolidity/semanticTests/array/copying/copy_byte_array_to_storage.sol index 8b7282243..805628467 100644 --- a/test/libsolidity/semanticTests/array/copying/copy_byte_array_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/copy_byte_array_to_storage.sol @@ -49,5 +49,5 @@ contract C { // ---- // f() -> 0xff // gas irOptimized: 122009 -// gas legacy: 126745 -// gas legacyOptimized: 123476 +// gas legacy: 126740 +// gas legacyOptimized: 123471 diff --git a/test/libsolidity/semanticTests/array/copying/copy_function_storage_array.sol b/test/libsolidity/semanticTests/array/copying/copy_function_storage_array.sol index f10a49fdb..cfe85e5dc 100644 --- a/test/libsolidity/semanticTests/array/copying/copy_function_storage_array.sol +++ b/test/libsolidity/semanticTests/array/copying/copy_function_storage_array.sol @@ -19,5 +19,5 @@ contract C { // ---- // test() -> 7 // gas irOptimized: 127846 -// gas legacy: 205196 -// gas legacyOptimized: 204987 +// gas legacy: 205191 +// gas legacyOptimized: 204982 diff --git a/test/libsolidity/semanticTests/array/copying/copy_internal_function_array_to_storage.sol b/test/libsolidity/semanticTests/array/copying/copy_internal_function_array_to_storage.sol index d2c7bb77d..5bef8a166 100644 --- a/test/libsolidity/semanticTests/array/copying/copy_internal_function_array_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/copy_internal_function_array_to_storage.sol @@ -22,6 +22,6 @@ contract C { // compileViaYul: also // ---- // one() -> 3 -// gas legacy: 140260 -// gas legacyOptimized: 140097 +// gas legacy: 140255 +// gas legacyOptimized: 140092 // two() -> FAILURE, hex"4e487b71", 0x51 diff --git a/test/libsolidity/semanticTests/array/copying/copy_removes_bytes_data.sol b/test/libsolidity/semanticTests/array/copying/copy_removes_bytes_data.sol index 7e85e2323..f07242377 100644 --- a/test/libsolidity/semanticTests/array/copying/copy_removes_bytes_data.sol +++ b/test/libsolidity/semanticTests/array/copying/copy_removes_bytes_data.sol @@ -10,8 +10,8 @@ contract c { // ---- // set(): 1, 2, 3, 4, 5 -> true // gas irOptimized: 177557 -// gas legacy: 177656 -// gas legacyOptimized: 177496 +// gas legacy: 177651 +// gas legacyOptimized: 177491 // storageEmpty -> 0 // reset() -> true // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/copying/memory_dyn_2d_bytes_to_storage.sol b/test/libsolidity/semanticTests/array/copying/memory_dyn_2d_bytes_to_storage.sol index 52141bd48..872009ba5 100644 --- a/test/libsolidity/semanticTests/array/copying/memory_dyn_2d_bytes_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/memory_dyn_2d_bytes_to_storage.sol @@ -21,5 +21,5 @@ contract C { // ---- // f() -> 3 // gas irOptimized: 134208 -// gas legacy: 130307 -// gas legacyOptimized: 129363 +// gas legacy: 130302 +// gas legacyOptimized: 129358 diff --git a/test/libsolidity/semanticTests/array/copying/storage_memory_nested.sol b/test/libsolidity/semanticTests/array/copying/storage_memory_nested.sol index 2e58d2d26..a79446302 100644 --- a/test/libsolidity/semanticTests/array/copying/storage_memory_nested.sol +++ b/test/libsolidity/semanticTests/array/copying/storage_memory_nested.sol @@ -20,5 +20,5 @@ contract C { // ---- // f() -> 1, 2, 3, 4, 5, 6, 7 // gas irOptimized: 209108 -// gas legacy: 212325 -// gas legacyOptimized: 211486 +// gas legacy: 212320 +// gas legacyOptimized: 211481 diff --git a/test/libsolidity/semanticTests/array/copying/storage_memory_nested_bytes.sol b/test/libsolidity/semanticTests/array/copying/storage_memory_nested_bytes.sol index 868e8646c..58549ea46 100644 --- a/test/libsolidity/semanticTests/array/copying/storage_memory_nested_bytes.sol +++ b/test/libsolidity/semanticTests/array/copying/storage_memory_nested_bytes.sol @@ -14,5 +14,5 @@ contract C { // ---- // f() -> 0x20, 0x02, 0x40, 0x80, 3, 0x6162630000000000000000000000000000000000000000000000000000000000, 0x99, 44048183304486788312148433451363384677562265908331949128489393215789685032262, 32241931068525137014058842823026578386641954854143559838526554899205067598957, 49951309422467613961193228765530489307475214998374779756599339590522149884499, 0x54555658595a6162636465666768696a6b6c6d6e6f707172737475767778797a, 0x4142434445464748494a4b4c4d4e4f5051525354555658595a00000000000000 // gas irOptimized: 203063 -// gas legacy: 204459 -// gas legacyOptimized: 203437 +// gas legacy: 204454 +// gas legacyOptimized: 203432 diff --git a/test/libsolidity/semanticTests/array/copying/storage_memory_nested_from_pointer.sol b/test/libsolidity/semanticTests/array/copying/storage_memory_nested_from_pointer.sol index a3530af69..b6f6d7994 100644 --- a/test/libsolidity/semanticTests/array/copying/storage_memory_nested_from_pointer.sol +++ b/test/libsolidity/semanticTests/array/copying/storage_memory_nested_from_pointer.sol @@ -21,5 +21,5 @@ contract C { // ---- // f() -> 1, 2, 3, 4, 5, 6, 7 // gas irOptimized: 209108 -// gas legacy: 212330 -// gas legacyOptimized: 211491 +// gas legacy: 212325 +// gas legacyOptimized: 211486 diff --git a/test/libsolidity/semanticTests/array/copying/storage_memory_nested_struct.sol b/test/libsolidity/semanticTests/array/copying/storage_memory_nested_struct.sol index b32332846..260839456 100644 --- a/test/libsolidity/semanticTests/array/copying/storage_memory_nested_struct.sol +++ b/test/libsolidity/semanticTests/array/copying/storage_memory_nested_struct.sol @@ -27,5 +27,5 @@ contract C { // ---- // f() -> 11, 0x0c, 1, 0x15, 22, 4 // gas irOptimized: 293695 -// gas legacy: 293516 -// gas legacyOptimized: 290263 +// gas legacy: 293511 +// gas legacyOptimized: 290258 diff --git a/test/libsolidity/semanticTests/array/copying/storage_memory_packed_dyn.sol b/test/libsolidity/semanticTests/array/copying/storage_memory_packed_dyn.sol index e75a92e73..8b7ecbe03 100644 --- a/test/libsolidity/semanticTests/array/copying/storage_memory_packed_dyn.sol +++ b/test/libsolidity/semanticTests/array/copying/storage_memory_packed_dyn.sol @@ -16,5 +16,5 @@ contract C { // ---- // f() -> 2, 3, 4 // gas irOptimized: 115383 -// gas legacy: 126449 -// gas legacyOptimized: 120902 +// gas legacy: 126444 +// gas legacyOptimized: 120897 diff --git a/test/libsolidity/semanticTests/array/create_memory_array.sol b/test/libsolidity/semanticTests/array/create_memory_array.sol index 72c4d0aca..84eb244a3 100644 --- a/test/libsolidity/semanticTests/array/create_memory_array.sol +++ b/test/libsolidity/semanticTests/array/create_memory_array.sol @@ -21,5 +21,5 @@ contract C { // ---- // f() -> "A", 8, 4, "B" // gas irOptimized: 150997 -// gas legacy: 121398 -// gas legacyOptimized: 115494 +// gas legacy: 121393 +// gas legacyOptimized: 115489 diff --git a/test/libsolidity/semanticTests/array/delete/bytes_delete_element.sol b/test/libsolidity/semanticTests/array/delete/bytes_delete_element.sol index d4ce9120c..5a9d25636 100644 --- a/test/libsolidity/semanticTests/array/delete/bytes_delete_element.sol +++ b/test/libsolidity/semanticTests/array/delete/bytes_delete_element.sol @@ -19,5 +19,5 @@ contract c { // ---- // test1() -> true // gas irOptimized: 244579 -// gas legacy: 255577 -// gas legacyOptimized: 248611 +// gas legacy: 255572 +// gas legacyOptimized: 248606 diff --git a/test/libsolidity/semanticTests/array/dynamic_array_cleanup.sol b/test/libsolidity/semanticTests/array/dynamic_array_cleanup.sol index 3259c72a4..f17501406 100644 --- a/test/libsolidity/semanticTests/array/dynamic_array_cleanup.sol +++ b/test/libsolidity/semanticTests/array/dynamic_array_cleanup.sol @@ -17,8 +17,8 @@ contract c { // storageEmpty -> 1 // fill() -> // gas irOptimized: 520998 -// gas legacy: 521773 -// gas legacyOptimized: 517048 +// gas legacy: 521768 +// gas legacyOptimized: 517043 // storageEmpty -> 0 // halfClear() -> // storageEmpty -> 0 diff --git a/test/libsolidity/semanticTests/array/dynamic_arrays_in_storage.sol b/test/libsolidity/semanticTests/array/dynamic_arrays_in_storage.sol index 300616ecf..4580fecc3 100644 --- a/test/libsolidity/semanticTests/array/dynamic_arrays_in_storage.sol +++ b/test/libsolidity/semanticTests/array/dynamic_arrays_in_storage.sol @@ -44,9 +44,9 @@ contract c { // ---- // getLengths() -> 0, 0 // setLengths(uint256,uint256): 48, 49 -> -// gas irOptimized: 108326 -// gas legacy: 108571 -// gas legacyOptimized: 100417 +// gas irOptimized: 108323 +// gas legacy: 108566 +// gas legacyOptimized: 100412 // getLengths() -> 48, 49 // setIDStatic(uint256): 11 -> // getID(uint256): 2 -> 11 diff --git a/test/libsolidity/semanticTests/array/dynamic_multi_array_cleanup.sol b/test/libsolidity/semanticTests/array/dynamic_multi_array_cleanup.sol index 6bceda899..31c6133d7 100644 --- a/test/libsolidity/semanticTests/array/dynamic_multi_array_cleanup.sol +++ b/test/libsolidity/semanticTests/array/dynamic_multi_array_cleanup.sol @@ -19,8 +19,8 @@ contract c { // storageEmpty -> 1 // fill() -> 8 // gas irOptimized: 124480 -// gas legacy: 121756 -// gas legacyOptimized: 120687 +// gas legacy: 121751 +// gas legacyOptimized: 120682 // storageEmpty -> 0 // clear() -> // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/fixed_array_cleanup.sol b/test/libsolidity/semanticTests/array/fixed_array_cleanup.sol index 0147ac446..3fa250254 100644 --- a/test/libsolidity/semanticTests/array/fixed_array_cleanup.sol +++ b/test/libsolidity/semanticTests/array/fixed_array_cleanup.sol @@ -14,8 +14,8 @@ contract c { // storageEmpty -> 1 // fill() -> // gas irOptimized: 465878 -// gas legacy: 471460 -// gas legacyOptimized: 467520 +// gas legacy: 471455 +// gas legacyOptimized: 467515 // storageEmpty -> 0 // clear() -> // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/fixed_arrays_as_return_type.sol b/test/libsolidity/semanticTests/array/fixed_arrays_as_return_type.sol index 199bb1dce..552544575 100644 --- a/test/libsolidity/semanticTests/array/fixed_arrays_as_return_type.sol +++ b/test/libsolidity/semanticTests/array/fixed_arrays_as_return_type.sol @@ -21,6 +21,6 @@ contract B { // compileViaYul: also // ---- // f() -> 2, 3, 4, 5, 6, 1000, 1001, 1002, 1003, 1004 -// gas irOptimized: 133483 -// gas legacy: 235167 -// gas legacyOptimized: 133299 +// gas irOptimized: 143383 +// gas legacy: 244977 +// gas legacyOptimized: 137900 diff --git a/test/libsolidity/semanticTests/array/function_array_cross_calls.sol b/test/libsolidity/semanticTests/array/function_array_cross_calls.sol index 63366e934..cb102f7e3 100644 --- a/test/libsolidity/semanticTests/array/function_array_cross_calls.sol +++ b/test/libsolidity/semanticTests/array/function_array_cross_calls.sol @@ -45,6 +45,6 @@ contract C { // compileViaYul: also // ---- // test() -> 5, 6, 7 -// gas irOptimized: 337455 -// gas legacy: 463662 -// gas legacyOptimized: 296513 +// gas irOptimized: 340658 +// gas legacy: 473466 +// gas legacyOptimized: 301092 diff --git a/test/libsolidity/semanticTests/array/pop/array_pop_array_transition.sol b/test/libsolidity/semanticTests/array/pop/array_pop_array_transition.sol index b8f1ebaee..0eefad36b 100644 --- a/test/libsolidity/semanticTests/array/pop/array_pop_array_transition.sol +++ b/test/libsolidity/semanticTests/array/pop/array_pop_array_transition.sol @@ -26,6 +26,6 @@ contract c { // ---- // test() -> 1, 2, 3 // gas irOptimized: 2280897 -// gas legacy: 2273722 -// gas legacyOptimized: 2262396 +// gas legacy: 2273717 +// gas legacyOptimized: 2262391 // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/pop/array_pop_uint16_transition.sol b/test/libsolidity/semanticTests/array/pop/array_pop_uint16_transition.sol index 3dbb0e0b6..bc3741a0b 100644 --- a/test/libsolidity/semanticTests/array/pop/array_pop_uint16_transition.sol +++ b/test/libsolidity/semanticTests/array/pop/array_pop_uint16_transition.sol @@ -21,6 +21,6 @@ contract c { // ---- // test() -> 38, 28, 18 // gas irOptimized: 195867 -// gas legacy: 189780 -// gas legacyOptimized: 178870 +// gas legacy: 189775 +// gas legacyOptimized: 178865 // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/pop/array_pop_uint24_transition.sol b/test/libsolidity/semanticTests/array/pop/array_pop_uint24_transition.sol index e40577929..51e0d2cfb 100644 --- a/test/libsolidity/semanticTests/array/pop/array_pop_uint24_transition.sol +++ b/test/libsolidity/semanticTests/array/pop/array_pop_uint24_transition.sol @@ -21,6 +21,6 @@ contract c { // ---- // test() -> 20, 10 // gas irOptimized: 163721 -// gas legacy: 159459 -// gas legacyOptimized: 153281 +// gas legacy: 159454 +// gas legacyOptimized: 153276 // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/pop/byte_array_pop_copy_long.sol b/test/libsolidity/semanticTests/array/pop/byte_array_pop_copy_long.sol index 7923cf34b..0bab13e31 100644 --- a/test/libsolidity/semanticTests/array/pop/byte_array_pop_copy_long.sol +++ b/test/libsolidity/semanticTests/array/pop/byte_array_pop_copy_long.sol @@ -13,5 +13,5 @@ contract c { // ---- // test() -> 0x20, 29, 0x0303030303030303030303030303030303030303030303030303030303000000 // gas irOptimized: 112526 -// gas legacy: 127309 -// gas legacyOptimized: 124136 +// gas legacy: 127304 +// gas legacyOptimized: 124131 diff --git a/test/libsolidity/semanticTests/array/pop/byte_array_pop_long_storage_empty.sol b/test/libsolidity/semanticTests/array/pop/byte_array_pop_long_storage_empty.sol index 2fdd7ebf7..9405e6940 100644 --- a/test/libsolidity/semanticTests/array/pop/byte_array_pop_long_storage_empty.sol +++ b/test/libsolidity/semanticTests/array/pop/byte_array_pop_long_storage_empty.sol @@ -19,6 +19,6 @@ contract c { // ---- // test() -> true // gas irOptimized: 219418 -// gas legacy: 229864 -// gas legacyOptimized: 210964 +// gas legacy: 229859 +// gas legacyOptimized: 210959 // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/pop/byte_array_pop_long_storage_empty_garbage_ref.sol b/test/libsolidity/semanticTests/array/pop/byte_array_pop_long_storage_empty_garbage_ref.sol index c3cb9a227..411e048b2 100644 --- a/test/libsolidity/semanticTests/array/pop/byte_array_pop_long_storage_empty_garbage_ref.sol +++ b/test/libsolidity/semanticTests/array/pop/byte_array_pop_long_storage_empty_garbage_ref.sol @@ -18,6 +18,6 @@ contract c { // ---- // test() -> // gas irOptimized: 150914 -// gas legacy: 165363 -// gas legacyOptimized: 159446 +// gas legacy: 165358 +// gas legacyOptimized: 159441 // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/pop/byte_array_pop_masking_long.sol b/test/libsolidity/semanticTests/array/pop/byte_array_pop_masking_long.sol index 0a361e81d..9b2cee121 100644 --- a/test/libsolidity/semanticTests/array/pop/byte_array_pop_masking_long.sol +++ b/test/libsolidity/semanticTests/array/pop/byte_array_pop_masking_long.sol @@ -13,5 +13,5 @@ contract c { // ---- // test() -> 0x20, 33, 0x303030303030303030303030303030303030303030303030303030303030303, 0x0300000000000000000000000000000000000000000000000000000000000000 // gas irOptimized: 110514 -// gas legacy: 126187 -// gas legacyOptimized: 123261 +// gas legacy: 126182 +// gas legacyOptimized: 123256 diff --git a/test/libsolidity/semanticTests/array/push/array_push.sol b/test/libsolidity/semanticTests/array/push/array_push.sol index 33f923081..2cf376099 100644 --- a/test/libsolidity/semanticTests/array/push/array_push.sol +++ b/test/libsolidity/semanticTests/array/push/array_push.sol @@ -19,5 +19,5 @@ contract c { // ---- // test() -> 5, 4, 3, 3 // gas irOptimized: 111269 -// gas legacy: 111838 -// gas legacyOptimized: 111128 +// gas legacy: 111833 +// gas legacyOptimized: 111123 diff --git a/test/libsolidity/semanticTests/array/push/array_push_nested_from_calldata.sol b/test/libsolidity/semanticTests/array/push/array_push_nested_from_calldata.sol index 72c69233a..fb7e5d56d 100644 --- a/test/libsolidity/semanticTests/array/push/array_push_nested_from_calldata.sol +++ b/test/libsolidity/semanticTests/array/push/array_push_nested_from_calldata.sol @@ -15,5 +15,5 @@ contract C { // ---- // f(uint120[]): 0x20, 3, 1, 2, 3 -> 1 // gas irOptimized: 113684 -// gas legacy: 113686 -// gas legacyOptimized: 113499 +// gas legacy: 113681 +// gas legacyOptimized: 113494 diff --git a/test/libsolidity/semanticTests/array/push/array_push_packed_array.sol b/test/libsolidity/semanticTests/array/push/array_push_packed_array.sol index 5168297ce..dce1b63bb 100644 --- a/test/libsolidity/semanticTests/array/push/array_push_packed_array.sol +++ b/test/libsolidity/semanticTests/array/push/array_push_packed_array.sol @@ -17,5 +17,5 @@ contract c { // ---- // test() -> 1, 2, 3, 4 // gas irOptimized: 93083 -// gas legacy: 92798 -// gas legacyOptimized: 92062 +// gas legacy: 92793 +// gas legacyOptimized: 92057 diff --git a/test/libsolidity/semanticTests/array/push/array_push_struct.sol b/test/libsolidity/semanticTests/array/push/array_push_struct.sol index a9088e703..a27d38dac 100644 --- a/test/libsolidity/semanticTests/array/push/array_push_struct.sol +++ b/test/libsolidity/semanticTests/array/push/array_push_struct.sol @@ -23,5 +23,5 @@ contract c { // ---- // test() -> 2, 3, 4, 5 // gas irOptimized: 138070 -// gas legacy: 147484 -// gas legacyOptimized: 146456 +// gas legacy: 147479 +// gas legacyOptimized: 146451 diff --git a/test/libsolidity/semanticTests/array/push/array_push_struct_from_calldata.sol b/test/libsolidity/semanticTests/array/push/array_push_struct_from_calldata.sol index 1007bf491..8c5439167 100644 --- a/test/libsolidity/semanticTests/array/push/array_push_struct_from_calldata.sol +++ b/test/libsolidity/semanticTests/array/push/array_push_struct_from_calldata.sol @@ -19,5 +19,5 @@ contract c { // ---- // test((uint16,uint16,uint16[3],uint16[])): 0x20, 2, 3, 0, 0, 4, 0xC0, 4, 0, 0, 5, 0, 0 -> 2, 3, 4, 5 // gas irOptimized: 139798 -// gas legacy: 144322 -// gas legacyOptimized: 139171 +// gas legacy: 144317 +// gas legacyOptimized: 139166 diff --git a/test/libsolidity/semanticTests/array/push/byte_array_push_transition.sol b/test/libsolidity/semanticTests/array/push/byte_array_push_transition.sol index e51336a36..19e122434 100644 --- a/test/libsolidity/semanticTests/array/push/byte_array_push_transition.sol +++ b/test/libsolidity/semanticTests/array/push/byte_array_push_transition.sol @@ -18,5 +18,5 @@ contract c { // ---- // test() -> 0 // gas irOptimized: 195787 -// gas legacy: 218028 -// gas legacyOptimized: 205124 +// gas legacy: 218023 +// gas legacyOptimized: 205119 diff --git a/test/libsolidity/semanticTests/array/push/nested_bytes_push.sol b/test/libsolidity/semanticTests/array/push/nested_bytes_push.sol index 45935109a..d0220443c 100644 --- a/test/libsolidity/semanticTests/array/push/nested_bytes_push.sol +++ b/test/libsolidity/semanticTests/array/push/nested_bytes_push.sol @@ -16,5 +16,5 @@ contract C { // ---- // f() -> // gas irOptimized: 180067 -// gas legacy: 180620 -// gas legacyOptimized: 180403 +// gas legacy: 180615 +// gas legacyOptimized: 180398 diff --git a/test/libsolidity/semanticTests/array/push/push_no_args_2d.sol b/test/libsolidity/semanticTests/array/push/push_no_args_2d.sol index f1621264b..17a3ac938 100644 --- a/test/libsolidity/semanticTests/array/push/push_no_args_2d.sol +++ b/test/libsolidity/semanticTests/array/push/push_no_args_2d.sol @@ -29,16 +29,16 @@ contract C { // ---- // l() -> 0 // f(uint256,uint256): 42, 64 -> -// gas irOptimized: 116221 -// gas legacy: 108234 -// gas legacyOptimized: 102245 +// gas irOptimized: 116218 +// gas legacy: 108229 +// gas legacyOptimized: 102240 // l() -> 1 // ll(uint256): 0 -> 43 // a(uint256,uint256): 0, 42 -> 64 // f(uint256,uint256): 84, 128 -> -// gas irOptimized: 123537 -// gas legacy: 107780 -// gas legacyOptimized: 96331 +// gas irOptimized: 123534 +// gas legacy: 107775 +// gas legacyOptimized: 96326 // l() -> 2 // ll(uint256): 1 -> 85 // a(uint256,uint256): 0, 42 -> 64 diff --git a/test/libsolidity/semanticTests/array/push/push_no_args_bytes.sol b/test/libsolidity/semanticTests/array/push/push_no_args_bytes.sol index 255bc0646..9b287702c 100644 --- a/test/libsolidity/semanticTests/array/push/push_no_args_bytes.sol +++ b/test/libsolidity/semanticTests/array/push/push_no_args_bytes.sol @@ -23,9 +23,9 @@ contract C { // ---- // l() -> 0 // g(uint256): 70 -> -// gas irOptimized: 194029 -// gas legacy: 184991 -// gas legacyOptimized: 180608 +// gas irOptimized: 194026 +// gas legacy: 184986 +// gas legacyOptimized: 180603 // l() -> 70 // a(uint256): 69 -> left(69) // f() -> diff --git a/test/libsolidity/semanticTests/array/reusing_memory.sol b/test/libsolidity/semanticTests/array/reusing_memory.sol index a5ca40bfc..77ab5cd55 100644 --- a/test/libsolidity/semanticTests/array/reusing_memory.sol +++ b/test/libsolidity/semanticTests/array/reusing_memory.sol @@ -26,6 +26,6 @@ contract Main { // compileViaYul: also // ---- // f(uint256): 0x34 -> 0x46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1 -// gas irOptimized: 115243 -// gas legacy: 126852 -// gas legacyOptimized: 114079 +// gas irOptimized: 118449 +// gas legacy: 136259 +// gas legacyOptimized: 118265 diff --git a/test/libsolidity/semanticTests/constructor/arrays_in_constructors.sol b/test/libsolidity/semanticTests/constructor/arrays_in_constructors.sol index 7d2f3cf78..ec86ee468 100644 --- a/test/libsolidity/semanticTests/constructor/arrays_in_constructors.sol +++ b/test/libsolidity/semanticTests/constructor/arrays_in_constructors.sol @@ -26,6 +26,6 @@ contract Creator { // compileViaYul: also // ---- // f(uint256,address[]): 7, 0x40, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 -> 7, 8 -// gas irOptimized: 486618 -// gas legacy: 592626 -// gas legacyOptimized: 450224 +// gas irOptimized: 494224 +// gas legacy: 602437 +// gas legacyOptimized: 454820 diff --git a/test/libsolidity/semanticTests/constructor/bytes_in_constructors_packer.sol b/test/libsolidity/semanticTests/constructor/bytes_in_constructors_packer.sol index 7b0ecfc38..14ae5e231 100644 --- a/test/libsolidity/semanticTests/constructor/bytes_in_constructors_packer.sol +++ b/test/libsolidity/semanticTests/constructor/bytes_in_constructors_packer.sol @@ -26,6 +26,6 @@ contract Creator { // compileViaYul: also // ---- // f(uint256,bytes): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" -> 7, "h" -// gas irOptimized: 336157 -// gas legacy: 429173 -// gas legacyOptimized: 298384 +// gas irOptimized: 344992 +// gas legacy: 438987 +// gas legacyOptimized: 302976 diff --git a/test/libsolidity/semanticTests/constructor/constructor_function_complex.sol b/test/libsolidity/semanticTests/constructor/constructor_function_complex.sol index 78466f3f0..fbf71c70b 100644 --- a/test/libsolidity/semanticTests/constructor/constructor_function_complex.sol +++ b/test/libsolidity/semanticTests/constructor/constructor_function_complex.sol @@ -19,4 +19,4 @@ contract C { // compileViaYul: also // ---- // f() -> 16 -// gas legacy: 103744 +// gas legacy: 113148 diff --git a/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol b/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol index c8d22c944..c38f5ffc8 100644 --- a/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol +++ b/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol @@ -178,33 +178,33 @@ contract DepositContract is IDepositContract, ERC165 { // compileViaYul: also // ---- // constructor() -// gas irOptimized: 1805935 -// gas legacy: 2580394 -// gas legacyOptimized: 1803757 +// gas irOptimized: 1815666 +// gas legacy: 2448101 +// gas legacyOptimized: 1781145 // supportsInterface(bytes4): 0x0 -> 0 // supportsInterface(bytes4): 0xffffffff00000000000000000000000000000000000000000000000000000000 -> false # defined to be false by ERC-165 # // supportsInterface(bytes4): 0x01ffc9a700000000000000000000000000000000000000000000000000000000 -> true # ERC-165 id # // supportsInterface(bytes4): 0x8564090700000000000000000000000000000000000000000000000000000000 -> true # the deposit interface id # // get_deposit_root() -> 0xd70a234731285c6804c2a4f56711ddb8c82c99740f207854891028af34e27e5e -// gas irOptimized: 127482 -// gas legacy: 150465 -// gas legacyOptimized: 122798 +// gas irOptimized: 127479 +// gas legacy: 150460 +// gas legacyOptimized: 122793 // get_deposit_count() -> 0x20, 8, 0 # TODO: check balance and logs after each deposit # // deposit(bytes,bytes,bytes,bytes32), 32 ether: 0 -> FAILURE # Empty input # // get_deposit_root() -> 0xd70a234731285c6804c2a4f56711ddb8c82c99740f207854891028af34e27e5e -// gas irOptimized: 127482 -// gas legacy: 150465 -// gas legacyOptimized: 122798 +// gas irOptimized: 127479 +// gas legacy: 150460 +// gas legacyOptimized: 122793 // get_deposit_count() -> 0x20, 8, 0 // deposit(bytes,bytes,bytes,bytes32), 1 ether: 0x80, 0xe0, 0x120, 0xaa4a8d0b7d9077248630f1a4701ae9764e42271d7f22b7838778411857fd349e, 0x30, 0x933ad9491b62059dd065b560d256d8957a8c402cc6e8d8ee7290ae11e8f73292, 0x67a8811c397529dac52ae1342ba58c9500000000000000000000000000000000, 0x20, 0x00f50428677c60f997aadeab24aabf7fceaef491c96a52b463ae91f95611cf71, 0x60, 0xa29d01cc8c6296a8150e515b5995390ef841dc18948aa3e79be6d7c1851b4cbb, 0x5d6ff49fa70b9c782399506a22a85193151b9b691245cebafd2063012443c132, 0x4b6c36debaedefb7b2d71b0503ffdc00150aaffd42e63358238ec888901738b8 -> # txhash: 0x7085c586686d666e8bb6e9477a0f0b09565b2060a11f1c4209d3a52295033832 # // get_deposit_root() -> 0x2089653123d9c721215120b6db6738ba273bbc5228ac093b1f983badcdc8a438 -// gas irOptimized: 127486 -// gas legacy: 150475 -// gas legacyOptimized: 122811 +// gas irOptimized: 127483 +// gas legacy: 150470 +// gas legacyOptimized: 122806 // get_deposit_count() -> 0x20, 8, 0x0100000000000000000000000000000000000000000000000000000000000000 // deposit(bytes,bytes,bytes,bytes32), 32 ether: 0x80, 0xe0, 0x120, 0xdbd986dc85ceb382708cf90a3500f500f0a393c5ece76963ac3ed72eccd2c301, 0x30, 0xb2ce0f79f90e7b3a113ca5783c65756f96c4b4673c2b5c1eb4efc22280259441, 0x06d601211e8866dc5b50dc48a244dd7c00000000000000000000000000000000, 0x20, 0x00344b6c73f71b11c56aba0d01b7d8ad83559f209d0a4101a515f6ad54c89771, 0x60, 0x945caaf82d18e78c033927d51f452ebcd76524497b91d7a11219cb3db6a1d369, 0x7595fc095ce489e46b2ef129591f2f6d079be4faaf345a02c5eb133c072e7c56, 0x0c6c3617eee66b4b878165c502357d49485326bc6b31bc96873f308c8f19c09d -> # txhash: 0x404d8e109822ce448e68f45216c12cb051b784d068fbe98317ab8e50c58304ac # // get_deposit_root() -> 0x40255975859377d912c53aa853245ebd939bdd2b33a28e084babdcc1ed8238ee -// gas irOptimized: 127486 -// gas legacy: 150475 -// gas legacyOptimized: 122811 +// gas irOptimized: 127483 +// gas legacy: 150470 +// gas legacyOptimized: 122806 // get_deposit_count() -> 0x20, 8, 0x0200000000000000000000000000000000000000000000000000000000000000 diff --git a/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol b/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol index 0ecd69fb3..e225fabea 100644 --- a/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol +++ b/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol @@ -50,46 +50,46 @@ contract test { // compileViaYul: also // ---- // constructor() -// gas irOptimized: 2171167 -// gas legacy: 2602700 -// gas legacyOptimized: 1900162 +// gas irOptimized: 2184349 +// gas legacy: 2491609 +// gas legacyOptimized: 1879872 // div(int256,int256): 3141592653589793238, 88714123 -> 35412542528203691288251815328 -// gas irOptimized: 22303 -// gas legacy: 22767 -// gas legacyOptimized: 22282 +// gas irOptimized: 22324 +// gas legacy: 22762 +// gas legacyOptimized: 22277 // exp(int256): 3141592653589793238 -> 23140692632779268978 -// gas irOptimized: 25094 -// gas legacy: 25203 -// gas legacyOptimized: 24357 +// gas irOptimized: 25091 +// gas legacy: 25198 +// gas legacyOptimized: 24352 // exp2(int256): 3141592653589793238 -> 8824977827076287620 -// gas irOptimized: 24808 -// gas legacy: 24864 -// gas legacyOptimized: 24110 +// gas irOptimized: 24805 +// gas legacy: 24859 +// gas legacyOptimized: 24105 // gm(int256,int256): 3141592653589793238, 88714123 -> 16694419339601 -// gas irOptimized: 23573 -// gas legacy: 23228 -// gas legacyOptimized: 22683 +// gas irOptimized: 23570 +// gas legacy: 23223 +// gas legacyOptimized: 22678 // log10(int256): 3141592653589793238 -> 4971498726941338506 -// gas irOptimized: 31328 -// gas legacy: 32934 -// gas legacyOptimized: 30323 +// gas irOptimized: 31325 +// gas legacy: 32929 +// gas legacyOptimized: 30318 // log2(int256): 3141592653589793238 -> 1651496129472318782 -// gas irOptimized: 29484 -// gas legacy: 31067 -// gas legacyOptimized: 28426 +// gas irOptimized: 29481 +// gas legacy: 31062 +// gas legacyOptimized: 28421 // mul(int256,int256): 3141592653589793238, 88714123 -> 278703637 -// gas irOptimized: 22414 -// gas legacy: 22807 -// gas legacyOptimized: 22295 -// pow(int256,uint256): 3141592653589793238, 5 -> 306019684785281453040 -// gas irOptimized: 22974 -// gas legacy: 23508 -// gas legacyOptimized: 22921 -// sqrt(int256): 3141592653589793238 -> 1772453850905516027 -// gas irOptimized: 23246 +// gas irOptimized: 22411 // gas legacy: 22802 -// gas legacyOptimized: 22422 +// gas legacyOptimized: 22290 +// pow(int256,uint256): 3141592653589793238, 5 -> 306019684785281453040 +// gas irOptimized: 22971 +// gas legacy: 23503 +// gas legacyOptimized: 22916 +// sqrt(int256): 3141592653589793238 -> 1772453850905516027 +// gas irOptimized: 23243 +// gas legacy: 22797 +// gas legacyOptimized: 22417 // benchmark(int256): 3141592653589793238 -> 998882724338592125, 1000000000000000000, 1000000000000000000 -// gas irOptimized: 43323 -// gas legacy: 36673 -// gas legacyOptimized: 34729 +// gas irOptimized: 43320 +// gas legacy: 36668 +// gas legacyOptimized: 34724 diff --git a/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol b/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol index eb749c68a..1b6e6b618 100644 --- a/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol +++ b/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol @@ -50,46 +50,46 @@ contract test { // compileViaYul: also // ---- // constructor() -// gas irOptimized: 1961108 -// gas legacy: 2356230 -// gas legacyOptimized: 1770105 +// gas irOptimized: 1974302 +// gas legacy: 2260843 +// gas legacyOptimized: 1751886 // div(uint256,uint256): 3141592653589793238, 88714123 -> 35412542528203691288251815328 -// gas irOptimized: 22103 -// gas legacy: 22497 -// gas legacyOptimized: 22010 +// gas irOptimized: 22100 +// gas legacy: 22492 +// gas legacyOptimized: 22005 // exp(uint256): 3141592653589793238 -> 23140692632779268978 -// gas irOptimized: 24981 -// gas legacy: 25104 -// gas legacyOptimized: 24258 +// gas irOptimized: 24978 +// gas legacy: 25099 +// gas legacyOptimized: 24253 // exp2(uint256): 3141592653589793238 -> 8824977827076287620 -// gas irOptimized: 24746 -// gas legacy: 24814 -// gas legacyOptimized: 24062 +// gas irOptimized: 24743 +// gas legacy: 24809 +// gas legacyOptimized: 24057 // gm(uint256,uint256): 3141592653589793238, 88714123 -> 16694419339601 -// gas irOptimized: 23575 -// gas legacy: 23269 -// gas legacyOptimized: 22724 +// gas irOptimized: 23572 +// gas legacy: 23264 +// gas legacyOptimized: 22719 // log10(uint256): 3141592653589793238 -> 0x44fe4fc084a52b8a -// gas irOptimized: 30936 -// gas legacy: 32898 -// gas legacyOptimized: 29925 +// gas irOptimized: 30933 +// gas legacy: 32893 +// gas legacyOptimized: 29920 // log2(uint256): 3141592653589793238 -> 1651496129472318782 -// gas irOptimized: 28838 -// gas legacy: 30986 -// gas legacyOptimized: 28001 +// gas irOptimized: 28835 +// gas legacy: 30981 +// gas legacyOptimized: 27996 // mul(uint256,uint256): 3141592653589793238, 88714123 -> 278703637 -// gas irOptimized: 22146 -// gas legacy: 22604 -// gas legacyOptimized: 22090 +// gas irOptimized: 22143 +// gas legacy: 22599 +// gas legacyOptimized: 22085 // pow(uint256,uint256): 3141592653589793238, 5 -> 306019684785281453040 -// gas irOptimized: 22653 -// gas legacy: 23245 -// gas legacyOptimized: 22646 +// gas irOptimized: 22674 +// gas legacy: 23240 +// gas legacyOptimized: 22641 // sqrt(uint256): 3141592653589793238 -> 1772453850905516027 -// gas irOptimized: 23264 -// gas legacy: 22820 -// gas legacyOptimized: 22440 +// gas irOptimized: 23261 +// gas legacy: 22815 +// gas legacyOptimized: 22435 // benchmark(uint256): 3141592653589793238 -> 998882724338592125, 1000000000000000000, 1000000000000000000 -// gas irOptimized: 42063 -// gas legacy: 35385 -// gas legacyOptimized: 33449 +// gas irOptimized: 42060 +// gas legacy: 35380 +// gas legacyOptimized: 33444 diff --git a/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol b/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol index bb56101aa..38b02c646 100644 --- a/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol +++ b/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol @@ -35,10 +35,10 @@ contract test { // compileViaYul: also // ---- // constructor() -// gas irOptimized: 591094 -// gas legacy: 733634 -// gas legacyOptimized: 498033 +// gas irOptimized: 593984 +// gas legacy: 683466 +// gas legacyOptimized: 484963 // prb_pi() -> 3141592656369545286 -// gas irOptimized: 66108 -// gas legacy: 98903 -// gas legacyOptimized: 75735 +// gas irOptimized: 66098 +// gas legacy: 98898 +// gas legacyOptimized: 75730 diff --git a/test/libsolidity/semanticTests/externalContracts/snark.sol b/test/libsolidity/semanticTests/externalContracts/snark.sol index 10c129b20..5badd5610 100644 --- a/test/libsolidity/semanticTests/externalContracts/snark.sol +++ b/test/libsolidity/semanticTests/externalContracts/snark.sol @@ -296,6 +296,6 @@ contract Test { // g() -> true // pair() -> true // verifyTx() -> true -// gas irOptimized: 111716 -// gas legacy: 114371 -// gas legacyOptimized: 83947 +// gas irOptimized: 111713 +// gas legacy: 114366 +// gas legacyOptimized: 83942 diff --git a/test/libsolidity/semanticTests/externalContracts/strings.sol b/test/libsolidity/semanticTests/externalContracts/strings.sol index 1f209ef6f..333d63180 100644 --- a/test/libsolidity/semanticTests/externalContracts/strings.sol +++ b/test/libsolidity/semanticTests/externalContracts/strings.sol @@ -51,26 +51,26 @@ contract test { // compileViaYul: also // ---- // constructor() -// gas irOptimized: 912777 -// gas legacy: 1188228 -// gas legacyOptimized: 771634 +// gas irOptimized: 923194 +// gas legacy: 1141418 +// gas legacyOptimized: 754682 // toSlice(string): 0x20, 11, "hello world" -> 11, 0xa0 -// gas irOptimized: 22877 -// gas legacy: 23190 -// gas legacyOptimized: 22508 +// gas irOptimized: 22874 +// gas legacy: 23185 +// gas legacyOptimized: 22503 // roundtrip(string): 0x20, 11, "hello world" -> 0x20, 11, "hello world" -// gas irOptimized: 23676 -// gas legacy: 23820 -// gas legacyOptimized: 23123 +// gas irOptimized: 23673 +// gas legacy: 23815 +// gas legacyOptimized: 23118 // utf8len(string): 0x20, 16, "\xf0\x9f\x98\x83\xf0\x9f\x98\x83\xf0\x9f\x98\x83\xf0\x9f\x98\x83" -> 4 # Input: "😃😃😃😃" # -// gas irOptimized: 24779 -// gas legacy: 25716 -// gas legacyOptimized: 24115 +// gas irOptimized: 24776 +// gas legacy: 25711 +// gas legacyOptimized: 24110 // multiconcat(string,uint256): 0x40, 3, 11, "hello world" -> 0x20, 0x58, 0x68656c6c6f20776f726c6468656c6c6f20776f726c6468656c6c6f20776f726c, 0x6468656c6c6f20776f726c6468656c6c6f20776f726c6468656c6c6f20776f72, 49027192869463622675296414541903001712009715982962058146354235762728281047040 # concatenating 3 times # -// gas irOptimized: 29729 -// gas legacy: 31621 -// gas legacyOptimized: 27914 +// gas irOptimized: 29726 +// gas legacy: 31616 +// gas legacyOptimized: 27909 // benchmark(string,bytes32): 0x40, 0x0842021, 8, "solidity" -> 0x2020 -// gas irOptimized: 2903627 -// gas legacy: 4381235 -// gas legacyOptimized: 2317529 +// gas irOptimized: 2903624 +// gas legacy: 4381230 +// gas legacyOptimized: 2317524 diff --git a/test/libsolidity/semanticTests/freeFunctions/new_operator.sol b/test/libsolidity/semanticTests/freeFunctions/new_operator.sol index 1694b64d5..40d6794ee 100644 --- a/test/libsolidity/semanticTests/freeFunctions/new_operator.sol +++ b/test/libsolidity/semanticTests/freeFunctions/new_operator.sol @@ -15,4 +15,4 @@ contract D { // compileViaYul: also // ---- // f() -> 2 -// gas legacy: 101754 +// gas legacy: 111181 diff --git a/test/libsolidity/semanticTests/functionCall/creation_function_call_no_args.sol b/test/libsolidity/semanticTests/functionCall/creation_function_call_no_args.sol index 8546c775e..5a298355c 100644 --- a/test/libsolidity/semanticTests/functionCall/creation_function_call_no_args.sol +++ b/test/libsolidity/semanticTests/functionCall/creation_function_call_no_args.sol @@ -13,4 +13,4 @@ contract D { // compileViaYul: also // ---- // f() -> 2 -// gas legacy: 101727 +// gas legacy: 111154 diff --git a/test/libsolidity/semanticTests/functionCall/failed_create.sol b/test/libsolidity/semanticTests/functionCall/failed_create.sol index 747afe8a6..474b6657e 100644 --- a/test/libsolidity/semanticTests/functionCall/failed_create.sol +++ b/test/libsolidity/semanticTests/functionCall/failed_create.sol @@ -18,15 +18,15 @@ contract C { // compileViaYul: also // ---- // constructor(), 20 wei -// gas irOptimized: 259072 +// gas irOptimized: 263566 // gas legacy: 288299 -// gas legacyOptimized: 177933 +// gas legacyOptimized: 183093 // f(uint256): 20 -> 1370859564726510389319704988634906228201275401179 // x() -> 1 // f(uint256): 20 -> FAILURE // x() -> 1 // stack(uint256): 1023 -> FAILURE -// gas irOptimized: 391236 +// gas irOptimized: 389967 // gas legacy: 535367 // gas legacyOptimized: 354656 // x() -> 1 diff --git a/test/libsolidity/semanticTests/functionCall/mapping_array_internal_argument.sol b/test/libsolidity/semanticTests/functionCall/mapping_array_internal_argument.sol index d024a4edb..b584f0201 100644 --- a/test/libsolidity/semanticTests/functionCall/mapping_array_internal_argument.sol +++ b/test/libsolidity/semanticTests/functionCall/mapping_array_internal_argument.sol @@ -20,9 +20,9 @@ contract test { // compileViaYul: also // ---- // set(uint8,uint8,uint8,uint8,uint8): 1, 21, 22, 42, 43 -> 0, 0, 0, 0 -// gas irOptimized: 112214 -// gas legacy: 113806 -// gas legacyOptimized: 111781 +// gas irOptimized: 112211 +// gas legacy: 113801 +// gas legacyOptimized: 111776 // get(uint8): 1 -> 21, 22, 42, 43 // set(uint8,uint8,uint8,uint8,uint8): 1, 10, 30, 11, 31 -> 21, 22, 42, 43 // get(uint8): 1 -> 10, 30, 11, 31 diff --git a/test/libsolidity/semanticTests/functionTypes/store_function.sol b/test/libsolidity/semanticTests/functionTypes/store_function.sol index 7318b5bc3..7b7991bb6 100644 --- a/test/libsolidity/semanticTests/functionTypes/store_function.sol +++ b/test/libsolidity/semanticTests/functionTypes/store_function.sol @@ -28,6 +28,6 @@ contract C { // compileViaYul: also // ---- // t() -> 9 -// gas irOptimized: 100053 -// gas legacy: 158997 -// gas legacyOptimized: 108916 +// gas irOptimized: 108316 +// gas legacy: 168813 +// gas legacyOptimized: 113126 diff --git a/test/libsolidity/semanticTests/immutable/multi_creation.sol b/test/libsolidity/semanticTests/immutable/multi_creation.sol index aa3ca2606..5673af50c 100644 --- a/test/libsolidity/semanticTests/immutable/multi_creation.sol +++ b/test/libsolidity/semanticTests/immutable/multi_creation.sol @@ -29,8 +29,8 @@ contract C { // compileViaYul: also // ---- // f() -> 3, 7, 5 -// gas irOptimized: 128980 -// gas legacy: 151590 -// gas legacyOptimized: 125422 +// gas irOptimized: 135386 +// gas legacy: 170440 +// gas legacyOptimized: 133836 // x() -> 7 // y() -> 5 diff --git a/test/libsolidity/semanticTests/inheritance/address_overload_resolution.sol b/test/libsolidity/semanticTests/inheritance/address_overload_resolution.sol index 00998cdf1..f03c88a4f 100644 --- a/test/libsolidity/semanticTests/inheritance/address_overload_resolution.sol +++ b/test/libsolidity/semanticTests/inheritance/address_overload_resolution.sol @@ -23,8 +23,8 @@ contract D { // compileViaYul: also // ---- // f() -> 1 -// gas irOptimized: 85304 -// gas legacy: 115012 +// gas irOptimized: 91736 +// gas legacy: 124833 // g() -> 5 -// gas irOptimized: 85400 -// gas legacy: 115472 +// gas irOptimized: 91824 +// gas legacy: 125293 diff --git a/test/libsolidity/semanticTests/inheritance/inherited_function_calldata_calldata_interface.sol b/test/libsolidity/semanticTests/inheritance/inherited_function_calldata_calldata_interface.sol index 804e7197f..5a4fe6654 100644 --- a/test/libsolidity/semanticTests/inheritance/inherited_function_calldata_calldata_interface.sol +++ b/test/libsolidity/semanticTests/inheritance/inherited_function_calldata_calldata_interface.sol @@ -25,5 +25,5 @@ contract B { // compileViaYul: also // ---- // g() -> 42 -// gas irOptimized: 89435 -// gas legacy: 125609 +// gas irOptimized: 92638 +// gas legacy: 135442 diff --git a/test/libsolidity/semanticTests/inheritance/inherited_function_calldata_memory_interface.sol b/test/libsolidity/semanticTests/inheritance/inherited_function_calldata_memory_interface.sol index 98b33cd5b..7e5eb5cae 100644 --- a/test/libsolidity/semanticTests/inheritance/inherited_function_calldata_memory_interface.sol +++ b/test/libsolidity/semanticTests/inheritance/inherited_function_calldata_memory_interface.sol @@ -25,6 +25,6 @@ contract B { // compileViaYul: also // ---- // g() -> 42 -// gas irOptimized: 118458 -// gas legacy: 186609 -// gas legacyOptimized: 116151 +// gas irOptimized: 121670 +// gas legacy: 196430 +// gas legacyOptimized: 120766 diff --git a/test/libsolidity/semanticTests/inheritance/member_notation_ctor.sol b/test/libsolidity/semanticTests/inheritance/member_notation_ctor.sol index 9a095cc21..b3a48c9ed 100644 --- a/test/libsolidity/semanticTests/inheritance/member_notation_ctor.sol +++ b/test/libsolidity/semanticTests/inheritance/member_notation_ctor.sol @@ -22,6 +22,6 @@ contract A { // compileViaYul: also // ---- // g(int256): -1 -> -1 -// gas legacy: 103622 +// gas legacy: 113034 // g(int256): 10 -> 10 -// gas legacy: 103250 +// gas legacy: 112662 diff --git a/test/libsolidity/semanticTests/inlineAssembly/keccak_yul_optimization.sol b/test/libsolidity/semanticTests/inlineAssembly/keccak_yul_optimization.sol index f0d9aa8fe..44d619dfe 100644 --- a/test/libsolidity/semanticTests/inlineAssembly/keccak_yul_optimization.sol +++ b/test/libsolidity/semanticTests/inlineAssembly/keccak_yul_optimization.sol @@ -26,10 +26,10 @@ contract C { // compileViaYul: also // ---- // f() -> 0xcdb56c384a9682c600315e3470157a4cf7638d0d33e9dae5c40ffd2644fc5a80 -// gas irOptimized: 22521 -// gas legacy: 23385 -// gas legacyOptimized: 23092 +// gas irOptimized: 22535 +// gas legacy: 23380 +// gas legacyOptimized: 23087 // g() -> 0xcdb56c384a9682c600315e3470157a4cf7638d0d33e9dae5c40ffd2644fc5a80 // gas irOptimized: 21391 -// gas legacy: 21462 -// gas legacyOptimized: 21256 +// gas legacy: 21457 +// gas legacyOptimized: 21251 diff --git a/test/libsolidity/semanticTests/interface_inheritance_conversions.sol b/test/libsolidity/semanticTests/interface_inheritance_conversions.sol index dd38a7ed8..44140cc83 100644 --- a/test/libsolidity/semanticTests/interface_inheritance_conversions.sol +++ b/test/libsolidity/semanticTests/interface_inheritance_conversions.sol @@ -37,10 +37,11 @@ contract C { // compileViaYul: also // ---- // convertParent() -> 1 -// gas irOptimized: 102437 +// gas irOptimized: 115678 +// gas legacy: 112222 // convertSubA() -> 1, 2 -// gas irOptimized: 103320 -// gas legacy: 99303 +// gas irOptimized: 116558 +// gas legacy: 113331 // convertSubB() -> 1, 3 -// gas irOptimized: 103254 -// gas legacy: 99237 +// gas irOptimized: 116492 +// gas legacy: 113265 diff --git a/test/libsolidity/semanticTests/payable/no_nonpayable_circumvention_by_modifier.sol b/test/libsolidity/semanticTests/payable/no_nonpayable_circumvention_by_modifier.sol index b24ca2291..426e8dfc1 100644 --- a/test/libsolidity/semanticTests/payable/no_nonpayable_circumvention_by_modifier.sol +++ b/test/libsolidity/semanticTests/payable/no_nonpayable_circumvention_by_modifier.sol @@ -10,8 +10,8 @@ contract C { } } // ==== -// compileViaYul: also // compileToEwasm: also +// compileViaYul: also // ---- -// f(), 27 wei -> FAILURE +// f(), 27 wei -> FAILURE, hex"4e487b71", 0x02 // balance -> 0 diff --git a/test/libsolidity/semanticTests/receive/empty_calldata_calls_receive.sol b/test/libsolidity/semanticTests/receive/empty_calldata_calls_receive.sol index fc87540a0..061b20c5b 100644 --- a/test/libsolidity/semanticTests/receive/empty_calldata_calls_receive.sol +++ b/test/libsolidity/semanticTests/receive/empty_calldata_calls_receive.sol @@ -11,6 +11,6 @@ contract A { // x() -> 1 // (), 1 wei // x() -> 2 -// x(), 1 wei -> FAILURE +// x(), 1 wei -> FAILURE, hex"4e487b71", 0x02 // (): hex"00" -> FAILURE // (), 1 ether: hex"00" -> FAILURE diff --git a/test/libsolidity/semanticTests/revertStrings/ether_non_payable_function.sol b/test/libsolidity/semanticTests/revertStrings/ether_non_payable_function.sol index cabe385ef..6781030d3 100644 --- a/test/libsolidity/semanticTests/revertStrings/ether_non_payable_function.sol +++ b/test/libsolidity/semanticTests/revertStrings/ether_non_payable_function.sol @@ -6,5 +6,5 @@ contract C { // compileViaYul: also // revertStrings: debug // ---- -// f(), 1 ether -> FAILURE, hex"08c379a0", 0x20, 34, "Ether sent to non-payable functi", "on" +// f(), 1 ether -> FAILURE, hex"4e487b71", 0x02 // () -> FAILURE, hex"08c379a0", 0x20, 53, "Contract does not have fallback ", "nor receive functions" diff --git a/test/libsolidity/semanticTests/salted_create/salted_create_with_value.sol b/test/libsolidity/semanticTests/salted_create/salted_create_with_value.sol index 9c52a803a..bef7ee69c 100644 --- a/test/libsolidity/semanticTests/salted_create/salted_create_with_value.sol +++ b/test/libsolidity/semanticTests/salted_create/salted_create_with_value.sol @@ -22,6 +22,6 @@ contract A { // compileViaYul: also // ---- // f(), 10 ether -> 3007, 3008, 3009 -// gas irOptimized: 294879 -// gas legacy: 422627 -// gas legacyOptimized: 287856 +// gas irOptimized: 304497 +// gas legacy: 452060 +// gas legacyOptimized: 300471 diff --git a/test/libsolidity/semanticTests/smoke/alignment.sol b/test/libsolidity/semanticTests/smoke/alignment.sol index 143473461..58589d1d4 100644 --- a/test/libsolidity/semanticTests/smoke/alignment.sol +++ b/test/libsolidity/semanticTests/smoke/alignment.sol @@ -27,5 +27,5 @@ contract D { // stateDecimal() -> right(42) // stateBytes() -> left(0x4200ef) // internalStateDecimal() -> 0x20 -// gas legacy: 101807 +// gas legacy: 111234 // update(bool,uint256,bytes32): false, -23, left(0x2300ef) -> false, -23, left(0x2300ef) diff --git a/test/libsolidity/semanticTests/storage/packed_storage_structs_bytes.sol b/test/libsolidity/semanticTests/storage/packed_storage_structs_bytes.sol index 937f39e14..9a373080f 100644 --- a/test/libsolidity/semanticTests/storage/packed_storage_structs_bytes.sol +++ b/test/libsolidity/semanticTests/storage/packed_storage_structs_bytes.sol @@ -47,5 +47,5 @@ contract C { // ---- // test() -> true // gas irOptimized: 135766 -// gas legacy: 136036 -// gas legacyOptimized: 133480 +// gas legacy: 136031 +// gas legacyOptimized: 133475 diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_nested_array_to_storage.sol b/test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_nested_array_to_storage.sol index ac1384b52..aba49f02e 100644 --- a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_nested_array_to_storage.sol +++ b/test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_nested_array_to_storage.sol @@ -19,5 +19,5 @@ contract C { // ---- // f(uint32,(uint128,uint256[][2],uint32)): 55, 0x40, 77, 0x60, 88, 0x40, 0x40, 2, 1, 2 -> 55, 77, 1, 2, 88 // gas irOptimized: 204368 -// gas legacy: 208666 -// gas legacyOptimized: 203583 +// gas legacy: 208661 +// gas legacyOptimized: 203578 diff --git a/test/libsolidity/semanticTests/structs/conversion/recursive_storage_memory.sol b/test/libsolidity/semanticTests/structs/conversion/recursive_storage_memory.sol index 1e291fef1..7fd9dea81 100644 --- a/test/libsolidity/semanticTests/structs/conversion/recursive_storage_memory.sol +++ b/test/libsolidity/semanticTests/structs/conversion/recursive_storage_memory.sol @@ -26,5 +26,5 @@ contract CopyTest { // ---- // run() -> 2, 23, 42 // gas irOptimized: 198438 -// gas legacy: 186016 -// gas legacyOptimized: 184668 +// gas legacy: 186011 +// gas legacyOptimized: 184663 diff --git a/test/libsolidity/semanticTests/structs/memory_structs_nested_load.sol b/test/libsolidity/semanticTests/structs/memory_structs_nested_load.sol index 7fb2e8bd1..f079f8b48 100644 --- a/test/libsolidity/semanticTests/structs/memory_structs_nested_load.sol +++ b/test/libsolidity/semanticTests/structs/memory_structs_nested_load.sol @@ -69,7 +69,7 @@ contract Test { // compileViaYul: also // ---- // load() -> 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 -// gas irOptimized: 111932 -// gas legacy: 112999 -// gas legacyOptimized: 110881 +// gas irOptimized: 111977 +// gas legacy: 112994 +// gas legacyOptimized: 110876 // store() -> 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 diff --git a/test/libsolidity/semanticTests/structs/struct_containing_bytes_copy_and_delete.sol b/test/libsolidity/semanticTests/structs/struct_containing_bytes_copy_and_delete.sol index 3f13f23ca..f2993073f 100644 --- a/test/libsolidity/semanticTests/structs/struct_containing_bytes_copy_and_delete.sol +++ b/test/libsolidity/semanticTests/structs/struct_containing_bytes_copy_and_delete.sol @@ -25,9 +25,9 @@ contract c { // ---- // storageEmpty -> 1 // set(uint256,bytes,uint256): 12, 0x60, 13, 33, "12345678901234567890123456789012", "3" -> true -// gas irOptimized: 133905 -// gas legacy: 134436 -// gas legacyOptimized: 133879 +// gas irOptimized: 133902 +// gas legacy: 134431 +// gas legacyOptimized: 133874 // test(uint256): 32 -> "3" // storageEmpty -> 0 // copy() -> true diff --git a/test/libsolidity/semanticTests/structs/struct_copy.sol b/test/libsolidity/semanticTests/structs/struct_copy.sol index b54f07e09..20d218684 100644 --- a/test/libsolidity/semanticTests/structs/struct_copy.sol +++ b/test/libsolidity/semanticTests/structs/struct_copy.sol @@ -38,14 +38,14 @@ contract c { // compileViaYul: also // ---- // set(uint256): 7 -> true -// gas irOptimized: 110249 -// gas legacy: 110616 -// gas legacyOptimized: 110006 +// gas irOptimized: 110246 +// gas legacy: 110611 +// gas legacyOptimized: 110001 // retrieve(uint256): 7 -> 1, 3, 4, 2 // copy(uint256,uint256): 7, 8 -> true -// gas irOptimized: 118769 -// gas legacy: 119166 -// gas legacyOptimized: 118622 +// gas irOptimized: 118766 +// gas legacy: 119161 +// gas legacyOptimized: 118617 // retrieve(uint256): 7 -> 1, 3, 4, 2 // retrieve(uint256): 8 -> 1, 3, 4, 2 // copy(uint256,uint256): 0, 7 -> true diff --git a/test/libsolidity/semanticTests/structs/struct_copy_via_local.sol b/test/libsolidity/semanticTests/structs/struct_copy_via_local.sol index 3d37f06d6..fd2c4365a 100644 --- a/test/libsolidity/semanticTests/structs/struct_copy_via_local.sol +++ b/test/libsolidity/semanticTests/structs/struct_copy_via_local.sol @@ -22,5 +22,5 @@ contract c { // ---- // test() -> true // gas irOptimized: 110223 -// gas legacy: 110627 -// gas legacyOptimized: 109706 +// gas legacy: 110622 +// gas legacyOptimized: 109701 diff --git a/test/libsolidity/semanticTests/structs/struct_delete_storage_with_array.sol b/test/libsolidity/semanticTests/structs/struct_delete_storage_with_array.sol index f40a76745..963b9307a 100644 --- a/test/libsolidity/semanticTests/structs/struct_delete_storage_with_array.sol +++ b/test/libsolidity/semanticTests/structs/struct_delete_storage_with_array.sol @@ -45,6 +45,6 @@ contract C { // ---- // f() -> // gas irOptimized: 121810 -// gas legacy: 122132 -// gas legacyOptimized: 121500 +// gas legacy: 122127 +// gas legacyOptimized: 121495 // g() -> diff --git a/test/libsolidity/semanticTests/structs/struct_memory_to_storage_function_ptr.sol b/test/libsolidity/semanticTests/structs/struct_memory_to_storage_function_ptr.sol index bf9034b12..e7c4c05af 100644 --- a/test/libsolidity/semanticTests/structs/struct_memory_to_storage_function_ptr.sol +++ b/test/libsolidity/semanticTests/structs/struct_memory_to_storage_function_ptr.sol @@ -33,5 +33,5 @@ contract C { // ---- // f() -> 42, 23, 34, 42, 42 // gas irOptimized: 111210 -// gas legacy: 112021 -// gas legacyOptimized: 110548 +// gas legacy: 112016 +// gas legacyOptimized: 110543 diff --git a/test/libsolidity/semanticTests/structs/structs.sol b/test/libsolidity/semanticTests/structs/structs.sol index 3b49e6f7c..4ece135c6 100644 --- a/test/libsolidity/semanticTests/structs/structs.sol +++ b/test/libsolidity/semanticTests/structs/structs.sol @@ -33,6 +33,6 @@ contract test { // check() -> false // set() -> // gas irOptimized: 134859 -// gas legacy: 135277 -// gas legacyOptimized: 134064 +// gas legacy: 135272 +// gas legacyOptimized: 134059 // check() -> true diff --git a/test/libsolidity/semanticTests/various/code_access_content.sol b/test/libsolidity/semanticTests/various/code_access_content.sol index 3f8d56587..6d1abf69f 100644 --- a/test/libsolidity/semanticTests/various/code_access_content.sol +++ b/test/libsolidity/semanticTests/various/code_access_content.sol @@ -40,6 +40,6 @@ contract C { // compileViaYul: also // ---- // testRuntime() -> true -// gas legacy: 101579 +// gas legacy: 111086 // testCreation() -> true -// gas legacy: 102137 +// gas legacy: 111621 diff --git a/test/libsolidity/semanticTests/various/code_access_create.sol b/test/libsolidity/semanticTests/various/code_access_create.sol index c32135fe5..7c2e9dc97 100644 --- a/test/libsolidity/semanticTests/various/code_access_create.sol +++ b/test/libsolidity/semanticTests/various/code_access_create.sol @@ -26,4 +26,4 @@ contract C { // compileViaYul: also // ---- // test() -> 7 -// gas legacy: 102392 +// gas legacy: 111819 diff --git a/test/libsolidity/semanticTests/various/code_access_runtime.sol b/test/libsolidity/semanticTests/various/code_access_runtime.sol index 49d0d9ceb..dfb345e4f 100644 --- a/test/libsolidity/semanticTests/various/code_access_runtime.sol +++ b/test/libsolidity/semanticTests/various/code_access_runtime.sol @@ -25,4 +25,4 @@ contract C { // compileViaYul: also // ---- // test() -> 42 -// gas legacy: 101638 +// gas legacy: 111088 diff --git a/test/libsolidity/semanticTests/various/destructuring_assignment.sol b/test/libsolidity/semanticTests/various/destructuring_assignment.sol index 1f49d3128..550ac3dc6 100644 --- a/test/libsolidity/semanticTests/various/destructuring_assignment.sol +++ b/test/libsolidity/semanticTests/various/destructuring_assignment.sol @@ -37,5 +37,5 @@ contract C { // ---- // f(bytes): 0x20, 0x5, "abcde" -> 0 // gas irOptimized: 241728 -// gas legacy: 240358 -// gas legacyOptimized: 239682 +// gas legacy: 240353 +// gas legacyOptimized: 239677 diff --git a/test/libsolidity/semanticTests/various/external_types_in_calls.sol b/test/libsolidity/semanticTests/various/external_types_in_calls.sol index 941a06a91..0dd4558a5 100644 --- a/test/libsolidity/semanticTests/various/external_types_in_calls.sol +++ b/test/libsolidity/semanticTests/various/external_types_in_calls.sol @@ -27,5 +27,6 @@ contract C { // compileViaYul: also // ---- // test() -> 9, 7 -// gas legacy: 121594 +// gas legacy: 134411 +// gas legacyOptimized: 100098 // t2() -> 9 diff --git a/test/libsolidity/semanticTests/various/skip_dynamic_types_for_structs.sol b/test/libsolidity/semanticTests/various/skip_dynamic_types_for_structs.sol index 8213f346a..483495e49 100644 --- a/test/libsolidity/semanticTests/various/skip_dynamic_types_for_structs.sol +++ b/test/libsolidity/semanticTests/various/skip_dynamic_types_for_structs.sol @@ -22,6 +22,6 @@ contract C { // compileViaYul: also // ---- // g() -> 2, 6 -// gas irOptimized: 179260 -// gas legacy: 180890 -// gas legacyOptimized: 179609 +// gas irOptimized: 179315 +// gas legacy: 180880 +// gas legacyOptimized: 179599 diff --git a/test/libsolidity/semanticTests/various/staticcall_for_view_and_pure.sol b/test/libsolidity/semanticTests/various/staticcall_for_view_and_pure.sol index b5f14e3cc..701cb146a 100644 --- a/test/libsolidity/semanticTests/various/staticcall_for_view_and_pure.sol +++ b/test/libsolidity/semanticTests/various/staticcall_for_view_and_pure.sol @@ -36,12 +36,12 @@ contract D { // compileViaYul: also // ---- // f() -> 0x1 # This should work, next should throw # -// gas legacy: 103844 +// gas legacy: 113265 // fview() -> FAILURE -// gas irOptimized: 98438645 -// gas legacy: 98438803 -// gas legacyOptimized: 98438596 +// gas irOptimized: 98438695 +// gas legacy: 98438950 +// gas legacyOptimized: 98438662 // fpure() -> FAILURE -// gas irOptimized: 98438646 -// gas legacy: 98438803 -// gas legacyOptimized: 98438597 +// gas irOptimized: 98438696 +// gas legacy: 98438951 +// gas legacyOptimized: 98438663 diff --git a/test/libsolidity/semanticTests/various/swap_in_storage_overwrite.sol b/test/libsolidity/semanticTests/various/swap_in_storage_overwrite.sol index 165b4f006..892edf120 100644 --- a/test/libsolidity/semanticTests/various/swap_in_storage_overwrite.sol +++ b/test/libsolidity/semanticTests/various/swap_in_storage_overwrite.sol @@ -30,9 +30,9 @@ contract c { // x() -> 0, 0 // y() -> 0, 0 // set() -> -// gas irOptimized: 109754 -// gas legacy: 109732 -// gas legacyOptimized: 109682 +// gas irOptimized: 109751 +// gas legacy: 109727 +// gas legacyOptimized: 109677 // x() -> 1, 2 // y() -> 3, 4 // swap() -> diff --git a/test/libsolidity/semanticTests/viaYul/array_memory_index_access.sol b/test/libsolidity/semanticTests/viaYul/array_memory_index_access.sol index 1ed094157..5680cb20e 100644 --- a/test/libsolidity/semanticTests/viaYul/array_memory_index_access.sol +++ b/test/libsolidity/semanticTests/viaYul/array_memory_index_access.sol @@ -28,9 +28,9 @@ contract C { // index(uint256): 10 -> true // index(uint256): 20 -> true // index(uint256): 0xFF -> true -// gas irOptimized: 167357 -// gas legacy: 248854 -// gas legacyOptimized: 152638 +// gas irOptimized: 167354 +// gas legacy: 248849 +// gas legacyOptimized: 152633 // accessIndex(uint256,int256): 10, 1 -> 2 // accessIndex(uint256,int256): 10, 0 -> 1 // accessIndex(uint256,int256): 10, 11 -> FAILURE, hex"4e487b71", 0x32 diff --git a/test/libsolidity/semanticTests/viaYul/array_storage_index_access.sol b/test/libsolidity/semanticTests/viaYul/array_storage_index_access.sol index 669f8083c..213f7b731 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_index_access.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_index_access.sol @@ -19,32 +19,32 @@ contract C { // test_indices(uint256): 1 -> // test_indices(uint256): 129 -> // gas irOptimized: 3070168 -// gas legacy: 3071205 -// gas legacyOptimized: 3011873 +// gas legacy: 3071200 +// gas legacyOptimized: 3011868 // test_indices(uint256): 5 -> // gas irOptimized: 373956 -// gas legacy: 369241 -// gas legacyOptimized: 366149 +// gas legacy: 369236 +// gas legacyOptimized: 366144 // test_indices(uint256): 10 -> // test_indices(uint256): 15 -> // gas irOptimized: 76670 // test_indices(uint256): 0xFF -> // gas irOptimized: 3511240 -// gas legacy: 3514167 -// gas legacyOptimized: 3398107 +// gas legacy: 3514162 +// gas legacyOptimized: 3398102 // test_indices(uint256): 1000 -> // gas irOptimized: 18591162 -// gas legacy: 18617999 -// gas legacyOptimized: 18178944 +// gas legacy: 18617994 +// gas legacyOptimized: 18178939 // test_indices(uint256): 129 -> // gas irOptimized: 2798783 -// gas legacy: 2772735 -// gas legacyOptimized: 2716547 +// gas legacy: 2772730 +// gas legacyOptimized: 2716542 // test_indices(uint256): 128 -> // gas irOptimized: 455997 -// gas legacy: 467272 -// gas legacyOptimized: 418424 +// gas legacy: 467267 +// gas legacyOptimized: 418419 // test_indices(uint256): 1 -> // gas irOptimized: 368599 -// gas legacy: 363407 -// gas legacyOptimized: 361811 +// gas legacy: 363402 +// gas legacyOptimized: 361806 diff --git a/test/libsolidity/semanticTests/viaYul/array_storage_index_boundary_test.sol b/test/libsolidity/semanticTests/viaYul/array_storage_index_boundary_test.sol index c2e1e925e..ef17124d0 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_index_boundary_test.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_index_boundary_test.sol @@ -19,11 +19,11 @@ contract C { // test_boundary_check(uint256,uint256): 10, 10 -> FAILURE, hex"4e487b71", 0x32 // test_boundary_check(uint256,uint256): 256, 256 -> FAILURE, hex"4e487b71", 0x32 // gas irOptimized: 151436 -// gas legacy: 131830 -// gas legacyOptimized: 112054 +// gas legacy: 131825 +// gas legacyOptimized: 112049 // test_boundary_check(uint256,uint256): 256, 255 -> 0 // gas irOptimized: 153717 -// gas legacy: 134149 -// gas legacyOptimized: 114233 +// gas legacy: 134144 +// gas legacyOptimized: 114228 // test_boundary_check(uint256,uint256): 256, 0xFFFF -> FAILURE, hex"4e487b71", 0x32 // test_boundary_check(uint256,uint256): 256, 2 -> 0 diff --git a/test/libsolidity/semanticTests/viaYul/array_storage_index_zeroed_test.sol b/test/libsolidity/semanticTests/viaYul/array_storage_index_zeroed_test.sol index 55f53d92c..14087e962 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_index_zeroed_test.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_index_zeroed_test.sol @@ -55,17 +55,17 @@ contract C { // test_zeroed_indicies(uint256): 1 -> // test_zeroed_indicies(uint256): 5 -> // gas irOptimized: 133918 -// gas legacy: 132367 -// gas legacyOptimized: 129586 +// gas legacy: 132362 +// gas legacyOptimized: 129581 // test_zeroed_indicies(uint256): 10 -> // gas irOptimized: 179646 -// gas legacy: 177329 -// gas legacyOptimized: 172224 +// gas legacy: 177324 +// gas legacyOptimized: 172219 // test_zeroed_indicies(uint256): 15 -> // gas irOptimized: 204956 -// gas legacy: 201954 -// gas legacyOptimized: 194604 +// gas legacy: 201949 +// gas legacyOptimized: 194599 // test_zeroed_indicies(uint256): 0xFF -> // gas irOptimized: 6218066 -// gas legacy: 6163149 -// gas legacyOptimized: 6029474 +// gas legacy: 6163144 +// gas legacyOptimized: 6029469 diff --git a/test/libsolidity/semanticTests/viaYul/array_storage_length_access.sol b/test/libsolidity/semanticTests/viaYul/array_storage_length_access.sol index b5479bc29..a33e839ed 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_length_access.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_length_access.sol @@ -15,10 +15,10 @@ contract C { // set_get_length(uint256): 20 -> 20 // set_get_length(uint256): 0xFF -> 0xFF // gas irOptimized: 105956 -// gas legacy: 126722 -// gas legacyOptimized: 107818 +// gas legacy: 126717 +// gas legacyOptimized: 107813 // set_get_length(uint256): 0xFFF -> 0xFFF // gas irOptimized: 1367718 -// gas legacy: 1702119 -// gas legacyOptimized: 1398420 +// gas legacy: 1702114 +// gas legacyOptimized: 1398415 // set_get_length(uint256): 0xFFFFF -> FAILURE # Out-of-gas # diff --git a/test/libsolidity/semanticTests/viaYul/array_storage_push_empty.sol b/test/libsolidity/semanticTests/viaYul/array_storage_push_empty.sol index 5acbba8fd..f61bf7e2b 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_push_empty.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_push_empty.sol @@ -14,12 +14,12 @@ contract C { // ---- // pushEmpty(uint256): 128 // gas irOptimized: 430912 -// gas legacy: 417287 -// gas legacyOptimized: 399048 +// gas legacy: 417282 +// gas legacyOptimized: 399043 // pushEmpty(uint256): 256 // gas irOptimized: 732164 -// gas legacy: 715083 -// gas legacyOptimized: 688908 +// gas legacy: 715078 +// gas legacyOptimized: 688903 // pushEmpty(uint256): 38869 -> FAILURE # out-of-gas # // gas irOptimized: 100000000 // gas legacy: 100000000 diff --git a/test/libsolidity/semanticTests/viaYul/array_storage_push_empty_length_address.sol b/test/libsolidity/semanticTests/viaYul/array_storage_push_empty_length_address.sol index 273c50814..96ff30bfe 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_push_empty_length_address.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_push_empty_length_address.sol @@ -19,16 +19,16 @@ contract C { // set_get_length(uint256): 20 -> 20 // set_get_length(uint256): 0 -> 0 // gas irOptimized: 79199 -// gas legacy: 77730 -// gas legacyOptimized: 77162 +// gas legacy: 77725 +// gas legacyOptimized: 77157 // set_get_length(uint256): 0xFF -> 0xFF // gas irOptimized: 155961 -// gas legacy: 678237 -// gas legacyOptimized: 115104 +// gas legacy: 678232 +// gas legacyOptimized: 115099 // set_get_length(uint256): 0xFFF -> 0xFFF // gas irOptimized: 2013003 -// gas legacy: 9873774 -// gas legacyOptimized: 1398546 +// gas legacy: 9873769 +// gas legacyOptimized: 1398541 // set_get_length(uint256): 0xFFFFF -> FAILURE # Out-of-gas # // gas irOptimized: 100000000 // gas legacyOptimized: 100000000 diff --git a/test/libsolidity/semanticTests/viaYul/array_storage_push_pop.sol b/test/libsolidity/semanticTests/viaYul/array_storage_push_pop.sol index b0ae9700d..c137502dd 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_push_pop.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_push_pop.sol @@ -16,14 +16,14 @@ contract C { // set_get_length(uint256): 10 -> 0 // set_get_length(uint256): 20 -> 0 // gas irOptimized: 88845 -// gas legacy: 85822 -// gas legacyOptimized: 83608 +// gas legacy: 85817 +// gas legacyOptimized: 83603 // set_get_length(uint256): 0xFF -> 0 // gas irOptimized: 852360 -// gas legacy: 810327 -// gas legacyOptimized: 786258 +// gas legacy: 810322 +// gas legacyOptimized: 786253 // set_get_length(uint256): 0xFFF -> 0 // gas irOptimized: 13328532 -// gas legacy: 12649059 -// gas legacyOptimized: 12267870 +// gas legacy: 12649054 +// gas legacyOptimized: 12267865 // set_get_length(uint256): 0xFFFF -> FAILURE # Out-of-gas # diff --git a/test/libsolidity/semanticTests/viaYul/function_entry_checks.sol b/test/libsolidity/semanticTests/viaYul/function_entry_checks.sol index cf06479a7..4eba3f606 100644 --- a/test/libsolidity/semanticTests/viaYul/function_entry_checks.sol +++ b/test/libsolidity/semanticTests/viaYul/function_entry_checks.sol @@ -23,7 +23,7 @@ contract C { // f() -> 0 // g(uint256,uint256): 1, -2 -> 0 // h(), 1 ether -> 0 -// i(bytes32), 1 ether: 2 -> FAILURE +// i(bytes32), 1 ether: 2 -> FAILURE, hex"4e487b71", 0x02 // i(bytes32): 2 -> 0 // j(bool): true -> false // k(bytes32): 0x31 -> 0x00