From 2270feceed730a1e4f8ea1160a84d39ae932400a Mon Sep 17 00:00:00 2001 From: blishko Date: Mon, 6 Apr 2026 12:42:02 +0200 Subject: [PATCH] Remove trivial blocks --- libevmasm/Assembly.cpp | 11 ++++ libevmasm/CMakeLists.txt | 2 + libevmasm/TrivialBlockRemover.cpp | 63 +++++++++++++++++++ libevmasm/TrivialBlockRemover.h | 44 +++++++++++++ test/cmdlineTests/function_debug_info/output | 8 +-- test/libsolidity/gasTests/abiv2_optimised.sol | 6 +- .../gasTests/dispatch_large_optimised.sol | 48 +++++++------- .../gasTests/dispatch_medium_optimised.sol | 23 ++++--- .../gasTests/dispatch_small_optimised.sol | 12 ++-- .../abi_decode_simple_storage.sol | 2 +- .../abi_encode_calldata_slice.sol | 8 +-- .../struct/struct_storage_ptr.sol | 2 +- .../abi_encode_calldata_slice.sol | 8 +-- .../abiEncoderV2/calldata_array.sol | 2 +- .../calldata_overlapped_dynamic_arrays.sol | 2 +- .../abiEncoderV2/storage_array_encoding.sol | 4 +- .../array/array_memory_index_access.sol | 2 +- .../array/array_storage_index_access.sol | 18 +++--- .../array_storage_index_boundary_test.sol | 4 +- .../array/array_storage_index_zeroed_test.sol | 16 ++--- .../array/array_storage_length_access.sol | 4 +- .../array/array_storage_push_empty.sol | 4 +- ...rray_storage_push_empty_length_address.sol | 6 +- .../array/array_storage_push_pop.sol | 6 +- .../arrays_complex_from_and_to_storage.sol | 2 +- .../array/constant_var_as_array_length.sol | 4 +- .../copying/array_copy_calldata_storage.sol | 2 +- .../array/copying/array_copy_nested_array.sol | 2 +- .../copying/array_copy_target_leftover.sol | 2 +- .../copying/arrays_from_and_to_storage.sol | 2 +- .../array/copying/bytes_inside_mappings.sol | 4 +- .../copying/bytes_storage_to_storage.sol | 12 ++-- .../calldata_array_dynamic_to_storage.sol | 2 +- .../copying/copy_byte_array_to_storage.sol | 2 +- .../function_type_array_to_storage.sol | 6 +- ...sted_array_element_calldata_to_storage.sol | 2 +- ...nested_array_element_memory_to_storage.sol | 2 +- .../array/dynamic_arrays_in_storage.sol | 2 +- .../array/fixed_arrays_as_return_type.sol | 4 +- .../array/function_array_cross_calls.sol | 4 +- .../long_byte_array_cleanup_after_delete.sol | 2 +- ...rray_cleanup_after_overwrite_with_long.sol | 8 +-- .../array/pop/array_pop_array_transition.sol | 2 +- .../array/pop/array_pop_uint16_transition.sol | 2 +- .../array/pop/array_pop_uint24_transition.sol | 2 +- ...ray_pop_long_storage_empty_garbage_ref.sol | 2 +- .../push/array_push_nested_from_calldata.sol | 2 +- .../push/array_push_struct_from_calldata.sol | 2 +- .../array/push/push_no_args_2d.sol | 4 +- .../array/push/push_no_args_bytes.sol | 2 +- .../semanticTests/array/reusing_memory.sol | 2 +- .../cleanup/byte_array_to_storage_cleanup.sol | 10 +-- .../constructor/arrays_in_constructors.sol | 4 +- .../bytes_in_constructors_packer.sol | 4 +- .../events/event_dynamic_array_storage.sol | 2 +- .../events/event_dynamic_array_storage_v2.sol | 2 +- .../event_dynamic_nested_array_storage_v2.sol | 4 +- .../events/event_emit_from_other_contract.sol | 4 +- .../externalContracts/FixedFeeRegistrar.sol | 10 +-- .../externalContracts/base64.sol | 18 +++--- .../externalContracts/deposit_contract.sol | 4 +- .../externalContracts/prbmath_signed.sol | 38 +++++------ .../externalContracts/prbmath_unsigned.sol | 30 ++++----- .../externalContracts/ramanujan_pi.sol | 16 ++--- .../semanticTests/externalContracts/snark.sol | 8 +-- .../externalContracts/strings.sol | 34 +++++----- .../external_call_to_nonexisting.sol | 4 +- ...ernal_call_to_nonexisting_debugstrings.sol | 10 +-- .../functionCall/failed_create.sol | 6 +- .../functionCall/gas_and_value_basic.sol | 4 +- .../mapping_array_internal_argument.sol | 2 +- .../functionTypes/store_function.sol | 4 +- .../immutable/immutable_tag_too_large_bug.sol | 4 +- .../keccak_yul_optimization.sol | 2 +- .../transient_storage_selfdestruct.sol | 8 +-- .../libraries/internal_types_in_library.sol | 2 +- .../operator_making_pure_external_call.sol | 10 +-- .../operator_making_view_external_call.sol | 10 +-- .../storage/empty_nonempty_empty.sol | 2 +- .../storage_boundary_array_assignment.sol | 2 +- ...rage_boundary_struct_array_mixed_types.sol | 4 +- .../storage_reference_array.sol | 2 +- ...ta_struct_with_nested_array_to_storage.sol | 2 +- .../structs/copy_substructures_to_mapping.sol | 2 +- .../semanticTests/structs/copy_to_mapping.sol | 2 +- ...truct_containing_bytes_copy_and_delete.sol | 4 +- .../userDefinedValueType/calldata.sol | 4 +- .../calldata_to_storage.sol | 6 +- .../userDefinedValueType/erc20.sol | 14 ++--- .../memory_to_storage.sol | 4 +- .../various/destructuring_assignment.sol | 2 +- .../semanticTests/various/erc20.sol | 14 ++--- .../various/negative_stack_height.sol | 4 +- ...uct_post_cancun_multiple_beneficiaries.sol | 8 +-- .../selfdestruct_post_cancun_redeploy.sol | 10 +-- 95 files changed, 424 insertions(+), 305 deletions(-) create mode 100644 libevmasm/TrivialBlockRemover.cpp create mode 100644 libevmasm/TrivialBlockRemover.h diff --git a/libevmasm/Assembly.cpp b/libevmasm/Assembly.cpp index ef6c0bec9cce..64db8fb896dd 100644 --- a/libevmasm/Assembly.cpp +++ b/libevmasm/Assembly.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -933,6 +934,16 @@ std::map const& Assembly::optimiseInternal( } } + if (_settings.runInliner && !m_eofVersion.has_value()) + { + for (auto& codeSection: m_codeSections) + { + TrivialBlockRemover trivialBlockRemover{codeSection.items}; + if (trivialBlockRemover.optimise(_tagsReferencedFromOutside)) + count++; + } + } + // TODO: investigate for EOF if (_settings.runCSE && !m_eofVersion.has_value()) { diff --git a/libevmasm/CMakeLists.txt b/libevmasm/CMakeLists.txt index 55ae30e7c182..82c7fdb41a4e 100644 --- a/libevmasm/CMakeLists.txt +++ b/libevmasm/CMakeLists.txt @@ -45,6 +45,8 @@ set(sources SimplificationRules.cpp SimplificationRules.h SubAssemblyID.h + TrivialBlockRemover.cpp + TrivialBlockRemover.h ) add_library(evmasm ${sources}) diff --git a/libevmasm/TrivialBlockRemover.cpp b/libevmasm/TrivialBlockRemover.cpp new file mode 100644 index 000000000000..4906f6220f24 --- /dev/null +++ b/libevmasm/TrivialBlockRemover.cpp @@ -0,0 +1,63 @@ +/* + This file is part of solidity. + + solidity is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + solidity is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with solidity. If not, see . +*/ +// SPDX-License-Identifier: GPL-3.0 + +#include + +#include +#include +#include + +#include +#include + +bool solidity::evmasm::TrivialBlockRemover::optimise(std::set const& _tagsReferencedFromOutside) +{ + std::map replacedTags; + for (auto&& [index, item]: m_items | ranges::views::enumerate | ranges::views::drop(1)) + { + if (item.type() != Tag) + continue; + if (index >= m_items.size() - 2) + continue; + auto const & next = m_items[index + 1]; + if (next.type() != PushTag) + continue; + if (next.data() == item.data()) + continue; + auto const & nextNext = m_items[index + 2]; + if (nextNext.type() != Operation) + continue; + if (nextNext.instruction() != Instruction::JUMP) + continue; + auto const & previous = m_items[index - 1]; + if (previous.type() != Operation) + continue; + if (previous.instruction() != Instruction::JUMP && !SemanticInformation::terminatesControlFlow(previous)) + continue; + auto const [subId, tag] = item.splitForeignPushTag(); + solAssert(subId.empty(), "Sub-assembly tag used as label."); + if (_tagsReferencedFromOutside.contains(tag)) + continue; + replacedTags.insert({item.data(), next.data()}); + } + if (!replacedTags.empty()) + { + return BlockDeduplicator::applyTagReplacement(m_items, replacedTags); + } + return false; +} diff --git a/libevmasm/TrivialBlockRemover.h b/libevmasm/TrivialBlockRemover.h new file mode 100644 index 000000000000..aab78cca91ed --- /dev/null +++ b/libevmasm/TrivialBlockRemover.h @@ -0,0 +1,44 @@ +/* + This file is part of solidity. + + solidity is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + solidity is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with solidity. If not, see . +*/ +// SPDX-License-Identifier: GPL-3.0 + +#pragma once + +#include + +#include + +namespace solidity::evmasm +{ + +class AssemblyItem; +using AssemblyItems = std::vector; + +class TrivialBlockRemover { +public: + explicit TrivialBlockRemover(AssemblyItems& _items): m_items(_items) {} + + bool optimise(std::set const& _tagsReferencedFromOutside); + +private: + AssemblyItems& m_items; +}; + +} + + + diff --git a/test/cmdlineTests/function_debug_info/output b/test/cmdlineTests/function_debug_info/output index aa4512352623..82babbe42e75 100644 --- a/test/cmdlineTests/function_debug_info/output +++ b/test/cmdlineTests/function_debug_info/output @@ -15,7 +15,7 @@ }, "function-debug-runtime": { "@f_14": { - "entryPoint": 124, + "entryPoint": 119, "id": 14, "parameterSlots": 2, "returnSlots": 1 @@ -26,12 +26,12 @@ "returnSlots": 0 }, "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr": { - "entryPoint": 158, + "entryPoint": 153, "parameterSlots": 2, "returnSlots": 2 }, "abi_decode_tuple_t_uint256": { - "entryPoint": 271, + "entryPoint": 266, "parameterSlots": 2, "returnSlots": 1 }, @@ -40,7 +40,7 @@ "returnSlots": 1 }, "panic_error_0x32": { - "entryPoint": 294, + "entryPoint": 289, "parameterSlots": 0, "returnSlots": 0 } diff --git a/test/libsolidity/gasTests/abiv2_optimised.sol b/test/libsolidity/gasTests/abiv2_optimised.sol index e23a7bff2562..601a85e70914 100644 --- a/test/libsolidity/gasTests/abiv2_optimised.sol +++ b/test/libsolidity/gasTests/abiv2_optimised.sol @@ -19,12 +19,12 @@ contract C { // optimize-yul: true // ---- // creation: -// codeDepositCost: 618200 +// codeDepositCost: 615200 // executionCost: 649 -// totalCost: 618849 +// totalCost: 615849 // external: // a(): 2283 -// b(uint256): 4649 +// b(uint256): 4637 // f1(uint256): 304 // f2(uint256[],string[],uint16,address): infinite // f3(uint16[],string[],uint16,address): infinite diff --git a/test/libsolidity/gasTests/dispatch_large_optimised.sol b/test/libsolidity/gasTests/dispatch_large_optimised.sol index 5ab62e892285..5e5f469934fe 100644 --- a/test/libsolidity/gasTests/dispatch_large_optimised.sol +++ b/test/libsolidity/gasTests/dispatch_large_optimised.sol @@ -29,29 +29,29 @@ contract Large { // optimize-runs: 2 // ---- // creation: -// codeDepositCost: 224600 -// executionCost: 267 -// totalCost: 224867 +// codeDepositCost: 213600 +// executionCost: 255 +// totalCost: 213855 // external: // a(): 2281 -// b(uint256): 4934 -// f0(uint256): 363 -// f1(uint256): 47002 -// 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): 603 -// g1(uint256): 46714 -// g2(uint256): 24701 -// g3(uint256): 24789 -// g4(uint256): 24767 -// g5(uint256): 24855 -// g6(uint256): 24635 -// g7(uint256): 24745 -// g8(uint256): 24723 -// g9(uint256): 24569 +// b(uint256): 4922 +// f0(uint256): 351 +// f1(uint256): 46990 +// f2(uint256): 24955 +// f3(uint256): 25043 +// f4(uint256): 25021 +// f5(uint256): 24999 +// f6(uint256): 24911 +// f7(uint256): 24691 +// f8(uint256): 24823 +// f9(uint256): 24845 +// g0(uint256): 591 +// g1(uint256): 46702 +// g2(uint256): 24689 +// g3(uint256): 24777 +// g4(uint256): 24755 +// g5(uint256): 24843 +// g6(uint256): 24623 +// g7(uint256): 24733 +// g8(uint256): 24711 +// g9(uint256): 24557 diff --git a/test/libsolidity/gasTests/dispatch_medium_optimised.sol b/test/libsolidity/gasTests/dispatch_medium_optimised.sol index 2ea33955e9c8..7c32b1c8a06a 100644 --- a/test/libsolidity/gasTests/dispatch_medium_optimised.sol +++ b/test/libsolidity/gasTests/dispatch_medium_optimised.sol @@ -12,21 +12,20 @@ contract Medium { // ==== // EVMVersion: =current // bytecodeFormat: legacy -// ==== // optimize: true // optimize-runs: 2 // ---- // creation: -// codeDepositCost: 126000 -// executionCost: 169 -// totalCost: 126169 +// codeDepositCost: 118000 +// executionCost: 163 +// totalCost: 118163 // external: // a(): 2281 -// b(uint256): 4692 -// f1(uint256): 46782 -// f2(uint256): 24725 -// f3(uint256): 24769 -// g0(uint256): 361 -// g7(uint256): 24635 -// g8(uint256): 24613 -// g9(uint256): 24569 +// b(uint256): 4680 +// f1(uint256): 46770 +// f2(uint256): 24713 +// f3(uint256): 24757 +// g0(uint256): 349 +// g7(uint256): 24623 +// g8(uint256): 24601 +// g9(uint256): 24557 diff --git a/test/libsolidity/gasTests/dispatch_small_optimised.sol b/test/libsolidity/gasTests/dispatch_small_optimised.sol index b59bdafc2780..d4d8d0832ba7 100644 --- a/test/libsolidity/gasTests/dispatch_small_optimised.sol +++ b/test/libsolidity/gasTests/dispatch_small_optimised.sol @@ -6,16 +6,16 @@ contract Small { } // ==== // EVMVersion: =current +// bytecodeFormat: legacy // optimize: true // optimize-runs: 2 -// bytecodeFormat: legacy // ---- // creation: -// codeDepositCost: 58200 -// executionCost: 109 -// totalCost: 58309 +// codeDepositCost: 56200 +// executionCost: 103 +// totalCost: 56303 // external: // fallback: 117 // a(): 2259 -// b(uint256): 4582 -// f1(uint256): 46716 +// b(uint256): 4570 +// f1(uint256): 46704 diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_simple_storage.sol b/test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_simple_storage.sol index 6c4fd52b36ed..c429da1f4557 100644 --- a/test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_simple_storage.sol +++ b/test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_simple_storage.sol @@ -10,4 +10,4 @@ contract C { // f(bytes): 0x20, 0x80, 0x21, 0x40, 0x7, "abcdefg" -> 0x21, 0x40, 0x7, "abcdefg" // gas irOptimized: 135441 // gas legacy: 137095 -// gas legacyOptimized: 135828 +// gas legacyOptimized: 135792 diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol b/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol index a6a4f8fd870d..ff21607c6924 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: 314884 +// gas irOptimized: 314668 // gas legacy: 305816 -// gas legacyOptimized: 253573 +// gas legacyOptimized: 252925 // test_uint256() -> -// gas irOptimized: 448346 +// gas irOptimized: 447698 // gas legacy: 421304 -// gas legacyOptimized: 351544 +// gas legacyOptimized: 350896 diff --git a/test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol b/test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol index ff98c66ca9c6..e31c14c0b2e1 100644 --- a/test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol +++ b/test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol @@ -26,4 +26,4 @@ contract C { // f() -> 8, 7, 1, 2, 7, 12 // gas irOptimized: 166766 // gas legacy: 170486 -// gas legacyOptimized: 167252 +// gas legacyOptimized: 167240 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol b/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol index 0c59c33c4b32..7b6b1ca504a2 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: 314884 +// gas irOptimized: 314668 // gas legacy: 305816 -// gas legacyOptimized: 253573 +// gas legacyOptimized: 252925 // test_uint256() -> -// gas irOptimized: 448346 +// gas irOptimized: 447698 // gas legacy: 421304 -// gas legacyOptimized: 351544 +// gas legacyOptimized: 350896 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol b/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol index 739c4c84076b..29fcfd3d57df 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol @@ -22,4 +22,4 @@ contract C { // f(uint256[][1]): 32, 32, 8, 421, 422, 423, 424, 425, 426, 427, 428 -> true // gas irOptimized: 120978 // gas legacy: 98324 -// gas legacyOptimized: 94348 +// gas legacyOptimized: 94312 diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_overlapped_dynamic_arrays.sol b/test/libsolidity/semanticTests/abiEncoderV2/calldata_overlapped_dynamic_arrays.sol index 302aeb5de4d5..937a59253b86 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/calldata_overlapped_dynamic_arrays.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/calldata_overlapped_dynamic_arrays.sol @@ -35,6 +35,6 @@ contract C { // f_storage(uint256[],uint256[2]): 0x20, 1, 2 -> 0x20, 0x60, 0x20, 1, 2 // gas irOptimized: 111356 // gas legacy: 113826 -// gas legacyOptimized: 111724 +// gas legacyOptimized: 111712 // f_storage(uint256[],uint256[2]): 0x40, 1, 2, 5, 6 -> 0x20, 0x80, 0x20, 2, 5, 6 // f_storage(uint256[],uint256[2]): 0x40, 1, 2, 5 -> FAILURE diff --git a/test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol b/test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol index 31f759d3bfd4..f1c109ad9c84 100644 --- a/test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol +++ b/test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol @@ -20,8 +20,8 @@ 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: 180022 // gas legacy: 186541 -// gas legacyOptimized: 180429 +// gas legacyOptimized: 180417 // i(uint256[2][2]): 123, 124, 223, 224 -> 32, 128, 123, 124, 223, 224 // gas irOptimized: 112031 // gas legacy: 116683 -// gas legacyOptimized: 112303 +// gas legacyOptimized: 112291 diff --git a/test/libsolidity/semanticTests/array/array_memory_index_access.sol b/test/libsolidity/semanticTests/array/array_memory_index_access.sol index d992014c4a50..f3de41c3c477 100644 --- a/test/libsolidity/semanticTests/array/array_memory_index_access.sol +++ b/test/libsolidity/semanticTests/array/array_memory_index_access.sol @@ -28,7 +28,7 @@ contract C { // index(uint256): 0xFF -> true // gas irOptimized: 108272 // gas legacy: 181536 -// gas legacyOptimized: 117442 +// gas legacyOptimized: 117430 // 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/array/array_storage_index_access.sol b/test/libsolidity/semanticTests/array/array_storage_index_access.sol index 325323c5cb84..a9a4f3bfd21c 100644 --- a/test/libsolidity/semanticTests/array/array_storage_index_access.sol +++ b/test/libsolidity/semanticTests/array/array_storage_index_access.sol @@ -18,36 +18,36 @@ contract C { // test_indices(uint256): 129 -> // gas irOptimized: 3017687 // gas legacy: 3038668 -// gas legacyOptimized: 2995964 +// gas legacyOptimized: 2995952 // test_indices(uint256): 5 -> // gas irOptimized: 579670 // gas legacy: 573821 -// gas legacyOptimized: 571847 +// gas legacyOptimized: 571837 // test_indices(uint256): 10 -> // gas irOptimized: 157953 // gas legacy: 160122 -// gas legacyOptimized: 156996 +// gas legacyOptimized: 156984 // test_indices(uint256): 15 -> // gas irOptimized: 172733 // gas legacy: 175987 -// gas legacyOptimized: 171596 +// gas legacyOptimized: 171584 // test_indices(uint256): 0xFF -> // gas irOptimized: 5673823 // gas legacy: 5715762 -// gas legacyOptimized: 5632556 +// gas legacyOptimized: 5632544 // test_indices(uint256): 1000 -> // gas irOptimized: 18173005 // gas legacy: 18347824 -// gas legacyOptimized: 18037248 +// gas legacyOptimized: 18037236 // test_indices(uint256): 129 -> // gas irOptimized: 4166279 // gas legacy: 4140124 -// gas legacyOptimized: 4108272 +// gas legacyOptimized: 4108262 // test_indices(uint256): 128 -> // gas irOptimized: 405522 // gas legacy: 433512 -// gas legacyOptimized: 400909 +// gas legacyOptimized: 400897 // test_indices(uint256): 1 -> // gas irOptimized: 583437 // gas legacy: 576726 -// gas legacyOptimized: 575542 +// gas legacyOptimized: 575532 diff --git a/test/libsolidity/semanticTests/array/array_storage_index_boundary_test.sol b/test/libsolidity/semanticTests/array/array_storage_index_boundary_test.sol index 712a7cdebebb..d528ebc6a018 100644 --- a/test/libsolidity/semanticTests/array/array_storage_index_boundary_test.sol +++ b/test/libsolidity/semanticTests/array/array_storage_index_boundary_test.sol @@ -18,10 +18,10 @@ contract C { // test_boundary_check(uint256,uint256): 256, 256 -> FAILURE, hex"4e487b71", 0x32 // gas irOptimized: 147246 // gas legacy: 133632 -// gas legacyOptimized: 114353 +// gas legacyOptimized: 114341 // test_boundary_check(uint256,uint256): 256, 255 -> 0 // gas irOptimized: 149422 // gas legacy: 135948 -// gas legacyOptimized: 116532 +// gas legacyOptimized: 116520 // 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/array/array_storage_index_zeroed_test.sol b/test/libsolidity/semanticTests/array/array_storage_index_zeroed_test.sol index cdd6b70f559d..7ca7a74b4d55 100644 --- a/test/libsolidity/semanticTests/array/array_storage_index_zeroed_test.sol +++ b/test/libsolidity/semanticTests/array/array_storage_index_zeroed_test.sol @@ -52,18 +52,18 @@ contract C { // ---- // test_zeroed_indices(uint256): 1 -> // test_zeroed_indices(uint256): 5 -> -// gas irOptimized: 133763 +// gas irOptimized: 133686 // gas legacy: 131664 -// gas legacyOptimized: 129990 +// gas legacyOptimized: 129980 // test_zeroed_indices(uint256): 10 -> -// gas irOptimized: 228556 +// gas irOptimized: 228431 // gas legacy: 225215 -// gas legacyOptimized: 222351 +// gas legacyOptimized: 222341 // test_zeroed_indices(uint256): 15 -> -// gas irOptimized: 327360 +// gas irOptimized: 327187 // gas legacy: 322899 -// gas legacyOptimized: 318907 +// gas legacyOptimized: 318897 // test_zeroed_indices(uint256): 0xFF -> -// gas irOptimized: 5180120 +// gas irOptimized: 5177643 // gas legacy: 5093135 -// gas legacyOptimized: 5020523 +// gas legacyOptimized: 5020513 diff --git a/test/libsolidity/semanticTests/array/array_storage_length_access.sol b/test/libsolidity/semanticTests/array/array_storage_length_access.sol index 4f7308c24483..3533fa37f72e 100644 --- a/test/libsolidity/semanticTests/array/array_storage_length_access.sol +++ b/test/libsolidity/semanticTests/array/array_storage_length_access.sol @@ -14,9 +14,9 @@ contract C { // set_get_length(uint256): 0xFF -> 0xFF // gas irOptimized: 98764 // gas legacy: 128571 -// gas legacyOptimized: 110143 +// gas legacyOptimized: 110131 // set_get_length(uint256): 0xFFF -> 0xFFF // gas irOptimized: 1209116 // gas legacy: 1689548 -// gas legacyOptimized: 1393535 +// gas legacyOptimized: 1393523 // set_get_length(uint256): 0xFFFFF -> FAILURE # Out-of-gas # diff --git a/test/libsolidity/semanticTests/array/array_storage_push_empty.sol b/test/libsolidity/semanticTests/array/array_storage_push_empty.sol index b6965f62b2d7..9aa742e1c158 100644 --- a/test/libsolidity/semanticTests/array/array_storage_push_empty.sol +++ b/test/libsolidity/semanticTests/array/array_storage_push_empty.sol @@ -14,11 +14,11 @@ contract C { // pushEmpty(uint256): 128 // gas irOptimized: 410745 // gas legacy: 400519 -// gas legacyOptimized: 388804 +// gas legacyOptimized: 388792 // pushEmpty(uint256): 256 // gas irOptimized: 698285 // gas legacy: 684859 -// gas legacyOptimized: 671480 +// gas legacyOptimized: 671468 // pushEmpty(uint256): 38869 -> FAILURE # out-of-gas # // gas irOptimized: 100000000 // gas legacy: 100000000 diff --git a/test/libsolidity/semanticTests/array/array_storage_push_empty_length_address.sol b/test/libsolidity/semanticTests/array/array_storage_push_empty_length_address.sol index bf06393a63ff..a1185c7362be 100644 --- a/test/libsolidity/semanticTests/array/array_storage_push_empty_length_address.sol +++ b/test/libsolidity/semanticTests/array/array_storage_push_empty_length_address.sol @@ -19,15 +19,15 @@ contract C { // set_get_length(uint256): 0 -> 0 // gas irOptimized: 76123 // gas legacy: 75618 -// gas legacyOptimized: 75076 +// gas legacyOptimized: 75064 // set_get_length(uint256): 0xFF -> 0xFF // gas irOptimized: 168565 // gas legacy: 696850 -// gas legacyOptimized: 134488 +// gas legacyOptimized: 134476 // set_get_length(uint256): 0xFFF -> 0xFFF // gas irOptimized: 1908127 // gas legacy: 9857362 -// gas legacyOptimized: 1393660 +// gas legacyOptimized: 1393648 // set_get_length(uint256): 0xFFFFF -> FAILURE # Out-of-gas # // gas irOptimized: 100000000 // gas legacyOptimized: 100000000 diff --git a/test/libsolidity/semanticTests/array/array_storage_push_pop.sol b/test/libsolidity/semanticTests/array/array_storage_push_pop.sol index 609944ddc086..4a9e15ddedeb 100644 --- a/test/libsolidity/semanticTests/array/array_storage_push_pop.sol +++ b/test/libsolidity/semanticTests/array/array_storage_push_pop.sol @@ -15,13 +15,13 @@ contract C { // set_get_length(uint256): 20 -> 0 // gas irOptimized: 87226 // gas legacy: 85609 -// gas legacyOptimized: 83462 +// gas legacyOptimized: 83450 // set_get_length(uint256): 0xFF -> 0 // gas irOptimized: 833586 // gas legacy: 807764 -// gas legacyOptimized: 784467 +// gas legacyOptimized: 784455 // set_get_length(uint256): 0xFFF -> 0 // gas irOptimized: 13029438 // gas legacy: 12608096 -// gas legacyOptimized: 12239199 +// gas legacyOptimized: 12239187 // set_get_length(uint256): 0xFFFF -> FAILURE # Out-of-gas # 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 ac3cd8495f73..51c23e493c51 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,7 +14,7 @@ contract Test { // 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: 185221 // gas legacy: 199970 -// gas legacyOptimized: 186342 +// gas legacyOptimized: 186330 // 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/constant_var_as_array_length.sol b/test/libsolidity/semanticTests/array/constant_var_as_array_length.sol index 833c9dec3e42..3204eff81bc6 100644 --- a/test/libsolidity/semanticTests/array/constant_var_as_array_length.sol +++ b/test/libsolidity/semanticTests/array/constant_var_as_array_length.sol @@ -12,8 +12,8 @@ contract C { // gas irOptimized code: 14800 // gas legacy: 142553 // gas legacy code: 46200 -// gas legacyOptimized: 126306 -// gas legacyOptimized code: 23400 +// gas legacyOptimized: 126242 +// gas legacyOptimized code: 22600 // a(uint256): 0 -> 1 // a(uint256): 1 -> 2 // a(uint256): 2 -> 3 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 8131e7434d25..13539fc84cca 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_calldata_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_calldata_storage.sol @@ -22,5 +22,5 @@ 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: 647730 // gas legacy: 659420 -// gas legacyOptimized: 648899 +// gas legacyOptimized: 648887 // retrieve() -> 9, 28, 9, 28, 4, 3, 32 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 34d6c75ef8a6..de45ce86ff7e 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_nested_array.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_nested_array.sol @@ -14,4 +14,4 @@ contract c { // test(uint256[2][]): 32, 3, 7, 8, 9, 10, 11, 12 -> 10 // gas irOptimized: 689539 // gas legacy: 713478 -// gas legacyOptimized: 690424 +// gas legacyOptimized: 690412 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 2deb372fa381..5cc0a54dc47e 100644 --- a/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover.sol +++ b/test/libsolidity/semanticTests/array/copying/array_copy_target_leftover.sol @@ -17,6 +17,6 @@ contract c { } // ---- // test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000 -// gas irOptimized: 100506 +// gas irOptimized: 100494 // gas legacy: 146700 // gas legacyOptimized: 122680 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 fea2c895d81c..f2e46e10d8a7 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,7 +12,7 @@ contract Test { // 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: 95505 // gas legacy: 104176 -// gas legacyOptimized: 96785 +// gas legacyOptimized: 96773 // 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 4ab381f4e614..7683dfb883d7 100644 --- a/test/libsolidity/semanticTests/array/copying/bytes_inside_mappings.sol +++ b/test/libsolidity/semanticTests/array/copying/bytes_inside_mappings.sol @@ -7,11 +7,11 @@ contract c { // set(uint256): 1, 2 -> true // gas irOptimized: 110560 // gas legacy: 111310 -// gas legacyOptimized: 110741 +// gas legacyOptimized: 110729 // set(uint256): 2, 2, 3, 4, 5 -> true // gas irOptimized: 177511 // gas legacy: 178312 -// gas legacyOptimized: 177716 +// gas legacyOptimized: 177704 // storageEmpty -> 0 // copy(uint256,uint256): 1, 2 -> true // gas irOptimized: 48421 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 37769cb4966c..b4e53fc20a75 100644 --- a/test/libsolidity/semanticTests/array/copying/bytes_storage_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/bytes_storage_to_storage.sol @@ -19,24 +19,24 @@ contract c { // f(uint256): 31 -> 0x20, 0x1f, 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e00 // gas irOptimized: 103268 // gas legacy: 112904 -// gas legacyOptimized: 112645 +// gas legacyOptimized: 112633 // f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671 // gas irOptimized: 117825 // gas legacy: 128964 -// gas legacyOptimized: 128859 +// gas legacyOptimized: 128847 // f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000 // gas irOptimized: 123888 // gas legacy: 135510 -// gas legacyOptimized: 135218 +// gas legacyOptimized: 135206 // f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992 // gas irOptimized: 126948 // gas legacy: 148110 -// gas legacyOptimized: 148448 +// gas legacyOptimized: 148436 // f(uint256): 12 -> 0x20, 0x0c, 0x0102030405060708090a0b0000000000000000000000000000000000000000 // gas irOptimized: 54204 // gas legacy: 59832 -// gas legacyOptimized: 57268 +// gas legacyOptimized: 57258 // f(uint256): 129 -> 0x20, 0x81, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f, 29063324697304692433803953038474361308315562010425523193971352996434451193439, 0x606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f, -57896044618658097711785492504343953926634992332820282019728792003956564819968 // gas irOptimized: 416918 // gas legacy: 458997 -// gas legacyOptimized: 460669 +// gas legacyOptimized: 460657 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 400834772869..b542eaa4e3d9 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 @@ -11,4 +11,4 @@ contract C { // f(uint256[]): 0x20, 0x03, 0x1, 0x2, 0x3 -> 0x1 // gas irOptimized: 110973 // gas legacy: 112436 -// gas legacyOptimized: 111313 +// gas legacyOptimized: 111301 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 caa0596610ad..b40618e65ac0 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 @@ -46,6 +46,6 @@ contract C { } // ---- // f() -> 0xff -// gas irOptimized: 143935 +// gas irOptimized: 143906 // gas legacy: 153487 // gas legacyOptimized: 146748 diff --git a/test/libsolidity/semanticTests/array/copying/function_type_array_to_storage.sol b/test/libsolidity/semanticTests/array/copying/function_type_array_to_storage.sol index a5cf48011226..e48d8488b597 100644 --- a/test/libsolidity/semanticTests/array/copying/function_type_array_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/function_type_array_to_storage.sol @@ -46,11 +46,11 @@ contract C { } // ---- // test() -> 0x20, 0x14, "[a called][b called]" -// gas irOptimized: 116512 +// gas irOptimized: 116476 // gas legacy: 120226 -// gas legacyOptimized: 116941 +// gas legacyOptimized: 116929 // test2() -> 0x20, 0x14, "[b called][a called]" // test3() -> 0x20, 0x14, "[b called][a called]" -// gas irOptimized: 103138 +// gas irOptimized: 103102 // gas legacy: 105192 // gas legacyOptimized: 103752 diff --git a/test/libsolidity/semanticTests/array/copying/nested_array_element_calldata_to_storage.sol b/test/libsolidity/semanticTests/array/copying/nested_array_element_calldata_to_storage.sol index f9d14b59edf5..bb360cb95e11 100644 --- a/test/libsolidity/semanticTests/array/copying/nested_array_element_calldata_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/nested_array_element_calldata_to_storage.sol @@ -26,4 +26,4 @@ contract C { // test(uint8[2][2][2]): 1, 2, 3, 4, 5, 6, 7, 8 // test2(uint8[2][2]): 1, 2, 3, 4 // gas irOptimized: 72076 -// gas legacyOptimized: 72086 +// gas legacyOptimized: 72074 diff --git a/test/libsolidity/semanticTests/array/copying/nested_array_element_memory_to_storage.sol b/test/libsolidity/semanticTests/array/copying/nested_array_element_memory_to_storage.sol index d604a11e6cd4..183641513277 100644 --- a/test/libsolidity/semanticTests/array/copying/nested_array_element_memory_to_storage.sol +++ b/test/libsolidity/semanticTests/array/copying/nested_array_element_memory_to_storage.sol @@ -26,4 +26,4 @@ contract C { // test(uint8[2][2][2]): 1, 2, 3, 4, 5, 6, 7, 8 // test2(uint8[2][2]): 1, 2, 3, 4 // gas irOptimized: 73031 -// gas legacyOptimized: 73155 +// gas legacyOptimized: 73143 diff --git a/test/libsolidity/semanticTests/array/dynamic_arrays_in_storage.sol b/test/libsolidity/semanticTests/array/dynamic_arrays_in_storage.sol index f96473739fa5..ff05f331dddf 100644 --- a/test/libsolidity/semanticTests/array/dynamic_arrays_in_storage.sol +++ b/test/libsolidity/semanticTests/array/dynamic_arrays_in_storage.sol @@ -43,7 +43,7 @@ contract c { // setLengths(uint256,uint256): 48, 49 -> // gas irOptimized: 112674 // gas legacy: 108272 -// gas legacyOptimized: 100268 +// gas legacyOptimized: 100256 // getLengths() -> 48, 49 // setIDStatic(uint256): 11 -> // getID(uint256): 2 -> 11 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 e4bf3a7197e7..67874adda0e7 100644 --- a/test/libsolidity/semanticTests/array/fixed_arrays_as_return_type.sol +++ b/test/libsolidity/semanticTests/array/fixed_arrays_as_return_type.sol @@ -22,5 +22,5 @@ contract B { // gas irOptimized code: 56600 // gas legacy: 68001 // gas legacy code: 162000 -// gas legacyOptimized: 59997 -// gas legacyOptimized code: 70600 +// gas legacyOptimized: 59967 +// gas legacyOptimized code: 69600 diff --git a/test/libsolidity/semanticTests/array/function_array_cross_calls.sol b/test/libsolidity/semanticTests/array/function_array_cross_calls.sol index f3dea83bfbab..bb83fd2acc3d 100644 --- a/test/libsolidity/semanticTests/array/function_array_cross_calls.sol +++ b/test/libsolidity/semanticTests/array/function_array_cross_calls.sol @@ -46,5 +46,5 @@ contract C { // gas irOptimized code: 161200 // gas legacy: 97551 // gas legacy code: 342800 -// gas legacyOptimized: 87808 -// gas legacyOptimized code: 193000 +// gas legacyOptimized: 87782 +// gas legacyOptimized code: 192000 diff --git a/test/libsolidity/semanticTests/array/long_byte_array_cleanup_after_delete.sol b/test/libsolidity/semanticTests/array/long_byte_array_cleanup_after_delete.sol index b638664aaca1..590223888c05 100644 --- a/test/libsolidity/semanticTests/array/long_byte_array_cleanup_after_delete.sol +++ b/test/libsolidity/semanticTests/array/long_byte_array_cleanup_after_delete.sol @@ -69,7 +69,7 @@ contract C { // checkSlots() -> 0, 0, 0, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, 0 // canaryValue() -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff // fillArray() -// gas irOptimized: 197289 +// gas irOptimized: 197277 // gas legacy: 220574 // gas legacyOptimized: 206839 // canaryValue() -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/test/libsolidity/semanticTests/array/long_byte_array_cleanup_after_overwrite_with_long.sol b/test/libsolidity/semanticTests/array/long_byte_array_cleanup_after_overwrite_with_long.sol index c796881c4c25..d12a5f7e0825 100644 --- a/test/libsolidity/semanticTests/array/long_byte_array_cleanup_after_overwrite_with_long.sol +++ b/test/libsolidity/semanticTests/array/long_byte_array_cleanup_after_overwrite_with_long.sol @@ -85,19 +85,19 @@ contract C { // ==== // EVMVersion: >=constantinople // ---- -// arrayLength() ->0 +// arrayLength() -> 0 // canaryValue() -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff // fillArray() -// gas irOptimized: 197352 +// gas irOptimized: 197340 // gas legacy: 220574 // gas legacyOptimized: 206839 -// arrayLength() ->96 +// arrayLength() -> 96 // canaryValue() -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff // getArrayBytes(uint256,uint256): 0, 5 -> 0x20, 5, 0x0102030405000000000000000000000000000000000000000000000000000000 // getArrayBytes(uint256,uint256): 32, 5 -> 0x20, 5, 0x2122232425000000000000000000000000000000000000000000000000000000 // getArrayBytes(uint256,uint256): 64, 5 -> 0x20, 5, 0x4142434445000000000000000000000000000000000000000000000000000000 // shrinkArray() -> 50 -// arrayLength() ->50 +// arrayLength() -> 50 // canaryValue() -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff // getArrayBytes(uint256,uint256): 0, 5 -> 0x20, 5, 0x0203040506000000000000000000000000000000000000000000000000000000 // getArrayBytes(uint256,uint256): 32, 5 -> 0x20, 5, 0x2223242526000000000000000000000000000000000000000000000000000000 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 ed4e9b87737c..fe5d1d71bd4c 100644 --- a/test/libsolidity/semanticTests/array/pop/array_pop_array_transition.sol +++ b/test/libsolidity/semanticTests/array/pop/array_pop_array_transition.sol @@ -23,7 +23,7 @@ contract c { } // ---- // test() -> 1, 2, 3 -// gas irOptimized: 1828383 +// gas irOptimized: 1826540 // gas legacy: 1841877 // gas legacyOptimized: 1821569 // 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 0c68ab70c600..baafa2913251 100644 --- a/test/libsolidity/semanticTests/array/pop/array_pop_uint16_transition.sol +++ b/test/libsolidity/semanticTests/array/pop/array_pop_uint16_transition.sol @@ -18,7 +18,7 @@ contract c { } // ---- // test() -> 38, 28, 18 -// gas irOptimized: 148380 +// gas irOptimized: 146998 // gas legacy: 151182 // gas legacyOptimized: 142418 // 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 86165dde2844..8aa61f030241 100644 --- a/test/libsolidity/semanticTests/array/pop/array_pop_uint24_transition.sol +++ b/test/libsolidity/semanticTests/array/pop/array_pop_uint24_transition.sol @@ -18,7 +18,7 @@ contract c { } // ---- // test() -> 20, 10 -// gas irOptimized: 125889 +// gas irOptimized: 125025 // gas legacy: 127215 // gas legacyOptimized: 122224 // 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 cbb10a0a1b07..8047d1a198aa 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 @@ -15,7 +15,7 @@ contract c { } // ---- // test() -> -// gas irOptimized: 113631 +// gas irOptimized: 112364 // gas legacy: 131256 // gas legacyOptimized: 126668 // storageEmpty -> 1 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 83c5c1724307..826197353078 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 @@ -14,4 +14,4 @@ contract C { // f(uint120[]): 0x20, 3, 1, 2, 3 -> 1 // gas irOptimized: 112852 // gas legacy: 114404 -// gas legacyOptimized: 113087 +// gas legacyOptimized: 113075 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 254c14b061cf..fea574a8e891 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 @@ -18,4 +18,4 @@ 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: 137153 // gas legacy: 142414 -// gas legacyOptimized: 137975 +// gas legacyOptimized: 137963 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 626c65871ff2..ac9d8ee1514b 100644 --- a/test/libsolidity/semanticTests/array/push/push_no_args_2d.sol +++ b/test/libsolidity/semanticTests/array/push/push_no_args_2d.sol @@ -29,14 +29,14 @@ contract C { // f(uint256,uint256): 42, 64 -> // gas irOptimized: 112288 // gas legacy: 107925 -// gas legacyOptimized: 101896 +// gas legacyOptimized: 101884 // l() -> 1 // ll(uint256): 0 -> 43 // a(uint256,uint256): 0, 42 -> 64 // f(uint256,uint256): 84, 128 -> // gas irOptimized: 118708 // gas legacy: 109977 -// gas legacyOptimized: 98446 +// gas legacyOptimized: 98434 // 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 de737593c099..553c9c03127e 100644 --- a/test/libsolidity/semanticTests/array/push/push_no_args_bytes.sol +++ b/test/libsolidity/semanticTests/array/push/push_no_args_bytes.sol @@ -23,7 +23,7 @@ contract C { // g(uint256): 70 -> // gas irOptimized: 181778 // gas legacy: 175192 -// gas legacyOptimized: 175005 +// gas legacyOptimized: 174993 // 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 fd352dd61afd..e185ad9cdd3c 100644 --- a/test/libsolidity/semanticTests/array/reusing_memory.sol +++ b/test/libsolidity/semanticTests/array/reusing_memory.sol @@ -28,5 +28,5 @@ contract Main { // gas irOptimized code: 12400 // gas legacy: 101551 // gas legacy code: 23600 -// gas legacyOptimized: 99612 +// gas legacyOptimized: 99600 // gas legacyOptimized code: 13400 diff --git a/test/libsolidity/semanticTests/cleanup/byte_array_to_storage_cleanup.sol b/test/libsolidity/semanticTests/cleanup/byte_array_to_storage_cleanup.sol index 4c75ad452b8d..78887e88afa9 100644 --- a/test/libsolidity/semanticTests/cleanup/byte_array_to_storage_cleanup.sol +++ b/test/libsolidity/semanticTests/cleanup/byte_array_to_storage_cleanup.sol @@ -28,14 +28,14 @@ contract C { // compileViaYul: also // ---- // constructor() -> -// gas irOptimized: 82586 -// gas irOptimized code: 363600 +// gas irOptimized: 82222 +// gas irOptimized code: 358600 // gas legacy: 101811 // gas legacy code: 608200 -// gas legacyOptimized: 85196 -// gas legacyOptimized code: 394800 +// gas legacyOptimized: 85128 +// gas legacyOptimized code: 393800 // h() -> 0x20, 0x40, 0x00, 0 // ~ emit ev(uint256[],uint256): 0x40, 0x21, 0x02, 0x00, 0x00 // g() -> 0x20, 0x40, 0, 0x00 // f(bytes): 0x20, 33, 0, -1 -> 0x20, 0x22, 0, 0xff00000000000000000000000000000000000000000000000000000000000000 -// gas irOptimized: 54117 +// gas irOptimized: 54093 diff --git a/test/libsolidity/semanticTests/constructor/arrays_in_constructors.sol b/test/libsolidity/semanticTests/constructor/arrays_in_constructors.sol index 76a4dd961fe4..28a1a458069e 100644 --- a/test/libsolidity/semanticTests/constructor/arrays_in_constructors.sol +++ b/test/libsolidity/semanticTests/constructor/arrays_in_constructors.sol @@ -30,5 +30,5 @@ contract Creator { // gas irOptimized code: 94000 // gas legacy: 338477 // gas legacy code: 244800 -// gas legacyOptimized: 329166 -// gas legacyOptimized code: 117000 +// gas legacyOptimized: 329142 +// gas legacyOptimized code: 116000 diff --git a/test/libsolidity/semanticTests/constructor/bytes_in_constructors_packer.sol b/test/libsolidity/semanticTests/constructor/bytes_in_constructors_packer.sol index 91be8e3789f3..636f44b6d079 100644 --- a/test/libsolidity/semanticTests/constructor/bytes_in_constructors_packer.sol +++ b/test/libsolidity/semanticTests/constructor/bytes_in_constructors_packer.sol @@ -30,5 +30,5 @@ contract Creator { // gas irOptimized code: 99600 // gas legacy: 172946 // gas legacy code: 239800 -// gas legacyOptimized: 169823 -// gas legacyOptimized code: 118600 +// gas legacyOptimized: 169799 +// gas legacyOptimized code: 117600 diff --git a/test/libsolidity/semanticTests/events/event_dynamic_array_storage.sol b/test/libsolidity/semanticTests/events/event_dynamic_array_storage.sol index bdd355f68927..ee4689873435 100644 --- a/test/libsolidity/semanticTests/events/event_dynamic_array_storage.sol +++ b/test/libsolidity/semanticTests/events/event_dynamic_array_storage.sol @@ -15,4 +15,4 @@ contract C { // ~ emit E(uint256[]): 0x20, 0x03, 0x2a, 0x2b, 0x2c // gas irOptimized: 114231 // gas legacy: 116313 -// gas legacyOptimized: 114407 +// gas legacyOptimized: 114395 diff --git a/test/libsolidity/semanticTests/events/event_dynamic_array_storage_v2.sol b/test/libsolidity/semanticTests/events/event_dynamic_array_storage_v2.sol index cecf31b42d9f..8f4ab78e01e1 100644 --- a/test/libsolidity/semanticTests/events/event_dynamic_array_storage_v2.sol +++ b/test/libsolidity/semanticTests/events/event_dynamic_array_storage_v2.sol @@ -16,4 +16,4 @@ contract C { // ~ emit E(uint256[]): 0x20, 0x03, 0x2a, 0x2b, 0x2c // gas irOptimized: 114231 // gas legacy: 116313 -// gas legacyOptimized: 114407 +// gas legacyOptimized: 114395 diff --git a/test/libsolidity/semanticTests/events/event_dynamic_nested_array_storage_v2.sol b/test/libsolidity/semanticTests/events/event_dynamic_nested_array_storage_v2.sol index 42b9b50dd779..b82c23e4548e 100644 --- a/test/libsolidity/semanticTests/events/event_dynamic_nested_array_storage_v2.sol +++ b/test/libsolidity/semanticTests/events/event_dynamic_nested_array_storage_v2.sol @@ -15,6 +15,6 @@ contract C { // ---- // createEvent(uint256): 42 -> // ~ emit E(uint256[][]): 0x20, 0x02, 0x40, 0xa0, 0x02, 0x2a, 0x2b, 0x02, 0x2c, 0x2d -// gas irOptimized: 185148 +// gas irOptimized: 185124 // gas legacy: 188615 -// gas legacyOptimized: 184548 +// gas legacyOptimized: 184536 diff --git a/test/libsolidity/semanticTests/events/event_emit_from_other_contract.sol b/test/libsolidity/semanticTests/events/event_emit_from_other_contract.sol index e6d800d9b229..8522b6b3c495 100644 --- a/test/libsolidity/semanticTests/events/event_emit_from_other_contract.sol +++ b/test/libsolidity/semanticTests/events/event_emit_from_other_contract.sol @@ -23,7 +23,7 @@ contract C { // gas irOptimized code: 51400 // gas legacy: 119791 // gas legacy code: 125200 -// gas legacyOptimized: 114187 -// gas legacyOptimized code: 57400 +// gas legacyOptimized: 114059 +// gas legacyOptimized code: 55800 // deposit(bytes32), 18 wei: 0x1234 -> // ~ emit Deposit(address,bytes32,uint256) from 0x137aa4dfc0911524504fcd4d98501f179bc13b4a: #0xc06afe3a8444fc0004668591e8306bfb9968e79e, #0x1234, 0x00 diff --git a/test/libsolidity/semanticTests/externalContracts/FixedFeeRegistrar.sol b/test/libsolidity/semanticTests/externalContracts/FixedFeeRegistrar.sol index 9ac85f9c8d8e..be005ee06ffc 100644 --- a/test/libsolidity/semanticTests/externalContracts/FixedFeeRegistrar.sol +++ b/test/libsolidity/semanticTests/externalContracts/FixedFeeRegistrar.sol @@ -77,19 +77,19 @@ contract FixedFeeRegistrar is Registrar { // experimental: true // ---- // constructor() -// gas irOptimized: 78076 -// gas irOptimized code: 307400 +// gas irOptimized: 77990 +// gas irOptimized code: 306400 // gas legacy: 115395 // gas legacy code: 792400 -// gas legacyOptimized: 84598 -// gas legacyOptimized code: 388000 +// gas legacyOptimized: 83717 +// gas legacyOptimized code: 377000 // gas ssaCFGOptimized: 78844 // gas ssaCFGOptimized code: 321800 // reserve(string), 69 ether: 0x20, 3, "abc" -> // ~ emit Changed(string): #0x4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45 // gas irOptimized: 45741 // gas legacy: 46698 -// gas legacyOptimized: 45948 +// gas legacyOptimized: 45936 // owner(string): 0x20, 3, "abc" -> 0x1212121212121212121212121212120000000012 // reserve(string), 70 ether: 0x20, 3, "def" -> // ~ emit Changed(string): #0x34607c9bbfeb9c23509680f04363f298fdb0b5f9abe327304ecd1daca08cda9c diff --git a/test/libsolidity/semanticTests/externalContracts/base64.sol b/test/libsolidity/semanticTests/externalContracts/base64.sol index 93799e936df4..769c9a3981a5 100644 --- a/test/libsolidity/semanticTests/externalContracts/base64.sol +++ b/test/libsolidity/semanticTests/externalContracts/base64.sol @@ -35,14 +35,14 @@ contract test { // experimental: true // ---- // constructor() -// gas irOptimized: 79076 -// gas irOptimized code: 322000 +// gas irOptimized: 78256 +// gas irOptimized code: 311000 // gas legacy: 102214 // gas legacy code: 629800 -// gas legacyOptimized: 87926 -// gas legacyOptimized code: 429800 -// gas ssaCFGOptimized: 79931 -// gas ssaCFGOptimized code: 332600 +// gas legacyOptimized: 87759 +// gas legacyOptimized code: 427800 +// gas ssaCFGOptimized: 79647 +// gas ssaCFGOptimized code: 328600 // 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=" @@ -58,12 +58,12 @@ 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: 1406025 +// gas irOptimized: 1370025 // gas legacy: 1554038 // gas legacyOptimized: 1132031 // gas ssaCFGOptimized: 1388025 // encode_no_asm_large() -// gas irOptimized: 3512081 +// gas irOptimized: 3452069 // gas legacy: 4600082 // gas legacyOptimized: 2813075 -// gas ssaCFGOptimized: 3089081 +// gas ssaCFGOptimized: 3089069 diff --git a/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol b/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol index baa951e71040..c8420608a670 100644 --- a/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol +++ b/test/libsolidity/semanticTests/externalContracts/deposit_contract.sol @@ -183,8 +183,8 @@ contract DepositContract is IDepositContract, ERC165 { // gas irOptimized code: 558000 // gas legacy: 920228 // gas legacy code: 1438800 -// gas legacyOptimized: 848699 -// gas legacyOptimized code: 878200 +// gas legacyOptimized: 848556 +// gas legacyOptimized code: 876200 // gas ssaCFGOptimized: 809663 // gas ssaCFGOptimized code: 570000 // supportsInterface(bytes4): 0x0 -> 0 diff --git a/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol b/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol index ad32fdc15adb..69c81f8ae836 100644 --- a/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol +++ b/test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol @@ -51,51 +51,51 @@ contract test { // experimental: true // ---- // constructor() -// gas irOptimized: 177903 -// gas irOptimized code: 1674400 +// gas irOptimized: 177639 +// gas irOptimized code: 1671400 // gas legacy: 209723 // gas legacy code: 2205000 -// gas legacyOptimized: 178012 -// gas legacyOptimized code: 1669600 -// gas ssaCFGOptimized: 175048 -// gas ssaCFGOptimized code: 1639600 +// gas legacyOptimized: 177173 +// gas legacyOptimized code: 1658600 +// gas ssaCFGOptimized: 174685 +// gas ssaCFGOptimized code: 1635600 // div(int256,int256): 3141592653589793238, 88714123 -> 35412542528203691288251815328 // gas irOptimized: 22045 // gas legacy: 22736 -// gas legacyOptimized: 22264 +// gas legacyOptimized: 22252 // exp(int256): 3141592653589793238 -> 23140692632779268978 // gas irOptimized: 24452 // gas legacy: 25124 -// gas legacyOptimized: 24351 +// gas legacyOptimized: 24339 // exp2(int256): 3141592653589793238 -> 8824977827076287620 // gas irOptimized: 24162 // gas legacy: 24787 -// gas legacyOptimized: 24105 +// gas legacyOptimized: 24093 // gm(int256,int256): 3141592653589793238, 88714123 -> 16694419339601 // gas irOptimized: 22805 // gas legacy: 23202 -// gas legacyOptimized: 22685 +// gas legacyOptimized: 22673 // log10(int256): 3141592653589793238 -> 4971498726941338506 // gas irOptimized: 30300 // gas legacy: 32841 -// gas legacyOptimized: 30249 +// gas legacyOptimized: 30237 // log2(int256): 3141592653589793238 -> 1651496129472318782 // gas irOptimized: 28566 // gas legacy: 30979 -// gas legacyOptimized: 28357 +// gas legacyOptimized: 28345 // mul(int256,int256): 3141592653589793238, 88714123 -> 278703637 -// gas irOptimized: 22147 +// gas irOptimized: 22135 // gas legacy: 22775 -// gas legacyOptimized: 22288 +// gas legacyOptimized: 22276 // pow(int256,uint256): 3141592653589793238, 5 -> 306019684785281453040 -// gas irOptimized: 22488 +// gas irOptimized: 22476 // gas legacy: 23453 -// gas legacyOptimized: 22921 +// gas legacyOptimized: 22909 // sqrt(int256): 3141592653589793238 -> 1772453850905516027 // gas irOptimized: 22458 // gas legacy: 22784 -// gas legacyOptimized: 22420 +// gas legacyOptimized: 22408 // benchmark(int256): 3141592653589793238 -> 998882724338592125, 1000000000000000000, 1000000000000000000 -// gas irOptimized: 34893 +// gas irOptimized: 34869 // gas legacy: 35244 -// gas legacyOptimized: 33996 +// gas legacyOptimized: 33960 diff --git a/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol b/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol index 2f681baa435d..b1349fac0fff 100644 --- a/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol +++ b/test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol @@ -51,51 +51,51 @@ contract test { // experimental: true // ---- // constructor() -// gas irOptimized: 170626 -// gas irOptimized code: 1577400 +// gas irOptimized: 170466 +// gas irOptimized code: 1575400 // gas legacy: 195206 // gas legacy code: 1999000 -// gas legacyOptimized: 168857 -// gas legacyOptimized code: 1556200 +// gas legacyOptimized: 167975 +// gas legacyOptimized code: 1545200 // gas ssaCFGOptimized: 167611 // gas ssaCFGOptimized code: 1544800 // div(uint256,uint256): 3141592653589793238, 88714123 -> 35412542528203691288251815328 // gas irOptimized: 21912 // gas legacy: 22475 -// gas legacyOptimized: 21998 +// gas legacyOptimized: 21986 // exp(uint256): 3141592653589793238 -> 23140692632779268978 // gas irOptimized: 24334 // gas legacy: 25026 -// gas legacyOptimized: 24253 +// gas legacyOptimized: 24241 // exp2(uint256): 3141592653589793238 -> 8824977827076287620 // gas irOptimized: 24115 // gas legacy: 24738 -// gas legacyOptimized: 24058 +// gas legacyOptimized: 24046 // gm(uint256,uint256): 3141592653589793238, 88714123 -> 16694419339601 // gas irOptimized: 22786 // gas legacy: 23244 -// gas legacyOptimized: 22727 +// gas legacyOptimized: 22715 // log10(uint256): 3141592653589793238 -> 0x44fe4fc084a52b8a // gas irOptimized: 30079 // gas legacy: 32808 -// gas legacyOptimized: 29912 +// gas legacyOptimized: 29900 // log2(uint256): 3141592653589793238 -> 1651496129472318782 // gas irOptimized: 28107 // gas legacy: 30900 -// gas legacyOptimized: 27994 +// gas legacyOptimized: 27982 // mul(uint256,uint256): 3141592653589793238, 88714123 -> 278703637 // gas irOptimized: 21988 // gas legacy: 22581 -// gas legacyOptimized: 22089 +// gas legacyOptimized: 22077 // pow(uint256,uint256): 3141592653589793238, 5 -> 306019684785281453040 // gas irOptimized: 22316 // gas legacy: 23196 -// gas legacyOptimized: 22652 +// gas legacyOptimized: 22640 // sqrt(uint256): 3141592653589793238 -> 1772453850905516027 // gas irOptimized: 22481 // gas legacy: 22803 -// gas legacyOptimized: 22439 +// gas legacyOptimized: 22427 // benchmark(uint256): 3141592653589793238 -> 998882724338592125, 1000000000000000000, 1000000000000000000 -// gas irOptimized: 33961 +// gas irOptimized: 33937 // gas legacy: 34006 -// gas legacyOptimized: 32724 +// gas legacyOptimized: 32688 diff --git a/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol b/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol index 44208308acab..d6a842c6e98a 100644 --- a/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol +++ b/test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol @@ -36,15 +36,15 @@ contract test { // experimental: true // ---- // constructor() -// gas irOptimized: 77816 -// gas irOptimized code: 307600 +// gas irOptimized: 77490 +// gas irOptimized code: 303600 // gas legacy: 92110 // gas legacy code: 523600 -// gas legacyOptimized: 82667 -// gas legacyOptimized code: 369200 -// gas ssaCFGOptimized: 77956 -// gas ssaCFGOptimized code: 313400 +// gas legacyOptimized: 82451 +// gas legacyOptimized code: 366200 +// gas ssaCFGOptimized: 77636 +// gas ssaCFGOptimized code: 309400 // prb_pi() -> 3141592656369545286 -// gas irOptimized: 55036 +// gas irOptimized: 54796 // gas legacy: 100657 -// gas legacyOptimized: 74311 +// gas legacyOptimized: 74083 diff --git a/test/libsolidity/semanticTests/externalContracts/snark.sol b/test/libsolidity/semanticTests/externalContracts/snark.sol index f7e450487310..ef65af6e2432 100644 --- a/test/libsolidity/semanticTests/externalContracts/snark.sol +++ b/test/libsolidity/semanticTests/externalContracts/snark.sol @@ -294,13 +294,13 @@ contract Test { // f() -> true // g() -> true // pair() -> true -// gas irOptimized: 275229 +// gas irOptimized: 275217 // gas legacy: 293579 -// gas legacyOptimized: 276313 +// gas legacyOptimized: 276301 // gas ssaCFGOptimized: 275795 // verifyTx() -> true // ~ emit Verified(string): 0x20, 0x16, "Successfully verified." -// gas irOptimized: 818076 +// gas irOptimized: 818064 // gas legacy: 904397 -// gas legacyOptimized: 816770 +// gas legacyOptimized: 816590 // gas ssaCFGOptimized: 820130 diff --git a/test/libsolidity/semanticTests/externalContracts/strings.sol b/test/libsolidity/semanticTests/externalContracts/strings.sol index 9bd1f39a0f92..6905ae0e9c7c 100644 --- a/test/libsolidity/semanticTests/externalContracts/strings.sol +++ b/test/libsolidity/semanticTests/externalContracts/strings.sol @@ -52,32 +52,32 @@ contract test { // experimental: true // ---- // constructor() -// gas irOptimized: 95303 -// gas irOptimized code: 520000 +// gas irOptimized: 94032 +// gas irOptimized code: 503000 // gas legacy: 126346 // gas legacy code: 932600 -// gas legacyOptimized: 102639 -// gas legacyOptimized code: 612400 -// gas ssaCFGOptimized: 96160 -// gas ssaCFGOptimized code: 532200 +// gas legacyOptimized: 101936 +// gas legacyOptimized code: 603400 +// gas ssaCFGOptimized: 95315 +// gas ssaCFGOptimized code: 521200 // toSlice(string): 0x20, 11, "hello world" -> 11, 0xa0 -// gas irOptimized: 22646 +// gas irOptimized: 22622 // gas legacy: 23168 -// gas legacyOptimized: 22488 +// gas legacyOptimized: 22476 // roundtrip(string): 0x20, 11, "hello world" -> 0x20, 11, "hello world" -// gas irOptimized: 23225 +// gas irOptimized: 23165 // gas legacy: 23674 -// gas legacyOptimized: 22991 +// gas legacyOptimized: 22967 // utf8len(string): 0x20, 16, "\xf0\x9f\x98\x83\xf0\x9f\x98\x83\xf0\x9f\x98\x83\xf0\x9f\x98\x83" -> 4 # Input: "😃😃😃😃" # -// gas irOptimized: 23956 +// gas irOptimized: 23908 // gas legacy: 25621 -// gas legacyOptimized: 24096 +// gas legacyOptimized: 24072 // multiconcat(string,uint256): 0x40, 3, 11, "hello world" -> 0x20, 0x58, 0x68656c6c6f20776f726c6468656c6c6f20776f726c6468656c6c6f20776f726c, 0x6468656c6c6f20776f726c6468656c6c6f20776f726c6468656c6c6f20776f72, 49027192869463622675296414541903001712009715982962058146354235762728281047040 # concatenating 3 times # -// gas irOptimized: 27630 +// gas irOptimized: 27522 // gas legacy: 30778 -// gas legacyOptimized: 27519 +// gas legacyOptimized: 27471 // benchmark(string,bytes32): 0x40, 0x0842021, 8, "solidity" -> 0x2020 -// gas irOptimized: 1976778 +// gas irOptimized: 1976454 // gas legacy: 4234020 -// gas legacyOptimized: 2318668 -// gas ssaCFGOptimized: 1882355 +// gas legacyOptimized: 2318512 +// gas ssaCFGOptimized: 1882319 diff --git a/test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting.sol b/test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting.sol index 0031059c021a..045f6e41fa25 100644 --- a/test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting.sol +++ b/test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting.sol @@ -28,8 +28,8 @@ contract C { // gas irOptimized code: 164400 // gas legacy: 102721 // gas legacy code: 334400 -// gas legacyOptimized: 91499 -// gas legacyOptimized code: 196400 +// gas legacyOptimized: 91431 +// gas legacyOptimized code: 195400 // f(uint256): 0 -> FAILURE // f(uint256): 1 -> FAILURE // f(uint256): 2 -> FAILURE diff --git a/test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting_debugstrings.sol b/test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting_debugstrings.sol index a8eafb38ea1a..ac0b556057c1 100644 --- a/test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting_debugstrings.sol +++ b/test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting_debugstrings.sol @@ -22,16 +22,16 @@ contract C { } // ==== // EVMVersion: >=byzantium -// revertStrings: debug // bytecodeFormat: legacy +// revertStrings: debug // ---- // constructor(), 1 ether -> -// gas irOptimized: 98698 -// gas irOptimized code: 284200 +// gas irOptimized: 98538 +// gas irOptimized code: 282200 // gas legacy: 123258 // gas legacy code: 682400 -// gas legacyOptimized: 106969 -// gas legacyOptimized code: 386400 +// gas legacyOptimized: 106889 +// gas legacyOptimized code: 385400 // f(uint256): 0 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code" // f(uint256): 1 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code" // f(uint256): 2 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code" diff --git a/test/libsolidity/semanticTests/functionCall/failed_create.sol b/test/libsolidity/semanticTests/functionCall/failed_create.sol index 87bd12d58b75..f7c420178f6b 100644 --- a/test/libsolidity/semanticTests/functionCall/failed_create.sol +++ b/test/libsolidity/semanticTests/functionCall/failed_create.sol @@ -21,8 +21,8 @@ contract C { // gas irOptimized code: 81800 // gas legacy: 64468 // gas legacy code: 145400 -// gas legacyOptimized: 60443 -// gas legacyOptimized code: 91200 +// gas legacyOptimized: 60301 +// gas legacyOptimized code: 89200 // f(uint256): 20 -> // x() -> 1 // f(uint256): 20 -> FAILURE @@ -30,7 +30,7 @@ contract C { // stack(uint256): 1023 -> FAILURE // gas irOptimized: 298110 // gas legacy: 527207 -// gas legacyOptimized: 353607 +// gas legacyOptimized: 348438 // x() -> 1 // stack(uint256): 10 -> // x() -> 2 diff --git a/test/libsolidity/semanticTests/functionCall/gas_and_value_basic.sol b/test/libsolidity/semanticTests/functionCall/gas_and_value_basic.sol index 7415accabcd2..9f64b0910674 100644 --- a/test/libsolidity/semanticTests/functionCall/gas_and_value_basic.sol +++ b/test/libsolidity/semanticTests/functionCall/gas_and_value_basic.sol @@ -42,8 +42,8 @@ contract test { // gas irOptimized code: 132000 // gas legacy: 130583 // gas legacy code: 261200 -// gas legacyOptimized: 121069 -// gas legacyOptimized code: 147000 +// gas legacyOptimized: 121001 +// gas legacyOptimized code: 146000 // sendAmount(uint256): 5 -> 5 // outOfGas() -> FAILURE # call to helper should not succeed but amount should be transferred anyway # // checkState() -> false, 15 diff --git a/test/libsolidity/semanticTests/functionCall/mapping_array_internal_argument.sol b/test/libsolidity/semanticTests/functionCall/mapping_array_internal_argument.sol index 7505e20cce47..d40284be5c9a 100644 --- a/test/libsolidity/semanticTests/functionCall/mapping_array_internal_argument.sol +++ b/test/libsolidity/semanticTests/functionCall/mapping_array_internal_argument.sol @@ -20,7 +20,7 @@ contract test { // set(uint8,uint8,uint8,uint8,uint8): 1, 21, 22, 42, 43 -> 0, 0, 0, 0 // gas irOptimized: 111237 // gas legacy: 113742 -// gas legacyOptimized: 111768 +// gas legacyOptimized: 111756 // 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 904bc705f725..470a7f545576 100644 --- a/test/libsolidity/semanticTests/functionTypes/store_function.sol +++ b/test/libsolidity/semanticTests/functionTypes/store_function.sol @@ -29,5 +29,5 @@ contract C { // gas irOptimized code: 19000 // gas legacy: 79492 // gas legacy code: 69600 -// gas legacyOptimized: 77587 -// gas legacyOptimized code: 28600 +// gas legacyOptimized: 77575 +// gas legacyOptimized code: 27800 diff --git a/test/libsolidity/semanticTests/immutable/immutable_tag_too_large_bug.sol b/test/libsolidity/semanticTests/immutable/immutable_tag_too_large_bug.sol index fed424628c0e..0bca669955d4 100644 --- a/test/libsolidity/semanticTests/immutable/immutable_tag_too_large_bug.sol +++ b/test/libsolidity/semanticTests/immutable/immutable_tag_too_large_bug.sol @@ -41,8 +41,8 @@ contract C { // compileViaYul: true // ---- // constructor() -> -// gas irOptimized: 73171 -// gas irOptimized code: 291200 +// gas irOptimized: 72617 +// gas irOptimized code: 284200 // gas legacy: 83499 // gas legacy code: 408800 // f() -> -1, 1 diff --git a/test/libsolidity/semanticTests/inlineAssembly/keccak_yul_optimization.sol b/test/libsolidity/semanticTests/inlineAssembly/keccak_yul_optimization.sol index e3344bf5d588..53ec376c0732 100644 --- a/test/libsolidity/semanticTests/inlineAssembly/keccak_yul_optimization.sol +++ b/test/libsolidity/semanticTests/inlineAssembly/keccak_yul_optimization.sol @@ -28,6 +28,6 @@ contract C { // gas legacy: 23378 // gas legacyOptimized: 23089 // g() -> 0xcdb56c384a9682c600315e3470157a4cf7638d0d33e9dae5c40ffd2644fc5a80 -// gas irOptimized: 21251 +// gas irOptimized: 21239 // gas legacy: 21456 // gas legacyOptimized: 21254 diff --git a/test/libsolidity/semanticTests/inlineAssembly/transient_storage_selfdestruct.sol b/test/libsolidity/semanticTests/inlineAssembly/transient_storage_selfdestruct.sol index 26bb09edca7a..d934fedd857a 100644 --- a/test/libsolidity/semanticTests/inlineAssembly/transient_storage_selfdestruct.sol +++ b/test/libsolidity/semanticTests/inlineAssembly/transient_storage_selfdestruct.sol @@ -45,11 +45,11 @@ contract D { // gas irOptimized code: 221000 // gas legacy: 149480 // gas legacy code: 501200 -// gas legacyOptimized: 125846 -// gas legacyOptimized code: 203400 +// gas legacyOptimized: 125584 +// gas legacyOptimized code: 200200 // destroy() -> // createAndDestroy() -> // gas legacy: 67048 // gas legacy code: 92600 -// gas legacyOptimized: 65677 -// gas legacyOptimized code: 39400 +// gas legacyOptimized: 65647 +// gas legacyOptimized code: 37800 diff --git a/test/libsolidity/semanticTests/libraries/internal_types_in_library.sol b/test/libsolidity/semanticTests/libraries/internal_types_in_library.sol index d59cedfdc860..63b040fd6ed7 100644 --- a/test/libsolidity/semanticTests/libraries/internal_types_in_library.sol +++ b/test/libsolidity/semanticTests/libraries/internal_types_in_library.sol @@ -24,4 +24,4 @@ contract Test { // f() -> 4, 0x11 // gas irOptimized: 111419 // gas legacy: 132930 -// gas legacyOptimized: 118020 +// gas legacyOptimized: 117996 diff --git a/test/libsolidity/semanticTests/operators/userDefined/operator_making_pure_external_call.sol b/test/libsolidity/semanticTests/operators/userDefined/operator_making_pure_external_call.sol index b901cab0351a..a8dc29c5ce68 100644 --- a/test/libsolidity/semanticTests/operators/userDefined/operator_making_pure_external_call.sol +++ b/test/libsolidity/semanticTests/operators/userDefined/operator_making_pure_external_call.sol @@ -58,12 +58,12 @@ contract C { // gas irOptimized code: 40600 // gas legacy: 57117 // gas legacy code: 127000 -// gas legacyOptimized: 55246 -// gas legacyOptimized code: 68400 +// gas legacyOptimized: 55222 +// gas legacyOptimized code: 66400 // testInc(int32): 42 -> 43 -// gas irOptimized: 54621 +// gas irOptimized: 54609 // gas irOptimized code: 40600 // gas legacy: 56378 // gas legacy code: 127000 -// gas legacyOptimized: 54943 -// gas legacyOptimized code: 68400 +// gas legacyOptimized: 54919 +// gas legacyOptimized code: 66400 diff --git a/test/libsolidity/semanticTests/operators/userDefined/operator_making_view_external_call.sol b/test/libsolidity/semanticTests/operators/userDefined/operator_making_view_external_call.sol index 15501b3fc24e..6ec7cccdab91 100644 --- a/test/libsolidity/semanticTests/operators/userDefined/operator_making_view_external_call.sol +++ b/test/libsolidity/semanticTests/operators/userDefined/operator_making_view_external_call.sol @@ -64,12 +64,12 @@ contract C { // gas irOptimized code: 40600 // gas legacy: 57117 // gas legacy code: 127000 -// gas legacyOptimized: 55246 -// gas legacyOptimized code: 68400 +// gas legacyOptimized: 55222 +// gas legacyOptimized code: 66400 // testInc(int32): 42 -> 43 -// gas irOptimized: 54621 +// gas irOptimized: 54609 // gas irOptimized code: 40600 // gas legacy: 56378 // gas legacy code: 127000 -// gas legacyOptimized: 54943 -// gas legacyOptimized code: 68400 +// gas legacyOptimized: 54919 +// gas legacyOptimized code: 66400 diff --git a/test/libsolidity/semanticTests/storage/empty_nonempty_empty.sol b/test/libsolidity/semanticTests/storage/empty_nonempty_empty.sol index 8d72f7c04358..7336346502d0 100644 --- a/test/libsolidity/semanticTests/storage/empty_nonempty_empty.sol +++ b/test/libsolidity/semanticTests/storage/empty_nonempty_empty.sol @@ -24,7 +24,7 @@ contract Test { // set(bytes): 0x20, 66, "12345678901234567890123456789012", "12345678901234567890123456789012", "12" // gas irOptimized: 111820 // gas legacy: 112734 -// gas legacyOptimized: 112089 +// gas legacyOptimized: 112077 // storageEmpty -> 0 // set(bytes): 0x20, 3, "abc" // gas irOptimized: 33989 diff --git a/test/libsolidity/semanticTests/storage/storage_boundary_array_assignment.sol b/test/libsolidity/semanticTests/storage/storage_boundary_array_assignment.sol index 0de66a71472f..d8d06e9a0e22 100644 --- a/test/libsolidity/semanticTests/storage/storage_boundary_array_assignment.sol +++ b/test/libsolidity/semanticTests/storage/storage_boundary_array_assignment.sol @@ -19,7 +19,7 @@ contract C { // assignArray(uint256[10]): 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 -> // gas irOptimized: 245236 // gas legacy: 249351 -// gas legacyOptimized: 245365 +// gas legacyOptimized: 245353 // x() -> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 // assignArray(uint256[10]): 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 -> // x() -> 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 diff --git a/test/libsolidity/semanticTests/storage/storage_boundary_struct_array_mixed_types.sol b/test/libsolidity/semanticTests/storage/storage_boundary_struct_array_mixed_types.sol index 444f86286453..19dd871c3fa7 100644 --- a/test/libsolidity/semanticTests/storage/storage_boundary_struct_array_mixed_types.sol +++ b/test/libsolidity/semanticTests/storage/storage_boundary_struct_array_mixed_types.sol @@ -119,7 +119,7 @@ contract C { // gas legacy: 120738 // gas legacyOptimized: 112505 // copyFromBoundary() -// gas irOptimized: 994579 +// gas irOptimized: 994459 // gas legacy: 1023407 // gas legacyOptimized: 994746 // canaryValue() -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff @@ -145,7 +145,7 @@ contract C { // gas legacy: 120738 // gas legacyOptimized: 112505 // copyToBoundary() -// gas irOptimized: 282623 +// gas irOptimized: 282503 // gas legacy: 311362 // gas legacyOptimized: 282712 // canaryValue() -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/test/libsolidity/semanticTests/storageLayoutSpecifier/storage_reference_array.sol b/test/libsolidity/semanticTests/storageLayoutSpecifier/storage_reference_array.sol index db14ef55874c..e18aa7330bf9 100644 --- a/test/libsolidity/semanticTests/storageLayoutSpecifier/storage_reference_array.sol +++ b/test/libsolidity/semanticTests/storageLayoutSpecifier/storage_reference_array.sol @@ -14,7 +14,7 @@ contract C layout at 42 { } // ---- // initUsingReference() -> -// gas irOptimized: 273556 +// gas irOptimized: 273544 // gas legacy: 274795 // gas legacyOptimized: 271954 // array(uint256): 0 -> 1 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 2767486131d8..2205244a0c7c 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 @@ -18,4 +18,4 @@ 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: 202902 // gas legacy: 207376 -// gas legacyOptimized: 203583 +// gas legacyOptimized: 203571 diff --git a/test/libsolidity/semanticTests/structs/copy_substructures_to_mapping.sol b/test/libsolidity/semanticTests/structs/copy_substructures_to_mapping.sol index 3e86495713be..04605b2cced0 100644 --- a/test/libsolidity/semanticTests/structs/copy_substructures_to_mapping.sol +++ b/test/libsolidity/semanticTests/structs/copy_substructures_to_mapping.sol @@ -62,4 +62,4 @@ contract C { // from_calldata((bytes,uint16[],uint16)): 0x20, 0x60, 0xa0, 21, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 -> 0x20, 0x60, 0xa0, 0x15, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // gas irOptimized: 114852 // gas legacy: 117950 -// gas legacyOptimized: 115526 +// gas legacyOptimized: 115514 diff --git a/test/libsolidity/semanticTests/structs/copy_to_mapping.sol b/test/libsolidity/semanticTests/structs/copy_to_mapping.sol index b31d0e580444..3bd464892b69 100644 --- a/test/libsolidity/semanticTests/structs/copy_to_mapping.sol +++ b/test/libsolidity/semanticTests/structs/copy_to_mapping.sol @@ -59,4 +59,4 @@ contract C { // from_calldata((bytes,uint16[],uint16)): 0x20, 0x60, 0xa0, 21, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 -> 0x20, 0x60, 0xa0, 21, 3, 0x666f6f0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // gas irOptimized: 114824 // gas legacy: 118207 -// gas legacyOptimized: 115327 +// gas legacyOptimized: 115315 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 3912a4655505..58b150983ea7 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,7 +25,7 @@ contract c { // set(uint256,bytes,uint256): 12, 0x60, 13, 33, "12345678901234567890123456789012", "3" -> true // gas irOptimized: 133557 // gas legacy: 134624 -// gas legacyOptimized: 133857 +// gas legacyOptimized: 133845 // test(uint256): 32 -> "3" // storageEmpty -> 0 // copy() -> true @@ -33,7 +33,7 @@ contract c { // set(uint256,bytes,uint256): 12, 0x60, 13, 33, "12345678901234567890123456789012", "3" -> true // gas irOptimized: 133557 // gas legacy: 134624 -// gas legacyOptimized: 133857 +// gas legacyOptimized: 133845 // storageEmpty -> 0 // del() -> true // storageEmpty -> 1 diff --git a/test/libsolidity/semanticTests/userDefinedValueType/calldata.sol b/test/libsolidity/semanticTests/userDefinedValueType/calldata.sol index 63f1ff1dd18e..208fe9e16965 100644 --- a/test/libsolidity/semanticTests/userDefinedValueType/calldata.sol +++ b/test/libsolidity/semanticTests/userDefinedValueType/calldata.sol @@ -51,11 +51,11 @@ contract C { // test_f() -> true // gas irOptimized: 122114 // gas legacy: 126159 -// gas legacyOptimized: 122742 +// gas legacyOptimized: 122730 // test_g() -> true // gas irOptimized: 106248 // gas legacy: 111821 -// gas legacyOptimized: 106591 +// gas legacyOptimized: 106579 // addresses(uint256): 0 -> 0x18 // addresses(uint256): 1 -> 0x19 // addresses(uint256): 3 -> 0x1b diff --git a/test/libsolidity/semanticTests/userDefinedValueType/calldata_to_storage.sol b/test/libsolidity/semanticTests/userDefinedValueType/calldata_to_storage.sol index 0815a2da7ace..4139c03a0992 100644 --- a/test/libsolidity/semanticTests/userDefinedValueType/calldata_to_storage.sol +++ b/test/libsolidity/semanticTests/userDefinedValueType/calldata_to_storage.sol @@ -25,17 +25,17 @@ contract C { // f((uint8,uint16,bytes2,uint8)): 1, 0xff, "ab", 15 -> // gas irOptimized: 44237 // gas legacy: 47154 -// gas legacyOptimized: 44982 +// gas legacyOptimized: 44970 // s() -> 1, 0xff, 0x6162000000000000000000000000000000000000000000000000000000000000, 15 // g(uint16[]): 0x20, 3, 1, 2, 3 -> 0x20, 3, 1, 2, 3 // gas irOptimized: 68578 // gas legacy: 71400 -// gas legacyOptimized: 69139 +// gas legacyOptimized: 69127 // small(uint256): 0 -> 1 // small(uint256): 1 -> 2 // h(bytes2[]): 0x20, 3, "ab", "cd", "ef" -> 0x20, 3, "ab", "cd", "ef" // gas irOptimized: 68635 // gas legacy: 71231 -// gas legacyOptimized: 69289 +// gas legacyOptimized: 69277 // l(uint256): 0 -> 0x6162000000000000000000000000000000000000000000000000000000000000 // l(uint256): 1 -> 0x6364000000000000000000000000000000000000000000000000000000000000 diff --git a/test/libsolidity/semanticTests/userDefinedValueType/erc20.sol b/test/libsolidity/semanticTests/userDefinedValueType/erc20.sol index acd9ea840895..56b1b1d25003 100644 --- a/test/libsolidity/semanticTests/userDefinedValueType/erc20.sol +++ b/test/libsolidity/semanticTests/userDefinedValueType/erc20.sol @@ -117,8 +117,8 @@ contract ERC20 { // gas irOptimized code: 234600 // gas legacy: 163350 // gas legacy code: 671400 -// gas legacyOptimized: 127464 -// gas legacyOptimized code: 285400 +// gas legacyOptimized: 126656 +// gas legacyOptimized code: 279400 // totalSupply() -> 20 // gas irOptimized: 23334 // gas legacy: 23645 @@ -127,22 +127,22 @@ contract ERC20 { // ~ emit Transfer(address,address,uint256): #0x1212121212121212121212121212120000000012, #0x02, 0x05 // gas irOptimized: 50997 // gas legacy: 52323 -// gas legacyOptimized: 51380 +// gas legacyOptimized: 51368 // decreaseAllowance(address,uint256): 2, 0 -> true // ~ emit Approval(address,address,uint256): #0x1212121212121212121212121212120000000012, #0x02, 0x00 // gas irOptimized: 26054 // gas legacy: 27165 -// gas legacyOptimized: 26320 +// gas legacyOptimized: 26296 // decreaseAllowance(address,uint256): 2, 1 -> FAILURE, hex"4e487b71", 0x11 // gas irOptimized: 23954 // gas legacy: 24500 -// gas legacyOptimized: 24076 +// gas legacyOptimized: 24064 // transfer(address,uint256): 2, 14 -> true // ~ emit Transfer(address,address,uint256): #0x1212121212121212121212121212120000000012, #0x02, 0x0e // gas irOptimized: 33897 // gas legacy: 35223 -// gas legacyOptimized: 34280 +// gas legacyOptimized: 34268 // transfer(address,uint256): 2, 2 -> FAILURE, hex"4e487b71", 0x11 // gas irOptimized: 23990 // gas legacy: 24483 -// gas legacyOptimized: 24072 +// gas legacyOptimized: 24060 diff --git a/test/libsolidity/semanticTests/userDefinedValueType/memory_to_storage.sol b/test/libsolidity/semanticTests/userDefinedValueType/memory_to_storage.sol index 6e07e74e9f71..7b943cca1b0e 100644 --- a/test/libsolidity/semanticTests/userDefinedValueType/memory_to_storage.sol +++ b/test/libsolidity/semanticTests/userDefinedValueType/memory_to_storage.sol @@ -30,12 +30,12 @@ contract C { // g(uint16[]): 0x20, 3, 1, 2, 3 -> 0x20, 3, 1, 2, 3 // gas irOptimized: 68898 // gas legacy: 72336 -// gas legacyOptimized: 69607 +// gas legacyOptimized: 69583 // small(uint256): 0 -> 1 // small(uint256): 1 -> 2 // h(bytes2[]): 0x20, 3, "ab", "cd", "ef" -> 0x20, 3, "ab", "cd", "ef" // gas irOptimized: 68937 // gas legacy: 72167 -// gas legacyOptimized: 69802 +// gas legacyOptimized: 69778 // l(uint256): 0 -> 0x6162000000000000000000000000000000000000000000000000000000000000 // l(uint256): 1 -> 0x6364000000000000000000000000000000000000000000000000000000000000 diff --git a/test/libsolidity/semanticTests/various/destructuring_assignment.sol b/test/libsolidity/semanticTests/various/destructuring_assignment.sol index 44fcd0f6aaa2..a6068a9c1933 100644 --- a/test/libsolidity/semanticTests/various/destructuring_assignment.sol +++ b/test/libsolidity/semanticTests/various/destructuring_assignment.sol @@ -35,4 +35,4 @@ contract C { // f(bytes): 0x20, 0x5, "abcde" -> 0 // gas irOptimized: 242037 // gas legacy: 246685 -// gas legacyOptimized: 242396 +// gas legacyOptimized: 242384 diff --git a/test/libsolidity/semanticTests/various/erc20.sol b/test/libsolidity/semanticTests/various/erc20.sol index 13b914d9b80b..d861792cb626 100644 --- a/test/libsolidity/semanticTests/various/erc20.sol +++ b/test/libsolidity/semanticTests/various/erc20.sol @@ -100,8 +100,8 @@ contract ERC20 { // gas irOptimized code: 236800 // gas legacy: 159957 // gas legacy code: 647600 -// gas legacyOptimized: 126934 -// gas legacyOptimized code: 282000 +// gas legacyOptimized: 126126 +// gas legacyOptimized code: 276000 // totalSupply() -> 20 // gas irOptimized: 23334 // gas legacy: 23519 @@ -110,22 +110,22 @@ contract ERC20 { // ~ emit Transfer(address,address,uint256): #0x1212121212121212121212121212120000000012, #0x02, 0x05 // gas irOptimized: 51054 // gas legacy: 52073 -// gas legacyOptimized: 51298 +// gas legacyOptimized: 51286 // decreaseAllowance(address,uint256): 2, 0 -> true // ~ emit Approval(address,address,uint256): #0x1212121212121212121212121212120000000012, #0x02, 0x00 // gas irOptimized: 26087 // gas legacy: 26977 -// gas legacyOptimized: 26279 +// gas legacyOptimized: 26255 // decreaseAllowance(address,uint256): 2, 1 -> FAILURE, hex"4e487b71", 0x11 // gas irOptimized: 23981 // gas legacy: 24462 -// gas legacyOptimized: 24056 +// gas legacyOptimized: 24044 // transfer(address,uint256): 2, 14 -> true // ~ emit Transfer(address,address,uint256): #0x1212121212121212121212121212120000000012, #0x02, 0x0e // gas irOptimized: 33954 // gas legacy: 34973 -// gas legacyOptimized: 34198 +// gas legacyOptimized: 34186 // transfer(address,uint256): 2, 2 -> FAILURE, hex"4e487b71", 0x11 // gas irOptimized: 24020 // gas legacy: 24445 -// gas legacyOptimized: 24052 +// gas legacyOptimized: 24040 diff --git a/test/libsolidity/semanticTests/various/negative_stack_height.sol b/test/libsolidity/semanticTests/various/negative_stack_height.sol index 44fd0089cf70..4477c5726a49 100644 --- a/test/libsolidity/semanticTests/various/negative_stack_height.sol +++ b/test/libsolidity/semanticTests/various/negative_stack_height.sol @@ -67,5 +67,5 @@ contract C { // constructor() -> // gas legacy: 92268 // gas legacy code: 483000 -// gas legacyOptimized: 75022 -// gas legacyOptimized code: 270000 +// gas legacyOptimized: 74716 +// gas legacyOptimized code: 267000 diff --git a/test/libsolidity/semanticTests/various/selfdestruct_post_cancun_multiple_beneficiaries.sol b/test/libsolidity/semanticTests/various/selfdestruct_post_cancun_multiple_beneficiaries.sol index 7629fabc1ce2..a266da1465ac 100644 --- a/test/libsolidity/semanticTests/various/selfdestruct_post_cancun_multiple_beneficiaries.sol +++ b/test/libsolidity/semanticTests/various/selfdestruct_post_cancun_multiple_beneficiaries.sol @@ -40,8 +40,8 @@ contract D { // gas irOptimized code: 119200 // gas legacy: 120439 // gas legacy code: 253800 -// gas legacyOptimized: 109015 -// gas legacyOptimized code: 130800 +// gas legacyOptimized: 108859 +// gas legacyOptimized code: 129000 // balance: 0x1111111111111111111111111111111111111111 -> 0 // balance: 0x2222222222222222222222222222222222222222 -> 0 // balance -> 2000000000000000000 @@ -51,8 +51,8 @@ contract D { // gas irOptimized code: 14000 // gas legacy: 122386 // gas legacy code: 43200 -// gas legacyOptimized: 121596 -// gas legacyOptimized code: 22800 +// gas legacyOptimized: 121564 +// gas legacyOptimized code: 22000 // exists() -> false // balance: 0x1111111111111111111111111111111111111111 -> 1000000000000000000 // balance: 0x2222222222222222222222222222222222222222 -> 0 diff --git a/test/libsolidity/semanticTests/various/selfdestruct_post_cancun_redeploy.sol b/test/libsolidity/semanticTests/various/selfdestruct_post_cancun_redeploy.sol index c9f50046c07d..3ade0c048703 100644 --- a/test/libsolidity/semanticTests/various/selfdestruct_post_cancun_redeploy.sol +++ b/test/libsolidity/semanticTests/various/selfdestruct_post_cancun_redeploy.sol @@ -83,12 +83,12 @@ contract D { // bytecodeFormat: legacy // ---- // constructor(), 1 ether -> -// gas irOptimized: 132974 -// gas irOptimized code: 293800 +// gas irOptimized: 132889 +// gas irOptimized code: 292800 // gas legacy: 151236 // gas legacy code: 533800 -// gas legacyOptimized: 131436 -// gas legacyOptimized code: 276600 +// gas legacyOptimized: 131368 +// gas legacyOptimized code: 275600 // exists() -> false // test_deploy_and_terminate() -> // ~ emit Deployed(address,bytes32) from 0x137aa4dfc0911524504fcd4d98501f179bc13b4a: 0x7e6580007e709ac52945fae182c61131d42634e8, 0x1234000000000000000000000000000000000000000000000000000000000000 @@ -96,7 +96,7 @@ contract D { // gas irOptimized code: 20800 // gas legacy: 97788 // gas legacy code: 20800 -// gas legacyOptimized: 96043 +// gas legacyOptimized: 96031 // gas legacyOptimized code: 20800 // exists() -> false // deploy_create2() ->