diff --git a/test/cmdlineTests/optimizer_array_sload/output b/test/cmdlineTests/optimizer_array_sload/output index 98b23306a..073d0e6ca 100644 --- a/test/cmdlineTests/optimizer_array_sload/output +++ b/test/cmdlineTests/optimizer_array_sload/output @@ -35,15 +35,8 @@ object "Arraysum_34" { /** @src 0:380:397 "i < values.length" */ lt(var_i, _3) /// @src 0:368:378 "uint i = 0" { - /// @src 0:80:429 "contract Arraysum {..." - if eq(var_i, not(0)) - { - mstore(_2, shl(224, 0x4e487b71)) - mstore(_1, 0x11) - revert(_2, 0x24) - } /// @src 0:399:402 "i++" - var_i := /** @src 0:80:429 "contract Arraysum {..." */ add(var_i, 1) + var_i := /** @src 0:80:429 "contract Arraysum {..." */ add(/** @src 0:399:402 "i++" */ var_i, /** @src 0:80:429 "contract Arraysum {..." */ 1) } /// @src 0:399:402 "i++" { diff --git a/test/libsolidity/ASTJSON/documentation_local_variable.json b/test/libsolidity/ASTJSON/documentation_local_variable.json index 24e38eb1a..0ed96e8ce 100644 --- a/test/libsolidity/ASTJSON/documentation_local_variable.json +++ b/test/libsolidity/ASTJSON/documentation_local_variable.json @@ -283,6 +283,7 @@ "nodeType": "VariableDeclarationStatement", "src": "212:10:1" }, + "isSimpleCounterLoop": true, "loopExpression": { "expression": diff --git a/test/libsolidity/ASTJSON/documentation_on_statements.json b/test/libsolidity/ASTJSON/documentation_on_statements.json index bb3ee28d1..d49ec35e7 100644 --- a/test/libsolidity/ASTJSON/documentation_on_statements.json +++ b/test/libsolidity/ASTJSON/documentation_on_statements.json @@ -244,6 +244,7 @@ "nodeType": "VariableDeclarationStatement", "src": "131:10:1" }, + "isSimpleCounterLoop": true, "loopExpression": { "expression": diff --git a/test/libsolidity/ASTJSON/documentation_triple.json b/test/libsolidity/ASTJSON/documentation_triple.json index 9124e68b1..bcb428b4c 100644 --- a/test/libsolidity/ASTJSON/documentation_triple.json +++ b/test/libsolidity/ASTJSON/documentation_triple.json @@ -253,6 +253,7 @@ "nodeType": "VariableDeclarationStatement", "src": "117:10:1" }, + "isSimpleCounterLoop": true, "loopExpression": { "expression": diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol b/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol index 67680b852..da3b037d6 100644 --- a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol +++ b/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol @@ -59,10 +59,10 @@ contract C { // EVMVersion: >homestead // ---- // test_bytes() -> -// gas irOptimized: 362400 -// gas legacy: 414569 -// gas legacyOptimized: 319271 +// gas irOptimized: 322235 +// gas legacy: 320849 +// gas legacyOptimized: 270053 // test_uint256() -> -// gas irOptimized: 511919 -// gas legacy: 581876 -// gas legacyOptimized: 442757 +// gas irOptimized: 448981 +// gas legacy: 435596 +// gas legacyOptimized: 365945 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol index 0d2e4f9c0..a78d0596a 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol @@ -60,10 +60,10 @@ contract C { // EVMVersion: >homestead // ---- // test_bytes() -> -// gas irOptimized: 362400 -// gas legacy: 414569 -// gas legacyOptimized: 319271 +// gas irOptimized: 322235 +// gas legacy: 320849 +// gas legacyOptimized: 270053 // test_uint256() -> -// gas irOptimized: 511919 -// gas legacy: 581876 -// gas legacyOptimized: 442757 +// gas irOptimized: 448981 +// gas legacy: 435596 +// gas legacyOptimized: 365945 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol b/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol index 689bb9810..e9ae1fae7 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol @@ -20,6 +20,6 @@ contract C { // f(uint256[][1]): 32, 32, 0 -> true // 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: 127347 -// gas legacy: 140553 +// gas irOptimized: 120149 +// gas legacy: 101673 // gas legacyOptimized: 119450 diff --git a/test/libsolidity/semanticTests/array/byte_array_transitional_2.sol b/test/libsolidity/semanticTests/array/byte_array_transitional_2.sol index fad9647ec..72589b812 100644 --- a/test/libsolidity/semanticTests/array/byte_array_transitional_2.sol +++ b/test/libsolidity/semanticTests/array/byte_array_transitional_2.sol @@ -17,6 +17,6 @@ contract c { } // ---- // test() -> 0 -// gas irOptimized: 157200 -// gas legacy: 188576 -// gas legacyOptimized: 183333 +// gas irOptimized: 155776 +// gas legacy: 184418 +// gas legacyOptimized: 180561 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 86da315c3..fb0d70d82 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_different_packing.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_different_packing.sol @@ -19,6 +19,6 @@ contract c { // ---- // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x05000000000000000000000000000000000000000000000000 -// gas irOptimized: 208149 -// gas legacy: 221856 -// gas legacyOptimized: 220680 +// gas irOptimized: 207960 +// gas legacy: 220776 +// gas legacyOptimized: 220158 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 c3958abac..0a378f899 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_including_array.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_including_array.sol @@ -35,12 +35,12 @@ contract c { } // ---- // test() -> 0x02000202 -// gas irOptimized: 4649835 -// gas legacy: 4578446 -// gas legacyOptimized: 4548309 +// gas irOptimized: 4649471 +// gas legacy: 4577606 +// gas legacyOptimized: 4547854 // storageEmpty -> 1 // clear() -> 0, 0 -// gas irOptimized: 4477223 -// gas legacy: 4410748 -// gas legacyOptimized: 4382489 +// gas irOptimized: 4476859 +// gas legacy: 4409908 +// gas legacyOptimized: 4382034 // storageEmpty -> 1 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 f2d02ee57..1024d6c1d 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover.sol @@ -19,6 +19,6 @@ contract c { // compileToEwasm: also // ---- // test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000 -// gas irOptimized: 124910 -// gas legacy: 187414 -// gas legacyOptimized: 165659 +// gas irOptimized: 121318 +// gas legacy: 178534 +// gas legacyOptimized: 161207 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 5c01bf219..161bdbf85 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_target_simple.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_target_simple.sol @@ -21,6 +21,6 @@ contract c { // compileToEwasm: also // ---- // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x0 -// gas irOptimized: 293621 -// gas legacy: 303626 -// gas legacyOptimized: 301945 +// gas irOptimized: 293420 +// gas legacy: 302546 +// gas legacyOptimized: 301423 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 89e30b0d4..b0c010cc7 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 @@ -21,6 +21,6 @@ contract c { // compileToEwasm: also // ---- // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x00 -// gas irOptimized: 273177 -// gas legacy: 276360 -// gas legacyOptimized: 275411 +// gas irOptimized: 273017 +// gas legacy: 275520 +// gas legacyOptimized: 275005 diff --git a/test/libsolidity/semanticTests/array/copying/array_of_structs_containing_arrays_calldata_to_storage.sol b/test/libsolidity/semanticTests/array/copying/array_of_structs_containing_arrays_calldata_to_storage.sol index 49d307fe2..391590348 100644 --- a/test/libsolidity/semanticTests/array/copying/array_of_structs_containing_arrays_calldata_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/array_of_structs_containing_arrays_calldata_to_storage.sol @@ -23,4 +23,4 @@ contract C { // compileViaYul: true // ---- // f((uint256[])[]): 0x20, 3, 0x60, 0x60, 0x60, 0x20, 3, 1, 2, 3 -> 3, 1 -// gas irOptimized: 327798 +// gas irOptimized: 327174 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 ae17b76b1..7020b20d7 100644 --- a/test/libsolidity/semanticTests/array/copying/bytes_storage_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/bytes_storage_to_storage.sol @@ -17,25 +17,25 @@ contract c { // ---- // f(uint256): 0 -> 0x20, 0x00 // f(uint256): 31 -> 0x20, 0x1f, 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e00 -// gas irOptimized: 109413 -// gas legacy: 124296 -// gas legacyOptimized: 119119 +// gas irOptimized: 104546 +// gas legacy: 113136 +// gas legacyOptimized: 112795 // f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671 -// gas irOptimized: 118565 -// gas legacy: 135251 -// gas legacyOptimized: 130091 +// gas irOptimized: 113573 +// gas legacy: 123731 +// gas legacyOptimized: 123563 // f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000 -// gas irOptimized: 125184 -// gas legacy: 142835 -// gas legacyOptimized: 137008 +// gas irOptimized: 120036 +// gas legacy: 130955 +// gas legacyOptimized: 130276 // f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992 -// gas irOptimized: 128584 -// gas legacy: 160875 -// gas legacyOptimized: 150938 +// gas irOptimized: 118756 +// gas legacy: 138195 +// gas legacyOptimized: 138086 // f(uint256): 12 -> 0x20, 0x0c, 0x0102030405060708090a0b0000000000000000000000000000000000000000 // gas legacy: 59345 // gas legacyOptimized: 57279 // f(uint256): 129 -> 0x20, 0x81, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f, 29063324697304692433803953038474361308315562010425523193971352996434451193439, 0x606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f, -57896044618658097711785492504343953926634992332820282019728792003956564819968 -// gas irOptimized: 357699 -// gas legacy: 421674 -// gas legacyOptimized: 402977 +// gas irOptimized: 337575 +// gas legacy: 375234 +// gas legacyOptimized: 376661 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 16d10a36d..d6890ebaf 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 @@ -18,6 +18,6 @@ contract C { } // ---- // f() -> 3 -// gas irOptimized: 128172 -// gas legacy: 130757 -// gas legacyOptimized: 129144 +// gas irOptimized: 127487 +// gas legacy: 129197 +// gas legacyOptimized: 128325 diff --git a/test/libsolidity/semanticTests/array/copying/storage_memory_nested.sol b/test/libsolidity/semanticTests/array/copying/storage_memory_nested.sol index ddcae981f..f37ad6e53 100644 --- a/test/libsolidity/semanticTests/array/copying/storage_memory_nested.sol +++ b/test/libsolidity/semanticTests/array/copying/storage_memory_nested.sol @@ -17,6 +17,6 @@ contract C { } // ---- // f() -> 1, 2, 3, 4, 5, 6, 7 -// gas irOptimized: 205985 -// gas legacy: 212313 -// gas legacyOptimized: 211462 +// gas irOptimized: 205885 +// gas legacy: 211833 +// gas legacyOptimized: 211214 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 eabcb1666..1eacee356 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 @@ -18,6 +18,6 @@ contract C { } // ---- // f() -> 1, 2, 3, 4, 5, 6, 7 -// gas irOptimized: 205985 -// gas legacy: 212318 -// gas legacyOptimized: 211467 +// gas irOptimized: 205885 +// gas legacy: 211838 +// gas legacyOptimized: 211219 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 7f3bf1798..1f7e205b2 100644 --- a/test/libsolidity/semanticTests/array/copying/storage_memory_packed_dyn.sol +++ b/test/libsolidity/semanticTests/array/copying/storage_memory_packed_dyn.sol @@ -13,6 +13,6 @@ contract C { } // ---- // f() -> 2, 3, 4 -// gas irOptimized: 110135 -// gas legacy: 126350 -// gas legacyOptimized: 120704 +// gas irOptimized: 109508 +// gas legacy: 122390 +// gas legacyOptimized: 118460 diff --git a/test/libsolidity/semanticTests/array/delete/bytes_delete_element.sol b/test/libsolidity/semanticTests/array/delete/bytes_delete_element.sol index 652854cb8..04c0d3d86 100644 --- a/test/libsolidity/semanticTests/array/delete/bytes_delete_element.sol +++ b/test/libsolidity/semanticTests/array/delete/bytes_delete_element.sol @@ -16,6 +16,6 @@ contract c { } // ---- // test1() -> true -// gas irOptimized: 207928 -// gas legacy: 254905 -// gas legacyOptimized: 247415 +// gas irOptimized: 206330 +// gas legacy: 242905 +// gas legacyOptimized: 241615 diff --git a/test/libsolidity/semanticTests/array/dynamic_array_cleanup.sol b/test/libsolidity/semanticTests/array/dynamic_array_cleanup.sol index 4454914a9..d15afe55c 100644 --- a/test/libsolidity/semanticTests/array/dynamic_array_cleanup.sol +++ b/test/libsolidity/semanticTests/array/dynamic_array_cleanup.sol @@ -14,9 +14,9 @@ contract c { // ---- // storageEmpty -> 1 // fill() -> -// gas irOptimized: 519487 -// gas legacy: 521584 -// gas legacyOptimized: 517027 +// gas irOptimized: 519155 +// gas legacy: 519064 +// gas legacyOptimized: 515578 // storageEmpty -> 0 // halfClear() -> // storageEmpty -> 0 diff --git a/test/libsolidity/semanticTests/array/fixed_array_cleanup.sol b/test/libsolidity/semanticTests/array/fixed_array_cleanup.sol index 310217cfd..44e9c804b 100644 --- a/test/libsolidity/semanticTests/array/fixed_array_cleanup.sol +++ b/test/libsolidity/semanticTests/array/fixed_array_cleanup.sol @@ -12,9 +12,9 @@ contract c { // ---- // storageEmpty -> 1 // fill() -> -// gas irOptimized: 465345 -// gas legacy: 471280 -// gas legacyOptimized: 467500 +// gas irOptimized: 464849 +// gas legacy: 468880 +// gas legacyOptimized: 466240 // storageEmpty -> 0 // clear() -> // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/array/function_array_cross_calls.sol b/test/libsolidity/semanticTests/array/function_array_cross_calls.sol index 71bd36b90..215af0f03 100644 --- a/test/libsolidity/semanticTests/array/function_array_cross_calls.sol +++ b/test/libsolidity/semanticTests/array/function_array_cross_calls.sol @@ -43,6 +43,6 @@ contract C { // ---- // test() -> 5, 6, 7 -// gas irOptimized: 262057 -// gas legacy: 452136 -// gas legacyOptimized: 284945 +// gas irOptimized: 261497 +// gas legacy: 450936 +// gas legacyOptimized: 284265 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 931069dee..f4c2b708d 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 @@ -10,6 +10,6 @@ contract c { // ---- // test() -> 0x20, 29, 0x0303030303030303030303030303030303030303030303030303030303000000 -// gas irOptimized: 109310 -// gas legacy: 126702 -// gas legacyOptimized: 123422 +// gas irOptimized: 107808 +// gas legacy: 122262 +// gas legacyOptimized: 121236 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 9f3884dae..7af0d7fce 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 @@ -10,6 +10,6 @@ contract c { // ---- // test() -> 0x20, 33, 0x303030303030303030303030303030303030303030303030303030303030303, 0x0300000000000000000000000000000000000000000000000000000000000000 -// gas irOptimized: 108115 -// gas legacy: 125584 -// gas legacyOptimized: 122560 +// gas irOptimized: 107487 +// gas legacy: 121504 +// gas legacyOptimized: 120588 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 896fa47d4..c12805430 100644 --- a/test/libsolidity/semanticTests/array/push/byte_array_push_transition.sol +++ b/test/libsolidity/semanticTests/array/push/byte_array_push_transition.sol @@ -15,6 +15,6 @@ contract c { } // ---- // test() -> 0 -// gas irOptimized: 174126 -// gas legacy: 216790 -// gas legacyOptimized: 204003 +// gas irOptimized: 169830 +// gas legacy: 206962 +// gas legacyOptimized: 197607 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 602755845..06263c809 100644 --- a/test/libsolidity/semanticTests/array/push/push_no_args_bytes.sol +++ b/test/libsolidity/semanticTests/array/push/push_no_args_bytes.sol @@ -21,9 +21,9 @@ contract C { // ---- // l() -> 0 // g(uint256): 70 -> -// gas irOptimized: 183584 -// gas legacy: 183811 -// gas legacyOptimized: 179218 +// gas irOptimized: 182038 +// gas legacy: 175411 +// gas legacyOptimized: 175158 // l() -> 70 // a(uint256): 69 -> left(69) // f() -> diff --git a/test/libsolidity/semanticTests/events/event_indexed_string.sol b/test/libsolidity/semanticTests/events/event_indexed_string.sol index 08dd7ce66..b50f53452 100644 --- a/test/libsolidity/semanticTests/events/event_indexed_string.sol +++ b/test/libsolidity/semanticTests/events/event_indexed_string.sol @@ -17,6 +17,6 @@ contract C { // ---- // deposit() -> // ~ emit E(string,uint256[4]): #0xa7fb06bb999a5eb9aff9e0779953f4e1e4ce58044936c2f51c7fb879b85c08bd, #0xe755d8cc1a8cde16a2a31160dcd8017ac32d7e2f13215b29a23cdae40a78aa81 -// gas irOptimized: 333476 -// gas legacy: 388679 -// gas legacyOptimized: 374441 +// gas irOptimized: 330326 +// gas legacy: 366539 +// gas legacyOptimized: 362741 diff --git a/test/libsolidity/semanticTests/externalContracts/base64.sol b/test/libsolidity/semanticTests/externalContracts/base64.sol index 5133da878..a47cbffc5 100644 --- a/test/libsolidity/semanticTests/externalContracts/base64.sol +++ b/test/libsolidity/semanticTests/externalContracts/base64.sol @@ -33,9 +33,9 @@ contract test { // EVMVersion: >=constantinople // ---- // constructor() -// gas irOptimized: 438376 -// gas legacy: 750723 -// gas legacyOptimized: 536620 +// gas irOptimized: 437524 +// gas legacy: 748112 +// gas legacyOptimized: 532324 // encode_inline_asm(bytes): 0x20, 0 -> 0x20, 0 // encode_inline_asm(bytes): 0x20, 1, "f" -> 0x20, 4, "Zg==" // encode_inline_asm(bytes): 0x20, 2, "fo" -> 0x20, 4, "Zm8=" @@ -51,10 +51,10 @@ contract test { // encode_no_asm(bytes): 0x20, 5, "fooba" -> 0x20, 8, "Zm9vYmE=" // encode_no_asm(bytes): 0x20, 6, "foobar" -> 0x20, 8, "Zm9vYmFy" // encode_inline_asm_large() -// gas irOptimized: 1387039 -// gas legacy: 1688033 -// gas legacyOptimized: 1205033 +// gas irOptimized: 1332039 +// gas legacy: 1568033 +// gas legacyOptimized: 1137033 // encode_no_asm_large() -// gas irOptimized: 3316107 -// gas legacy: 4765077 -// gas legacyOptimized: 2908077 +// gas irOptimized: 3261107 +// gas legacy: 4645077 +// gas legacyOptimized: 2840077 diff --git a/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol b/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol index 7b5418ed1..7d9724be4 100644 --- a/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol +++ b/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol @@ -176,35 +176,35 @@ contract DepositContract is IDepositContract, ERC165 { } // ---- // constructor() -// gas irOptimized: 1428137 -// gas legacy: 2425301 -// gas legacyOptimized: 1770477 +// gas irOptimized: 1413443 +// gas legacy: 2402189 +// gas legacyOptimized: 1758087 // 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: 114626 -// gas legacy: 149888 -// gas legacyOptimized: 121887 +// gas irOptimized: 112962 +// gas legacy: 146048 +// gas legacyOptimized: 119711 // 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: 114626 -// gas legacy: 149888 -// gas legacyOptimized: 121887 +// gas irOptimized: 112962 +// gas legacy: 146048 +// gas legacyOptimized: 119711 // 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 # // ~ emit DepositEvent(bytes,bytes,bytes,bytes,bytes): 0xa0, 0x0100, 0x0140, 0x0180, 0x0200, 0x30, 0x933ad9491b62059dd065b560d256d8957a8c402cc6e8d8ee7290ae11e8f73292, 0x67a8811c397529dac52ae1342ba58c9500000000000000000000000000000000, 0x20, 0xf50428677c60f997aadeab24aabf7fceaef491c96a52b463ae91f95611cf71, 0x08, 0xca9a3b00000000000000000000000000000000000000000000000000000000, 0x60, 0xa29d01cc8c6296a8150e515b5995390ef841dc18948aa3e79be6d7c1851b4cbb, 0x5d6ff49fa70b9c782399506a22a85193151b9b691245cebafd2063012443c132, 0x4b6c36debaedefb7b2d71b0503ffdc00150aaffd42e63358238ec888901738b8, 0x08, 0x00 // get_deposit_root() -> 0x2089653123d9c721215120b6db6738ba273bbc5228ac093b1f983badcdc8a438 -// gas irOptimized: 114611 -// gas legacy: 149898 -// gas legacyOptimized: 121900 +// gas irOptimized: 112947 +// gas legacy: 146058 +// gas legacyOptimized: 119724 // 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 # // ~ emit DepositEvent(bytes,bytes,bytes,bytes,bytes): 0xa0, 0x0100, 0x0140, 0x0180, 0x0200, 0x30, 0xb2ce0f79f90e7b3a113ca5783c65756f96c4b4673c2b5c1eb4efc22280259441, 0x06d601211e8866dc5b50dc48a244dd7c00000000000000000000000000000000, 0x20, 0x344b6c73f71b11c56aba0d01b7d8ad83559f209d0a4101a515f6ad54c89771, 0x08, 0x40597307000000000000000000000000000000000000000000000000000000, 0x60, 0x945caaf82d18e78c033927d51f452ebcd76524497b91d7a11219cb3db6a1d369, 0x7595fc095ce489e46b2ef129591f2f6d079be4faaf345a02c5eb133c072e7c56, 0x0c6c3617eee66b4b878165c502357d49485326bc6b31bc96873f308c8f19c09d, 0x08, 0x0100000000000000000000000000000000000000000000000000000000000000 // get_deposit_root() -> 0x40255975859377d912c53aa853245ebd939bdd2b33a28e084babdcc1ed8238ee -// gas irOptimized: 114611 -// gas legacy: 149898 -// gas legacyOptimized: 121900 +// gas irOptimized: 112947 +// gas legacy: 146058 +// gas legacyOptimized: 119724 // 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 bf257815a..3f6123d24 100644 --- a/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol +++ b/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol @@ -48,9 +48,9 @@ contract test { } // ---- // constructor() -// gas irOptimized: 1876171 -// gas legacy: 2471603 -// gas legacyOptimized: 1876669 +// gas irOptimized: 1869876 +// gas legacy: 2454721 +// gas legacyOptimized: 1869102 // div(int256,int256): 3141592653589793238, 88714123 -> 35412542528203691288251815328 // gas irOptimized: 22137 // gas legacy: 22767 diff --git a/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol b/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol index 5cea75abe..ac9118787 100644 --- a/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol +++ b/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol @@ -48,9 +48,9 @@ contract test { } // ---- // constructor() -// gas irOptimized: 1735588 -// gas legacy: 2241243 -// gas legacyOptimized: 1748028 +// gas irOptimized: 1729533 +// gas legacy: 2224385 +// gas legacyOptimized: 1738757 // div(uint256,uint256): 3141592653589793238, 88714123 -> 35412542528203691288251815328 // gas irOptimized: 22004 // gas legacy: 22497 diff --git a/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol b/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol index b4b7054a4..e62ad908b 100644 --- a/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol +++ b/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol @@ -33,10 +33,10 @@ contract test { } // ---- // constructor() -// gas irOptimized: 430305 -// gas legacy: 649335 -// gas legacyOptimized: 473132 +// gas irOptimized: 429237 +// gas legacy: 632463 +// gas legacyOptimized: 465326 // prb_pi() -> 3141592656369545286 // gas irOptimized: 57478 -// gas legacy: 103112 +// gas legacy: 102392 // gas legacyOptimized: 75735 diff --git a/test/libsolidity/semanticTests/externalContracts/snark.sol b/test/libsolidity/semanticTests/externalContracts/snark.sol index 7d04b5af6..d911497ee 100644 --- a/test/libsolidity/semanticTests/externalContracts/snark.sol +++ b/test/libsolidity/semanticTests/externalContracts/snark.sol @@ -297,5 +297,5 @@ contract Test { // verifyTx() -> true // ~ emit Verified(string): 0x20, 0x16, "Successfully verified." // gas irOptimized: 95261 -// gas legacy: 116473 +// gas legacy: 113953 // gas legacyOptimized: 83670 diff --git a/test/libsolidity/semanticTests/externalContracts/strings.sol b/test/libsolidity/semanticTests/externalContracts/strings.sol index 654562ef0..de2ec9e11 100644 --- a/test/libsolidity/semanticTests/externalContracts/strings.sol +++ b/test/libsolidity/semanticTests/externalContracts/strings.sol @@ -49,9 +49,9 @@ contract test { } // ---- // constructor() -// gas irOptimized: 670586 -// gas legacy: 1096108 -// gas legacyOptimized: 741962 +// gas irOptimized: 667123 +// gas legacy: 1092225 +// gas legacyOptimized: 735488 // toSlice(string): 0x20, 11, "hello world" -> 11, 0xa0 // gas irOptimized: 22660 // gas legacy: 23190 @@ -69,6 +69,6 @@ contract test { // gas legacy: 31621 // gas legacyOptimized: 27914 // benchmark(string,bytes32): 0x40, 0x0842021, 8, "solidity" -> 0x2020 -// gas irOptimized: 2017770 -// gas legacy: 4294552 -// gas legacyOptimized: 2327981 +// gas irOptimized: 2016994 +// gas legacy: 4292872 +// gas legacyOptimized: 2327029 diff --git a/test/libsolidity/semanticTests/libraries/internal_types_in_library.sol b/test/libsolidity/semanticTests/libraries/internal_types_in_library.sol index 9caaa89b9..63c17016b 100644 --- a/test/libsolidity/semanticTests/libraries/internal_types_in_library.sol +++ b/test/libsolidity/semanticTests/libraries/internal_types_in_library.sol @@ -24,6 +24,6 @@ contract Test { // ---- // library: Lib // f() -> 4, 0x11 -// gas irOptimized: 112281 -// gas legacy: 135820 -// gas legacyOptimized: 119448 +// gas irOptimized: 111772 +// gas legacy: 133300 +// gas legacyOptimized: 118125 diff --git a/test/libsolidity/semanticTests/userDefinedValueType/calldata.sol b/test/libsolidity/semanticTests/userDefinedValueType/calldata.sol index fe7ea4596..9aad30e1d 100644 --- a/test/libsolidity/semanticTests/userDefinedValueType/calldata.sol +++ b/test/libsolidity/semanticTests/userDefinedValueType/calldata.sol @@ -49,12 +49,12 @@ contract C { } // ---- // test_f() -> true -// gas irOptimized: 122053 -// gas legacy: 126150 -// gas legacyOptimized: 123163 +// gas irOptimized: 121732 +// gas legacy: 125430 +// gas legacyOptimized: 122746 // test_g() -> true // gas irOptimized: 95980 -// gas legacy: 101281 +// gas legacy: 100081 // gas legacyOptimized: 96566 // addresses(uint256): 0 -> 0x18 // addresses(uint256): 1 -> 0x19 diff --git a/test/libsolidity/semanticTests/viaYul/array_memory_index_access.sol b/test/libsolidity/semanticTests/viaYul/array_memory_index_access.sol index d8cad3e8d..0cf3b56c2 100644 --- a/test/libsolidity/semanticTests/viaYul/array_memory_index_access.sol +++ b/test/libsolidity/semanticTests/viaYul/array_memory_index_access.sol @@ -26,9 +26,9 @@ contract C { // index(uint256): 10 -> true // index(uint256): 20 -> true // index(uint256): 0xFF -> true -// gas irOptimized: 135584 -// gas legacy: 244264 -// gas legacyOptimized: 152128 +// gas irOptimized: 108299 +// gas legacy: 183064 +// gas legacyOptimized: 117448 // 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 8ef60a53b..5a5e9b369 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_index_access.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_index_access.sol @@ -16,33 +16,33 @@ contract C { // ---- // test_indices(uint256): 1 -> // test_indices(uint256): 129 -> -// gas irOptimized: 3018684 -// gas legacy: 3068883 -// gas legacyOptimized: 3011615 +// gas irOptimized: 3004881 +// gas legacy: 3037923 +// gas legacyOptimized: 2994071 // test_indices(uint256): 5 -> -// gas irOptimized: 372540 -// gas legacy: 369151 -// gas legacyOptimized: 366139 +// gas irOptimized: 372005 +// gas legacy: 367951 +// gas legacyOptimized: 365459 // test_indices(uint256): 10 -> // test_indices(uint256): 15 -> // gas irOptimized: 72860 // test_indices(uint256): 0xFF -> -// gas irOptimized: 3410252 -// gas legacy: 3509577 -// gas legacyOptimized: 3397597 +// gas irOptimized: 3382967 +// gas legacy: 3448377 +// gas legacyOptimized: 3362917 // test_indices(uint256): 1000 -> -// gas irOptimized: 18206119 -// gas legacy: 18599999 -// gas legacyOptimized: 18176944 +// gas irOptimized: 18099119 +// gas legacy: 18359999 +// gas legacyOptimized: 18040944 // test_indices(uint256): 129 -> -// gas irOptimized: 2756952 -// gas legacy: 2770413 -// gas legacyOptimized: 2716289 +// gas irOptimized: 2743149 +// gas legacy: 2739453 +// gas legacyOptimized: 2698745 // test_indices(uint256): 128 -> -// gas irOptimized: 411900 -// gas legacy: 464968 -// gas legacyOptimized: 418168 +// gas irOptimized: 398204 +// gas legacy: 434248 +// gas legacyOptimized: 400760 // test_indices(uint256): 1 -> -// gas irOptimized: 368568 -// gas legacy: 363389 -// gas legacyOptimized: 361809 +// gas irOptimized: 368461 +// gas legacy: 363149 +// gas legacyOptimized: 361673 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 b1bcd8273..933058e7c 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_index_zeroed_test.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_index_zeroed_test.sol @@ -52,18 +52,18 @@ contract C { // ---- // test_zeroed_indicies(uint256): 1 -> // test_zeroed_indicies(uint256): 5 -> -// gas irOptimized: 131174 -// gas legacy: 132301 -// gas legacyOptimized: 129539 +// gas irOptimized: 130509 +// gas legacy: 130861 +// gas legacyOptimized: 128708 // test_zeroed_indicies(uint256): 10 -> -// gas irOptimized: 174777 -// gas legacy: 177188 -// gas legacyOptimized: 172112 +// gas irOptimized: 173272 +// gas legacy: 173948 +// gas legacyOptimized: 170246 // test_zeroed_indicies(uint256): 15 -> -// gas irOptimized: 198022 -// gas legacy: 201738 -// gas legacyOptimized: 194427 +// gas irOptimized: 195677 +// gas legacy: 196698 +// gas legacyOptimized: 191526 // test_zeroed_indicies(uint256): 0xFF -> -// gas irOptimized: 6097912 -// gas legacy: 6159333 -// gas legacyOptimized: 6026177 +// gas irOptimized: 6055247 +// gas legacy: 6067893 +// gas legacyOptimized: 5973596 diff --git a/test/libsolidity/semanticTests/viaYul/array_storage_push_empty.sol b/test/libsolidity/semanticTests/viaYul/array_storage_push_empty.sol index 270b92ffa..ff33d468e 100644 --- a/test/libsolidity/semanticTests/viaYul/array_storage_push_empty.sol +++ b/test/libsolidity/semanticTests/viaYul/array_storage_push_empty.sol @@ -12,13 +12,13 @@ contract C { // EVMVersion: >=petersburg // ---- // pushEmpty(uint256): 128 -// gas irOptimized: 406798 -// gas legacy: 416903 -// gas legacyOptimized: 398280 +// gas irOptimized: 403598 +// gas legacy: 401543 +// gas legacyOptimized: 389576 // pushEmpty(uint256): 256 -// gas irOptimized: 691026 -// gas legacy: 714315 -// gas legacyOptimized: 687372 +// gas irOptimized: 684626 +// gas legacy: 683595 +// gas legacyOptimized: 669964 // pushEmpty(uint256): 38869 -> FAILURE # out-of-gas # // gas irOptimized: 100000000 // gas legacy: 100000000