Click for a table of gas differences
reative = (ir_optimized - legacy_optimized) / legacy_optimized * 100
File name | IR-optimized | Legacy-Optimized | relative (%) |
---|---|---|---|
abiEncoderV1/abi_decode_v2_storage.sol | 193182 | 193405 | -0.115302 |
abiEncoderV1/abi_encode_calldata_slice.sol | 1034560 | 873928 | 18.3805 |
abiEncoderV1/struct/struct_storage_ptr.sol | 164315 | 162697 | 0.994487 |
abiEncoderV2/abi_encode_calldata_slice.sol | 1034560 | 873928 | 18.3805 |
abiEncoderV2/abi_encode_v2.sol | 109896 | 109206 | 0.631833 |
abiEncoderV2/abi_encode_v2_in_function_inherited_in_v1_contract.sol | 122140 | 112940 | 8.14592 |
abiEncoderV2/calldata_array.sol | 180119 | 124188 | 45.0374 |
abiEncoderV2/storage_array_encoding.sol | 279150 | 279892 | -0.265102 |
abiencodedecode/abi_decode_simple_storage.sol | 129822 | 130582 | -0.58201 |
array/arrays_complex_from_and_to_storage.sol | 197967 | 273594 | -27.6421 |
array/byte_array_storage_layout.sol | 133559 | 494254 | -72.9777 |
array/byte_array_transitional_2.sol | 302624 | 478672 | -36.7784 |
array/bytes_length_member.sol | 102890 | 102967 | -0.0747812 |
array/create_memory_array.sol | 140716 | 115494 | 21.8384 |
array/dynamic_array_cleanup.sol | 534460 | 499648 | 6.9673 |
array/dynamic_arrays_in_storage.sol | 270251 | 300117 | -9.95145 |
array/dynamic_multi_array_cleanup.sol | 167613 | 164387 | 1.96244 |
array/fixed_array_cleanup.sol | 423690 | 425520 | -0.430062 |
array/fixed_arrays_as_return_type.sol | 123426 | 135699 | -9.04428 |
array/function_array_cross_calls.sol | 308053 | 309013 | -0.310667 |
array/reusing_memory.sol | 113539 | 113679 | -0.123154 |
array/copying/array_copy_calldata_storage.sol | 611371 | 816813 | -25.1517 |
array/copying/array_copy_cleanup_uint128.sol | 107143 | 105857 | 1.21485 |
array/copying/array_copy_cleanup_uint40.sol | 231427 | 235988 | -1.93273 |
array/copying/array_copy_clear_storage.sol | 138745 | 137448 | 0.94363 |
array/copying/array_copy_clear_storage_packed.sol | 214377 | 211764 | 1.23392 |
array/copying/array_copy_different_packing.sol | 243969 | 275534 | -11.4559 |
array/copying/array_copy_including_array.sol | 4268285 | 3957585 | 7.85075 |
array/copying/array_copy_nested_array.sol | 608706 | 603688 | 0.831224 |
array/copying/array_copy_storage_storage_different_base.sol | 234330 | 235316 | -0.419011 |
array/copying/array_copy_storage_storage_different_base_nested.sol | 190244 | 200341 | -5.03991 |
array/copying/array_copy_storage_storage_dynamic_dynamic.sol | 264706 | 263160 | 0.587475 |
array/copying/array_copy_storage_storage_static_static.sol | 154016 | 153403 | 0.399601 |
array/copying/array_copy_storage_storage_struct.sol | 256334 | 254359 | 0.776462 |
array/copying/array_copy_storage_to_memory_nested.sol | 166546 | 158155 | 5.30555 |
array/copying/array_copy_target_leftover.sol | 210180 | 307826 | -31.7212 |
array/copying/array_copy_target_leftover2.sol | 104655 | 107000 | -2.19159 |
array/copying/array_copy_target_simple.sol | 287758 | 307699 | -6.48068 |
array/copying/array_copy_target_simple_2.sol | 263122 | 268753 | -2.09523 |
array/copying/array_nested_memory_to_storage.sol | 337896 | 336830 | 0.31648 |
array/copying/array_storage_multi_items_per_slot.sol | 129580 | 125440 | 3.30038 |
array/copying/arrays_from_and_to_storage.sol | 119266 | 123614 | -3.5174 |
array/copying/bytes_inside_mappings.sol | 266845 | 266902 | -0.0213562 |
array/copying/bytes_storage_to_storage.sol | 1747624 | 2243913 | -22.1171 |
array/copying/calldata_array_dynamic_to_storage.sol | 105004 | 105147 | -0.136 |
array/copying/copy_byte_array_in_struct_to_storage.sol | 172018 | 174188 | -1.24578 |
array/copying/copy_byte_array_to_storage.sol | 135138 | 134376 | 0.567066 |
array/copying/copy_function_storage_array.sol | 132312 | 211087 | -37.3187 |
array/copying/copy_removes_bytes_data.sol | 163547 | 163596 | -0.0299518 |
array/copying/memory_dyn_2d_bytes_to_storage.sol | 170040 | 178763 | -4.87965 |
array/copying/storage_memory_nested.sol | 210030 | 222886 | -5.76797 |
array/copying/storage_memory_nested_bytes.sol | 197860 | 198137 | -0.139802 |
array/copying/storage_memory_nested_from_pointer.sol | 210030 | 222891 | -5.77008 |
array/copying/storage_memory_nested_struct.sol | 286923 | 283163 | 1.32786 |
array/copying/storage_memory_packed_dyn.sol | 207268 | 236002 | -12.1753 |
array/delete/bytes_delete_element.sol | 513674 | 606411 | -15.2928 |
array/pop/array_pop_array_transition.sol | 2446995 | 2405396 | 1.7294 |
array/pop/array_pop_uint16_transition.sol | 523823 | 443170 | 18.1991 |
array/pop/array_pop_uint24_transition.sol | 364505 | 314681 | 15.8332 |
array/pop/byte_array_pop_copy_long.sol | 161057 | 242636 | -33.622 |
array/pop/byte_array_pop_long_storage_empty.sol | 431554 | 533164 | -19.0579 |
array/pop/byte_array_pop_long_storage_empty_garbage_ref.sol | 286650 | 366846 | -21.8609 |
array/pop/byte_array_pop_masking_long.sol | 158514 | 240361 | -34.0517 |
array/push/array_push.sol | 110689 | 110528 | 0.145664 |
array/push/array_push_nested_from_calldata.sol | 115893 | 116699 | -0.690666 |
array/push/array_push_packed_array.sol | 111700 | 106362 | 5.01871 |
array/push/array_push_struct.sol | 144559 | 188256 | -23.2115 |
array/push/array_push_struct_from_calldata.sol | 147300 | 146671 | 0.428851 |
array/push/byte_array_push_transition.sol | 383531 | 552524 | -30.5856 |
array/push/push_no_args_2d.sol | 495386 | 367676 | 34.7344 |
array/push/push_no_args_bytes.sol | 426189 | 415408 | 2.59528 |
constructor/arrays_in_constructors.sol | 447835 | 436724 | 2.54417 |
constructor/bytes_in_constructors_packer.sol | 306960 | 292281 | 5.02222 |
constructor/no_callvalue_check.sol | 123072 | 123092 | -0.016248 |
externalContracts/deposit_contract.sol | 2074318 | 2200275 | -5.7246 |
externalContracts/snark.sol | 117531 | 100147 | 17.3585 |
externalContracts/strings.sol | 3111553 | 3186823 | -2.36191 |
functionCall/failed_create.sol | 1033889 | 1002828 | 3.09734 |
functionCall/mapping_array_internal_argument.sol | 109620 | 107981 | 1.51786 |
functionTypes/store_function.sol | 102903 | 112116 | -8.21738 |
immutable/multi_creation.sol | 129983 | 127822 | 1.69063 |
inlineAssembly/keccak_yul_optimization.sol | 43593 | 44348 | -1.70244 |
salted_create/salted_create.sol | 98438950 | 98438970 | -2.03172e-05 |
salted_create/salted_create_with_value.sol | 269592 | 287256 | -6.14922 |
storage/packed_storage_structs_bytes.sol | 142641 | 133280 | 7.02356 |
structs/memory_structs_nested_load.sol | 111022 | 106281 | 4.46082 |
structs/struct_containing_bytes_copy_and_delete.sol | 124142 | 124179 | -0.0297957 |
structs/struct_copy.sol | 206686 | 206628 | 0.0280698 |
structs/struct_copy_via_local.sol | 104544 | 101306 | 3.19626 |
structs/struct_delete_storage_with_array.sol | 122704 | 125500 | -2.22789 |
structs/struct_memory_to_storage_function_ptr.sol | 105192 | 105148 | 0.0418458 |
structs/structs.sol | 127289 | 126964 | 0.255978 |
structs/calldata/calldata_struct_with_nested_array_to_storage.sol | 197116 | 196983 | 0.0675185 |
various/destructuring_assignment.sol | 239257 | 238582 | 0.282922 |
various/skip_dynamic_types_for_structs.sol | 169485 | 171209 | -1.00696 |
various/staticcall_for_view_and_pure.sol | 196877285 | 196877231 | 2.74283e-05 |
various/swap_in_storage_overwrite.sol | 101334 | 101282 | 0.0513418 |
viaYul/array_memory_index_access.sol | 151952 | 152638 | -0.449429 |
viaYul/array_storage_index_access.sol | 33786138 | 32024655 | 5.5004 |
viaYul/array_storage_index_boundary_test.sol | 1312900 | 1258372 | 4.33322 |
viaYul/array_storage_index_zeroed_test.sol | 9467636 | 9135188 | 3.6392 |
viaYul/array_storage_length_access.sol | 7022440 | 10062538 | -30.212 |
viaYul/array_storage_push_empty.sol | 1425186 | 1391856 | 2.39464 |
viaYul/array_storage_push_empty_length_address.sol | 10675834 | 10220612 | 4.45396 |
viaYul/array_storage_push_pop.sol | 29599646 | 25374036 | 16.6533 |
inheritance/inherited_function_calldata_memory_interface.sol | 112021 | 117351 | -4.54193 |