Merge pull request #14468 from ethereum/push0-rematerializer-default-sequence

Push0 rematerializer default sequence
This commit is contained in:
Daniel 2023-09-04 19:27:33 +02:00 committed by GitHub
commit e43968599e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
121 changed files with 309 additions and 666 deletions

View File

@ -6,6 +6,7 @@ Language Features:
Compiler Features: Compiler Features:
* Parser: Remove the experimental error recovery mode (``--error-recovery`` / ``settings.parserErrorRecovery``). * Parser: Remove the experimental error recovery mode (``--error-recovery`` / ``settings.parserErrorRecovery``).
* Yul Optimizer: If ``PUSH0`` is supported, favor zero literals over storing zero values in variables. * Yul Optimizer: If ``PUSH0`` is supported, favor zero literals over storing zero values in variables.
* Yul Optimizer: Run the ``Rematerializer`` and ``UnusedPruner`` steps at the end of the default clean-up sequence.
Bugfixes: Bugfixes:

View File

@ -338,7 +338,7 @@ You can override this sequence and supply your own using the ``--yul-optimizatio
.. code-block:: bash .. code-block:: bash
solc --optimize --ir-optimized --yul-optimizations 'dhfoD[xarrscLMcCTU]uljmul:fDnTOc' solc --optimize --ir-optimized --yul-optimizations 'dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu'
The order of steps is significant and affects the quality of the output. The order of steps is significant and affects the quality of the output.
Moreover, applying a step may uncover new optimization opportunities for others that were already applied, Moreover, applying a step may uncover new optimization opportunities for others that were already applied,

View File

@ -59,7 +59,7 @@ struct OptimiserSettings
"]" "]"
"jmul[jul] VcTOcul jmul"; // Make source short and pretty "jmul[jul] VcTOcul jmul"; // Make source short and pretty
static char constexpr DefaultYulOptimiserCleanupSteps[] = "fDnTOc"; static char constexpr DefaultYulOptimiserCleanupSteps[] = "fDnTOcmu";
/// No optimisations at all - not recommended. /// No optimisations at all - not recommended.
static OptimiserSettings none() static OptimiserSettings none()

View File

@ -101,7 +101,7 @@ object "C_59" {
mstore(add(memPtr_1, _3), "longstringlongstringlongstringlo") mstore(add(memPtr_1, _3), "longstringlongstringlongstringlo")
mstore(add(memPtr_1, _9), "ngstringlongstringlongstringlong") mstore(add(memPtr_1, _9), "ngstringlongstringlongstringlong")
let _11 := 96 let _11 := 96
mstore(add(memPtr_1, _11), "stringlongstringlongstringlongst") mstore(add(memPtr_1, 96), "stringlongstringlongstringlongst")
mstore(add(memPtr_1, 128), "ring") mstore(add(memPtr_1, 128), "ring")
let memPos := mload(_9) let memPos := mload(_9)
mstore(memPos, _10) mstore(memPos, _10)
@ -113,8 +113,8 @@ object "C_59" {
{ {
mstore(add(add(memPos, i), _11), mload(add(add(memPtr_1, i), _3))) mstore(add(add(memPos, i), _11), mload(add(add(memPtr_1, i), _3)))
} }
mstore(add(add(memPos, length), _11), 0) mstore(add(add(memPos, length), 96), 0)
return(memPos, add(sub(add(memPos, and(add(length, 31), _8)), memPos), _11)) return(memPos, add(sub(add(memPos, and(add(length, 31), _8)), memPos), 96))
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -19,7 +19,7 @@ object "Arraysum_34" {
/// @src 0:80:429 "contract Arraysum {..." /// @src 0:80:429 "contract Arraysum {..."
mstore(64, memoryguard(0x80)) mstore(64, memoryguard(0x80))
let _1 := 4 let _1 := 4
if iszero(lt(calldatasize(), _1)) if iszero(lt(calldatasize(), 4))
{ {
if eq(0x81d73423, shr(224, calldataload(0))) if eq(0x81d73423, shr(224, calldataload(0)))
{ {
@ -27,8 +27,8 @@ object "Arraysum_34" {
if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let var_sum := 0 let var_sum := 0
/// @src 0:368:378 "uint i = 0" /// @src 0:368:378 "uint i = 0"
let var_i := /** @src 0:80:429 "contract Arraysum {..." */ var_sum let var_i := /** @src 0:80:429 "contract Arraysum {..." */ 0
let _2 := sload(var_sum) let _2 := sload(0)
/// @src 0:364:423 "for(uint i = 0; i < values.length; i++)..." /// @src 0:364:423 "for(uint i = 0; i < values.length; i++)..."
for { } for { }
/** @src 0:380:397 "i < values.length" */ lt(var_i, _2) /** @src 0:380:397 "i < values.length" */ lt(var_i, _2)

View File

@ -112,8 +112,8 @@ sub_0: assembly {
dup1 dup1
revert revert
tag_8: tag_8:
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
jumpi(tag_12, slt(add(not(0x03), calldatasize), 0x00)) jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
sload(0x00) sload(0x00)
sub(shl(0xff, 0x01), 0x01) sub(shl(0xff, 0x01), 0x01)
dup2 dup2
@ -122,36 +122,39 @@ sub_0: assembly {
jumpi jumpi
0x01 0x01
add add
swap1
dup2
0x00 0x00
dup2
swap1
sstore sstore
dup1 dup2
mload mload
shl(0xe4, 0x026121ff) shl(0xe4, 0x026121ff)
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
dup2 dup2
mstore mstore
0x20
/* \"C\":403:407 this */
dup2
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
swap2
swap1
/* \"C\":403:411 this.f() */
0x20
/* \"C\":79:428 contract C... */
dup4
0x04 0x04
/* \"C\":403:407 this */
dup2 dup2
/* \"C\":403:407 this */
address address
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
gas gas
staticcall staticcall
swap1 swap3
dup2 dup4
iszero iszero
tag_16 tag_16
jumpi jumpi
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
0x00 0x00
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
swap2 swap4
tag_18 tag_18
jumpi jumpi
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
@ -159,14 +162,14 @@ sub_0: assembly {
/* \"C\":392:411 stateVar + this.f() */ /* \"C\":392:411 stateVar + this.f() */
pop pop
tag_20 tag_20
/* \"C\":392:422 stateVar + this.f() + immutVar */
tag_21
/* \"C\":392:411 stateVar + this.f() */
swap2
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
0x20 0x20
/* \"C\":392:411 stateVar + this.f() */ /* \"C\":392:411 stateVar + this.f() */
swap5 swap4
/* \"C\":392:422 stateVar + this.f() + immutVar */
tag_21
/* \"C\":392:411 stateVar + this.f() */
swap3
tag_1 tag_1
jump\t// in jump\t// in
tag_20: tag_20:
@ -186,13 +189,10 @@ sub_0: assembly {
return return
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
tag_18: tag_18:
swap1 swap3
pop
0x20 0x20
returndatasize jumpi(tag_22, gt(0x20, returndatasize))
dup2
gt
tag_22
jumpi
tag_23: tag_23:
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
0x1f 0x1f
@ -200,12 +200,12 @@ sub_0: assembly {
add add
not(0x1f) not(0x1f)
and and
dup4 dup5
add add
0xffffffffffffffff 0xffffffffffffffff
dup2 dup2
gt gt
dup5 dup6
dup3 dup3
lt lt
or or
@ -215,9 +215,9 @@ sub_0: assembly {
0x20 0x20
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
swap2 swap2
dup5 dup6
swap2 swap2
dup7 dup6
mstore mstore
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
dup2 dup2
@ -227,26 +227,26 @@ sub_0: assembly {
slt slt
tag_26 tag_26
jumpi jumpi
pop swap2
mload mload
swap2
/* \"C\":392:411 stateVar + this.f() */ /* \"C\":392:411 stateVar + this.f() */
tag_20 tag_20
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
jump(tag_19) jump(tag_19)
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
tag_26: tag_26:
0x00
dup1 dup1
revert revert
tag_24: tag_24:
/* \"C\":117:119 41 */
shl(0xe0, 0x4e487b71) shl(0xe0, 0x4e487b71)
dup4 /* \"C\":79:428 contract C... */
0x00
mstore mstore
mstore(0x04, 0x41) mstore(0x04, 0x41)
0x24 revert(0x00, 0x24)
/* \"C\":117:119 41 */
dup4
/* \"C\":79:428 contract C... */
revert
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
tag_22: tag_22:
pop pop
@ -281,14 +281,10 @@ sub_0: assembly {
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */
revert revert
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
tag_12:
0x00
dup1
revert
tag_6: tag_6:
pop pop
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
jumpi(tag_12, slt(add(not(0x03), calldatasize), 0x00)) jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
0x20 0x20
swap1 swap1
sload(0x00) sload(0x00)
@ -299,8 +295,8 @@ sub_0: assembly {
mstore mstore
return return
tag_4: tag_4:
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
jumpi(tag_12, slt(add(not(0x03), calldatasize), 0x00)) jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
/* \"C\":290:298 immutVar */ /* \"C\":290:298 immutVar */
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\") immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */
@ -481,8 +477,8 @@ sub_0: assembly {
dup1 dup1
revert revert
tag_8: tag_8:
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
jumpi(tag_12, slt(add(not(0x03), calldatasize), 0x00)) jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
sload(0x00) sload(0x00)
sub(shl(0xff, 0x01), 0x01) sub(shl(0xff, 0x01), 0x01)
dup2 dup2
@ -491,36 +487,39 @@ sub_0: assembly {
jumpi jumpi
0x01 0x01
add add
swap1
dup2
0x00 0x00
dup2
swap1
sstore sstore
dup1 dup2
mload mload
shl(0xe4, 0x026121ff) shl(0xe4, 0x026121ff)
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
dup2 dup2
mstore mstore
0x20
/* \"C\":403:407 this */
dup2
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
swap2
swap1
/* \"C\":403:411 this.f() */
0x20
/* \"D\":91:166 contract D is C(3)... */
dup4
0x04 0x04
/* \"C\":403:407 this */
dup2 dup2
/* \"C\":403:407 this */
address address
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
gas gas
staticcall staticcall
swap1 swap3
dup2 dup4
iszero iszero
tag_16 tag_16
jumpi jumpi
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
0x00 0x00
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
swap2 swap4
tag_18 tag_18
jumpi jumpi
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
@ -528,14 +527,14 @@ sub_0: assembly {
/* \"C\":392:411 stateVar + this.f() */ /* \"C\":392:411 stateVar + this.f() */
pop pop
tag_20 tag_20
/* \"C\":392:422 stateVar + this.f() + immutVar */
tag_21
/* \"C\":392:411 stateVar + this.f() */
swap2
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
0x20 0x20
/* \"C\":392:411 stateVar + this.f() */ /* \"C\":392:411 stateVar + this.f() */
swap5 swap4
/* \"C\":392:422 stateVar + this.f() + immutVar */
tag_21
/* \"C\":392:411 stateVar + this.f() */
swap3
tag_1 tag_1
jump\t// in jump\t// in
tag_20: tag_20:
@ -555,13 +554,10 @@ sub_0: assembly {
return return
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
tag_18: tag_18:
swap1 swap3
pop
0x20 0x20
returndatasize jumpi(tag_22, gt(0x20, returndatasize))
dup2
gt
tag_22
jumpi
tag_23: tag_23:
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
0x1f 0x1f
@ -569,12 +565,12 @@ sub_0: assembly {
add add
not(0x1f) not(0x1f)
and and
dup4 dup5
add add
0xffffffffffffffff 0xffffffffffffffff
dup2 dup2
gt gt
dup5 dup6
dup3 dup3
lt lt
or or
@ -584,9 +580,9 @@ sub_0: assembly {
0x20 0x20
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
swap2 swap2
dup5 dup6
swap2 swap2
dup7 dup6
mstore mstore
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
dup2 dup2
@ -596,26 +592,26 @@ sub_0: assembly {
slt slt
tag_26 tag_26
jumpi jumpi
pop swap2
mload mload
swap2
/* \"C\":392:411 stateVar + this.f() */ /* \"C\":392:411 stateVar + this.f() */
tag_20 tag_20
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
jump(tag_19) jump(tag_19)
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
tag_26: tag_26:
0x00
dup1 dup1
revert revert
tag_24: tag_24:
/* \"C\":117:119 41 */
shl(0xe0, 0x4e487b71) shl(0xe0, 0x4e487b71)
dup4 /* \"D\":91:166 contract D is C(3)... */
0x00
mstore mstore
mstore(0x04, 0x41) mstore(0x04, 0x41)
0x24 revert(0x00, 0x24)
/* \"C\":117:119 41 */
dup4
/* \"D\":91:166 contract D is C(3)... */
revert
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
tag_22: tag_22:
pop pop
@ -650,14 +646,10 @@ sub_0: assembly {
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */
revert revert
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
tag_12:
0x00
dup1
revert
tag_6: tag_6:
pop pop
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
jumpi(tag_12, slt(add(not(0x03), calldatasize), 0x00)) jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
0x20 0x20
swap1 swap1
sload(0x00) sload(0x00)
@ -668,8 +660,8 @@ sub_0: assembly {
mstore mstore
return return
tag_4: tag_4:
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
jumpi(tag_12, slt(add(not(0x03), calldatasize), 0x00)) jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
/* \"C\":290:298 immutVar */ /* \"C\":290:298 immutVar */
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\") immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */

View File

@ -714,19 +714,19 @@ object \"C_54\" {
if _7 if _7
{ {
let _8 := 32 let _8 := 32
if gt(_8, returndatasize()) { _8 := returndatasize() } if gt(32, returndatasize()) { _8 := returndatasize() }
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
let newFreePtr := add(_6, and(add(_8, 31), not(31))) let newFreePtr := add(_6, and(add(_8, 31), not(31)))
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _6)) if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _6))
{ {
mstore(expr, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(expr, 0x24) revert(0, 0x24)
} }
mstore(_2, newFreePtr) mstore(_2, newFreePtr)
if slt(sub(/** @src 0:410:418 \"this.f()\" */ add(_6, _8), /** @src 0:79:435 \"contract C...\" */ _6), /** @src 0:410:418 \"this.f()\" */ 32) if slt(sub(/** @src 0:410:418 \"this.f()\" */ add(_6, _8), /** @src 0:79:435 \"contract C...\" */ _6), /** @src 0:410:418 \"this.f()\" */ 32)
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
{ revert(expr, expr) } { revert(0, 0) }
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
expr := /** @src 0:79:435 \"contract C...\" */ mload(_6) expr := /** @src 0:79:435 \"contract C...\" */ mload(_6)
} }
@ -1559,19 +1559,19 @@ object \"D_72\" {
if _7 if _7
{ {
let _8 := 32 let _8 := 32
if gt(_8, returndatasize()) { _8 := returndatasize() } if gt(32, returndatasize()) { _8 := returndatasize() }
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"
let newFreePtr := add(_6, and(add(_8, 31), not(31))) let newFreePtr := add(_6, and(add(_8, 31), not(31)))
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _6)) if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _6))
{ {
mstore(expr, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(expr, 0x24) revert(0, 0x24)
} }
mstore(_2, newFreePtr) mstore(_2, newFreePtr)
if slt(sub(/** @src 0:410:418 \"this.f()\" */ add(_6, _8), /** @src 1:91:166 \"contract D is C(3)...\" */ _6), /** @src 0:410:418 \"this.f()\" */ 32) if slt(sub(/** @src 0:410:418 \"this.f()\" */ add(_6, _8), /** @src 1:91:166 \"contract D is C(3)...\" */ _6), /** @src 0:410:418 \"this.f()\" */ 32)
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"
{ revert(expr, expr) } { revert(0, 0) }
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
expr := /** @src 1:91:166 \"contract D is C(3)...\" */ mload(_6) expr := /** @src 1:91:166 \"contract D is C(3)...\" */ mload(_6)
} }

View File

@ -9,21 +9,16 @@
{ {
"assembly": " /* \"A\":16:17 */ "assembly": " /* \"A\":16:17 */
0x01 0x01
dup1
/* \"A\":27:28 */ /* \"A\":27:28 */
0x00 0x00
/* \"A\":20:32 */ /* \"A\":20:32 */
sstore sstore
/* \"A\":50:51 */ /* \"A\":50:51 */
0x02 0x02
dup1
/* \"A\":61:63 */ /* \"A\":61:63 */
0x20 0x20
/* \"A\":54:67 */ /* \"A\":54:67 */
sstore sstore
/* \"A\":0:72 */
pop
pop
" "
} }
} }

View File

@ -15,7 +15,6 @@ object "C_6" {
code { code {
{ {
mstore(64, 128) mstore(64, 128)
pop(iszero(lt(calldatasize(), 4)))
sstore(0, iszero(calldatasize())) sstore(0, iszero(calldatasize()))
revert(0, 0) revert(0, 0)
} }

View File

@ -117,24 +117,23 @@ sub_0: assembly {
tag_3: tag_3:
jumpi(tag_7, callvalue) jumpi(tag_7, callvalue)
jumpi(tag_7, slt(add(not(0x03), calldatasize), 0x00)) jumpi(tag_7, slt(add(not(0x03), calldatasize), 0x00))
not(0x1f)
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */ /* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
dataSize(sub_0) dataSize(sub_0)
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */ /* "viair_subobject_optimization/input.sol":669:772 contract D {... */
swap1
not(0x1f)
dup1
0x3f 0x3f
dup5 dup2
add add
and
dup3 dup3
add and
swap2
dup1
dup4 dup4
add
swap1
dup4
dup3
lt lt
0xffffffffffffffff 0xffffffffffffffff
dup5 dup4
gt gt
or or
tag_9 tag_9
@ -142,55 +141,60 @@ sub_0: assembly {
swap3 swap3
swap1 swap1
0x40 0x40
swap3 swap1
dup4 0x40
mstore mstore
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */ /* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
dup2 dup4
dup5 dup3
mstore mstore
0x20 0x20
swap2 swap4
dataOffset(sub_0) dataOffset(sub_0)
dup4 0x20
dup7 dup5
add add
codecopy codecopy
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */ /* "viair_subobject_optimization/input.sol":669:772 contract D {... */
dup3 mload(0x40)
mload
swap4
dup3
dup6
swap4 swap4
dup5 dup5
swap3
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
0x20
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */
dup5
mstore mstore
dup2 dup1
mload mload
swap2 swap3
dup3 dup4
dup3 /* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
0x20
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */
dup7 dup7
add add
mstore mstore
0x00 0x00
tag_11: tag_11:
dup4 dup5
dup2 dup2
lt lt
tag_12 tag_12
jumpi jumpi
pop dup6
pop 0x40
dup2
dup10
0x1f
dup10
0x00 0x00
dup5 dup6
dup4 dup3
add
dup7 dup7
add add
add
mstore mstore
pop
0x1f
add add
and and
dup2 dup2
@ -200,22 +204,22 @@ sub_0: assembly {
swap1 swap1
return return
tag_12: tag_12:
dup2 dup3
dup2 dup2
add add
dup4 dup5
add add
mload mload
dup9 dup9
dup3 dup3
add add
dup9 dup4
add add
mstore mstore
dup8 dup8
swap6 swap6
pop pop
dup3 dup4
add add
jump(tag_11) jump(tag_11)
tag_9: tag_9:

View File

@ -9,7 +9,6 @@ object "C_6" {
{ {
revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb()
} }
constructor_C()
let _1 := allocate_unbounded() let _1 := allocate_unbounded()
codecopy(_1, dataoffset("C_6_deployed"), datasize("C_6_deployed")) codecopy(_1, dataoffset("C_6_deployed"), datasize("C_6_deployed"))
return(_1, datasize("C_6_deployed")) return(_1, datasize("C_6_deployed"))
@ -17,97 +16,10 @@ object "C_6" {
function allocate_unbounded() -> memPtr function allocate_unbounded() -> memPtr
{ {
let memPtr_1 := mload(64) let memPtr_1 := mload(64)
let memPtr_2 := memPtr_1
let memPtr_3 := memPtr_1
let memPtr_4 := memPtr_1
let memPtr_5 := memPtr_1
let memPtr_6 := memPtr_1
let memPtr_7 := memPtr_1
let memPtr_8 := memPtr_1
let memPtr_9 := memPtr_1
let memPtr_10 := memPtr_1
let memPtr_11 := memPtr_1
let memPtr_12 := memPtr_1
let memPtr_13 := memPtr_1
let memPtr_14 := memPtr_1
let memPtr_15 := memPtr_1
let memPtr_16 := memPtr_1
let memPtr_17 := memPtr_1
let memPtr_18 := memPtr_1
let memPtr_19 := memPtr_1
let memPtr_20 := memPtr_1
let memPtr_21 := memPtr_1
let memPtr_22 := memPtr_1
let memPtr_23 := memPtr_1
let memPtr_24 := memPtr_1
let memPtr_25 := memPtr_1
let memPtr_26 := memPtr_1
let memPtr_27 := memPtr_1
let memPtr_28 := memPtr_1
let memPtr_29 := memPtr_1
let memPtr_30 := memPtr_1
let memPtr_31 := memPtr_1
let memPtr_32 := memPtr_1
let memPtr_33 := memPtr_1
let memPtr_34 := memPtr_1
let memPtr_35 := memPtr_1
let memPtr_36 := memPtr_1
let memPtr_37 := memPtr_1
let memPtr_38 := memPtr_1
let memPtr_39 := memPtr_1
let memPtr_40 := memPtr_1
let memPtr_41 := memPtr_1
let memPtr_42 := memPtr_1
let memPtr_43 := memPtr_1
let memPtr_44 := memPtr_1
let memPtr_45 := memPtr_1
let memPtr_46 := memPtr_1
let memPtr_47 := memPtr_1
let memPtr_48 := memPtr_1
let memPtr_49 := memPtr_1
let memPtr_50 := memPtr_1
let memPtr_51 := memPtr_1
let memPtr_52 := memPtr_1
let memPtr_53 := memPtr_1
let memPtr_54 := memPtr_1
let memPtr_55 := memPtr_1
let memPtr_56 := memPtr_1
let memPtr_57 := memPtr_1
let memPtr_58 := memPtr_1
let memPtr_59 := memPtr_1
let memPtr_60 := memPtr_1
let memPtr_61 := memPtr_1
let memPtr_62 := memPtr_1
let memPtr_63 := memPtr_1
let memPtr_64 := memPtr_1
let memPtr_65 := memPtr_1
let memPtr_66 := memPtr_1
let memPtr_67 := memPtr_1
let memPtr_68 := memPtr_1
let memPtr_69 := memPtr_1
let memPtr_70 := memPtr_1
let memPtr_71 := memPtr_1
let memPtr_72 := memPtr_1
let memPtr_73 := memPtr_1
let memPtr_74 := memPtr_1
let memPtr_75 := memPtr_1
let memPtr_76 := memPtr_1
let memPtr_77 := memPtr_1
let memPtr_78 := memPtr_1
let memPtr_79 := memPtr_1
let memPtr_80 := memPtr_1
let memPtr_81 := memPtr_1
let memPtr_82 := memPtr_1
let memPtr_83 := memPtr_1
let memPtr_84 := memPtr_1
let memPtr_85 := memPtr_1
let memPtr_86 := memPtr_1
memPtr := memPtr_1 memPtr := memPtr_1
} }
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb()
{ revert(0, 0) } { revert(0, 0) }
function constructor_C()
{ }
} }
/// @use-src 0:"yul_optimizer_steps_nested_brackets/input.sol" /// @use-src 0:"yul_optimizer_steps_nested_brackets/input.sol"
object "C_6_deployed" { object "C_6_deployed" {
@ -125,181 +37,11 @@ object "C_6" {
function shift_right_unsigned(value) -> newValue function shift_right_unsigned(value) -> newValue
{ {
let newValue_1 := shr(224, value) let newValue_1 := shr(224, value)
let newValue_2 := newValue_1
let newValue_3 := newValue_1
let newValue_4 := newValue_1
let newValue_5 := newValue_1
let newValue_6 := newValue_1
let newValue_7 := newValue_1
let newValue_8 := newValue_1
let newValue_9 := newValue_1
let newValue_10 := newValue_1
let newValue_11 := newValue_1
let newValue_12 := newValue_1
let newValue_13 := newValue_1
let newValue_14 := newValue_1
let newValue_15 := newValue_1
let newValue_16 := newValue_1
let newValue_17 := newValue_1
let newValue_18 := newValue_1
let newValue_19 := newValue_1
let newValue_20 := newValue_1
let newValue_21 := newValue_1
let newValue_22 := newValue_1
let newValue_23 := newValue_1
let newValue_24 := newValue_1
let newValue_25 := newValue_1
let newValue_26 := newValue_1
let newValue_27 := newValue_1
let newValue_28 := newValue_1
let newValue_29 := newValue_1
let newValue_30 := newValue_1
let newValue_31 := newValue_1
let newValue_32 := newValue_1
let newValue_33 := newValue_1
let newValue_34 := newValue_1
let newValue_35 := newValue_1
let newValue_36 := newValue_1
let newValue_37 := newValue_1
let newValue_38 := newValue_1
let newValue_39 := newValue_1
let newValue_40 := newValue_1
let newValue_41 := newValue_1
let newValue_42 := newValue_1
let newValue_43 := newValue_1
let newValue_44 := newValue_1
let newValue_45 := newValue_1
let newValue_46 := newValue_1
let newValue_47 := newValue_1
let newValue_48 := newValue_1
let newValue_49 := newValue_1
let newValue_50 := newValue_1
let newValue_51 := newValue_1
let newValue_52 := newValue_1
let newValue_53 := newValue_1
let newValue_54 := newValue_1
let newValue_55 := newValue_1
let newValue_56 := newValue_1
let newValue_57 := newValue_1
let newValue_58 := newValue_1
let newValue_59 := newValue_1
let newValue_60 := newValue_1
let newValue_61 := newValue_1
let newValue_62 := newValue_1
let newValue_63 := newValue_1
let newValue_64 := newValue_1
let newValue_65 := newValue_1
let newValue_66 := newValue_1
let newValue_67 := newValue_1
let newValue_68 := newValue_1
let newValue_69 := newValue_1
let newValue_70 := newValue_1
let newValue_71 := newValue_1
let newValue_72 := newValue_1
let newValue_73 := newValue_1
let newValue_74 := newValue_1
let newValue_75 := newValue_1
let newValue_76 := newValue_1
let newValue_77 := newValue_1
let newValue_78 := newValue_1
let newValue_79 := newValue_1
let newValue_80 := newValue_1
let newValue_81 := newValue_1
let newValue_82 := newValue_1
let newValue_83 := newValue_1
let newValue_84 := newValue_1
let newValue_85 := newValue_1
let newValue_86 := newValue_1
newValue := newValue_1 newValue := newValue_1
} }
function allocate_unbounded() -> memPtr function allocate_unbounded() -> memPtr
{ {
let memPtr_1 := mload(64) let memPtr_1 := mload(64)
let memPtr_2 := memPtr_1
let memPtr_3 := memPtr_1
let memPtr_4 := memPtr_1
let memPtr_5 := memPtr_1
let memPtr_6 := memPtr_1
let memPtr_7 := memPtr_1
let memPtr_8 := memPtr_1
let memPtr_9 := memPtr_1
let memPtr_10 := memPtr_1
let memPtr_11 := memPtr_1
let memPtr_12 := memPtr_1
let memPtr_13 := memPtr_1
let memPtr_14 := memPtr_1
let memPtr_15 := memPtr_1
let memPtr_16 := memPtr_1
let memPtr_17 := memPtr_1
let memPtr_18 := memPtr_1
let memPtr_19 := memPtr_1
let memPtr_20 := memPtr_1
let memPtr_21 := memPtr_1
let memPtr_22 := memPtr_1
let memPtr_23 := memPtr_1
let memPtr_24 := memPtr_1
let memPtr_25 := memPtr_1
let memPtr_26 := memPtr_1
let memPtr_27 := memPtr_1
let memPtr_28 := memPtr_1
let memPtr_29 := memPtr_1
let memPtr_30 := memPtr_1
let memPtr_31 := memPtr_1
let memPtr_32 := memPtr_1
let memPtr_33 := memPtr_1
let memPtr_34 := memPtr_1
let memPtr_35 := memPtr_1
let memPtr_36 := memPtr_1
let memPtr_37 := memPtr_1
let memPtr_38 := memPtr_1
let memPtr_39 := memPtr_1
let memPtr_40 := memPtr_1
let memPtr_41 := memPtr_1
let memPtr_42 := memPtr_1
let memPtr_43 := memPtr_1
let memPtr_44 := memPtr_1
let memPtr_45 := memPtr_1
let memPtr_46 := memPtr_1
let memPtr_47 := memPtr_1
let memPtr_48 := memPtr_1
let memPtr_49 := memPtr_1
let memPtr_50 := memPtr_1
let memPtr_51 := memPtr_1
let memPtr_52 := memPtr_1
let memPtr_53 := memPtr_1
let memPtr_54 := memPtr_1
let memPtr_55 := memPtr_1
let memPtr_56 := memPtr_1
let memPtr_57 := memPtr_1
let memPtr_58 := memPtr_1
let memPtr_59 := memPtr_1
let memPtr_60 := memPtr_1
let memPtr_61 := memPtr_1
let memPtr_62 := memPtr_1
let memPtr_63 := memPtr_1
let memPtr_64 := memPtr_1
let memPtr_65 := memPtr_1
let memPtr_66 := memPtr_1
let memPtr_67 := memPtr_1
let memPtr_68 := memPtr_1
let memPtr_69 := memPtr_1
let memPtr_70 := memPtr_1
let memPtr_71 := memPtr_1
let memPtr_72 := memPtr_1
let memPtr_73 := memPtr_1
let memPtr_74 := memPtr_1
let memPtr_75 := memPtr_1
let memPtr_76 := memPtr_1
let memPtr_77 := memPtr_1
let memPtr_78 := memPtr_1
let memPtr_79 := memPtr_1
let memPtr_80 := memPtr_1
let memPtr_81 := memPtr_1
let memPtr_82 := memPtr_1
let memPtr_83 := memPtr_1
let memPtr_84 := memPtr_1
let memPtr_85 := memPtr_1
let memPtr_86 := memPtr_1
memPtr := memPtr_1 memPtr := memPtr_1
} }
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb()
@ -316,91 +58,6 @@ object "C_6" {
function abi_encode_tuple(headStart) -> tail function abi_encode_tuple(headStart) -> tail
{ {
let tail_1 := add(headStart, 0) let tail_1 := add(headStart, 0)
let tail_2 := tail_1
let tail_3 := tail_1
let tail_4 := tail_1
let tail_5 := tail_1
let tail_6 := tail_1
let tail_7 := tail_1
let tail_8 := tail_1
let tail_9 := tail_1
let tail_10 := tail_1
let tail_11 := tail_1
let tail_12 := tail_1
let tail_13 := tail_1
let tail_14 := tail_1
let tail_15 := tail_1
let tail_16 := tail_1
let tail_17 := tail_1
let tail_18 := tail_1
let tail_19 := tail_1
let tail_20 := tail_1
let tail_21 := tail_1
let tail_22 := tail_1
let tail_23 := tail_1
let tail_24 := tail_1
let tail_25 := tail_1
let tail_26 := tail_1
let tail_27 := tail_1
let tail_28 := tail_1
let tail_29 := tail_1
let tail_30 := tail_1
let tail_31 := tail_1
let tail_32 := tail_1
let tail_33 := tail_1
let tail_34 := tail_1
let tail_35 := tail_1
let tail_36 := tail_1
let tail_37 := tail_1
let tail_38 := tail_1
let tail_39 := tail_1
let tail_40 := tail_1
let tail_41 := tail_1
let tail_42 := tail_1
let tail_43 := tail_1
let tail_44 := tail_1
let tail_45 := tail_1
let tail_46 := tail_1
let tail_47 := tail_1
let tail_48 := tail_1
let tail_49 := tail_1
let tail_50 := tail_1
let tail_51 := tail_1
let tail_52 := tail_1
let tail_53 := tail_1
let tail_54 := tail_1
let tail_55 := tail_1
let tail_56 := tail_1
let tail_57 := tail_1
let tail_58 := tail_1
let tail_59 := tail_1
let tail_60 := tail_1
let tail_61 := tail_1
let tail_62 := tail_1
let tail_63 := tail_1
let tail_64 := tail_1
let tail_65 := tail_1
let tail_66 := tail_1
let tail_67 := tail_1
let tail_68 := tail_1
let tail_69 := tail_1
let tail_70 := tail_1
let tail_71 := tail_1
let tail_72 := tail_1
let tail_73 := tail_1
let tail_74 := tail_1
let tail_75 := tail_1
let tail_76 := tail_1
let tail_77 := tail_1
let tail_78 := tail_1
let tail_79 := tail_1
let tail_80 := tail_1
let tail_81 := tail_1
let tail_82 := tail_1
let tail_83 := tail_1
let tail_84 := tail_1
let tail_85 := tail_1
let tail_86 := tail_1
tail := tail_1 tail := tail_1
} }
function external_fun_f() function external_fun_f()
@ -410,16 +67,12 @@ object "C_6" {
revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb()
} }
abi_decode(4, calldatasize()) abi_decode(4, calldatasize())
fun_f()
let memPos := allocate_unbounded() let memPos := allocate_unbounded()
let memEnd := abi_encode_tuple(memPos) let memEnd := abi_encode_tuple(memPos)
return(memPos, sub(memEnd, memPos)) return(memPos, sub(memEnd, memPos))
} }
function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74()
{ revert(0, 0) } { revert(0, 0) }
/// @ast-id 5 @src 0:74:101 "function f() public pure {}"
function fun_f()
{ }
} }
data ".metadata" hex"<BYTECODE REMOVED>" data ".metadata" hex"<BYTECODE REMOVED>"
} }

View File

@ -6,8 +6,7 @@ object "C_8" {
/// @src 0:80:221 "contract C {..." /// @src 0:80:221 "contract C {..."
mstore(64, memoryguard(0x80)) mstore(64, memoryguard(0x80))
/// @src 0:129:213 "assembly (\"memory-safe\") {..." /// @src 0:129:213 "assembly (\"memory-safe\") {..."
let usr$a := 0 revert(0, 0)
revert(usr$a, usr$a)
} }
} }
/// @use-src 0:"yul_optimizer_steps_short_sequence/input.sol" /// @use-src 0:"yul_optimizer_steps_short_sequence/input.sol"

View File

@ -17,9 +17,9 @@ contract C {
// optimize-yul: true // optimize-yul: true
// ---- // ----
// creation: // creation:
// codeDepositCost: 638600 // codeDepositCost: 639000
// executionCost: 668 // executionCost: 668
// totalCost: 639268 // totalCost: 639668
// external: // external:
// a(): 2283 // a(): 2283
// b(uint256): 4649 // b(uint256): 4649

View File

@ -59,10 +59,10 @@ contract C {
// EVMVersion: >homestead // EVMVersion: >homestead
// ---- // ----
// test_bytes() -> // test_bytes() ->
// gas irOptimized: 360827 // gas irOptimized: 360863
// gas legacy: 411269 // gas legacy: 411269
// gas legacyOptimized: 317754 // gas legacyOptimized: 317754
// test_uint256() -> // test_uint256() ->
// gas irOptimized: 509533 // gas irOptimized: 509677
// gas legacy: 577469 // gas legacy: 577469
// gas legacyOptimized: 440931 // gas legacyOptimized: 441003

View File

@ -24,6 +24,6 @@ contract C {
// ---- // ----
// library: L // library: L
// f() -> 8, 7, 1, 2, 7, 12 // f() -> 8, 7, 1, 2, 7, 12
// gas irOptimized: 166467 // gas irOptimized: 166475
// gas legacy: 169283 // gas legacy: 169283
// gas legacyOptimized: 167248 // gas legacyOptimized: 167248

View File

@ -60,10 +60,10 @@ contract C {
// EVMVersion: >homestead // EVMVersion: >homestead
// ---- // ----
// test_bytes() -> // test_bytes() ->
// gas irOptimized: 360827 // gas irOptimized: 360863
// gas legacy: 411269 // gas legacy: 411269
// gas legacyOptimized: 317754 // gas legacyOptimized: 317754
// test_uint256() -> // test_uint256() ->
// gas irOptimized: 509533 // gas irOptimized: 509677
// gas legacy: 577469 // gas legacy: 577469
// gas legacyOptimized: 440931 // gas legacyOptimized: 441003

View File

@ -30,6 +30,6 @@ contract C is B {
} }
// ---- // ----
// test() -> 77 // test() -> 77
// gas irOptimized: 110325 // gas irOptimized: 110348
// gas legacy: 151866 // gas legacy: 151866
// gas legacyOptimized: 110359 // gas legacyOptimized: 110373

View File

@ -20,6 +20,6 @@ contract C {
// f(uint256[][1]): 32, 32, 0 -> true // f(uint256[][1]): 32, 32, 0 -> true
// f(uint256[][1]): 32, 32, 1, 42 -> true // f(uint256[][1]): 32, 32, 1, 42 -> true
// f(uint256[][1]): 32, 32, 8, 421, 422, 423, 424, 425, 426, 427, 428 -> true // f(uint256[][1]): 32, 32, 8, 421, 422, 423, 424, 425, 426, 427, 428 -> true
// gas irOptimized: 126849 // gas irOptimized: 126851
// gas legacy: 139800 // gas legacy: 139800
// gas legacyOptimized: 119092 // gas legacyOptimized: 119092

View File

@ -18,7 +18,7 @@ contract C {
// EVMVersion: >homestead // EVMVersion: >homestead
// ---- // ----
// h(uint256[2][]): 0x20, 3, 123, 124, 223, 224, 323, 324 -> 32, 256, 0x20, 3, 123, 124, 223, 224, 323, 324 // h(uint256[2][]): 0x20, 3, 123, 124, 223, 224, 323, 324 -> 32, 256, 0x20, 3, 123, 124, 223, 224, 323, 324
// gas irOptimized: 180808 // gas irOptimized: 180720
// gas legacy: 184830 // gas legacy: 184830
// gas legacyOptimized: 181493 // gas legacyOptimized: 181493
// i(uint256[2][2]): 123, 124, 223, 224 -> 32, 128, 123, 124, 223, 224 // i(uint256[2][2]): 123, 124, 223, 224 -> 32, 128, 123, 124, 223, 224

View File

@ -8,6 +8,6 @@ contract C {
} }
// ---- // ----
// f(bytes): 0x20, 0x80, 0x21, 0x40, 0x7, "abcdefg" -> 0x21, 0x40, 0x7, "abcdefg" // f(bytes): 0x20, 0x80, 0x21, 0x40, 0x7, "abcdefg" -> 0x21, 0x40, 0x7, "abcdefg"
// gas irOptimized: 135662 // gas irOptimized: 135661
// gas legacy: 137278 // gas legacy: 137278
// gas legacyOptimized: 136048 // gas legacyOptimized: 136048

View File

@ -26,7 +26,7 @@ contract C {
// index(uint256): 10 -> true // index(uint256): 10 -> true
// index(uint256): 20 -> true // index(uint256): 20 -> true
// index(uint256): 0xFF -> true // index(uint256): 0xFF -> true
// gas irOptimized: 135060 // gas irOptimized: 135066
// gas legacy: 241703 // gas legacy: 241703
// gas legacyOptimized: 151613 // gas legacyOptimized: 151613
// accessIndex(uint256,int256): 10, 1 -> 2 // accessIndex(uint256,int256): 10, 1 -> 2

View File

@ -52,18 +52,18 @@ contract C {
// ---- // ----
// test_zeroed_indicies(uint256): 1 -> // test_zeroed_indicies(uint256): 1 ->
// test_zeroed_indicies(uint256): 5 -> // test_zeroed_indicies(uint256): 5 ->
// gas irOptimized: 131804 // gas irOptimized: 131809
// gas legacy: 132804 // gas legacy: 132804
// gas legacyOptimized: 130649 // gas legacyOptimized: 130649
// test_zeroed_indicies(uint256): 10 -> // test_zeroed_indicies(uint256): 10 ->
// gas irOptimized: 225692 // gas irOptimized: 225696
// gas legacy: 227786 // gas legacy: 227786
// gas legacyOptimized: 223830 // gas legacyOptimized: 223830
// test_zeroed_indicies(uint256): 15 -> // test_zeroed_indicies(uint256): 15 ->
// gas irOptimized: 323700 // gas irOptimized: 323704
// gas legacy: 326902 // gas legacy: 326902
// gas legacyOptimized: 321206 // gas legacyOptimized: 321206
// test_zeroed_indicies(uint256): 0xFF -> // test_zeroed_indicies(uint256): 0xFF ->
// gas irOptimized: 5112496 // gas irOptimized: 5112500
// gas legacy: 5165874 // gas legacy: 5165874
// gas legacyOptimized: 5062182 // gas legacyOptimized: 5062182

View File

@ -12,7 +12,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 // 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: 186554 // gas irOptimized: 186557
// gas legacy: 211054 // gas legacy: 211054
// gas legacyOptimized: 206042 // gas legacyOptimized: 206042
// data(uint256,uint256): 0x02, 0x02 -> 0x09 // data(uint256,uint256): 0x02, 0x02 -> 0x09

View File

@ -13,7 +13,7 @@ contract c {
// ---- // ----
// getLength() -> 0 // getLength() -> 0
// set(): 1, 2 -> true // set(): 1, 2 -> true
// gas irOptimized: 110392 // gas irOptimized: 110393
// gas legacy: 110952 // gas legacy: 110952
// gas legacyOptimized: 110579 // gas legacyOptimized: 110576
// getLength() -> 68 // getLength() -> 68

View File

@ -20,7 +20,7 @@ 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 // 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: 648319 // gas irOptimized: 648315
// gas legacy: 694356 // gas legacy: 694356
// gas legacyOptimized: 693864 // gas legacyOptimized: 693864
// retrieve() -> 9, 28, 9, 28, 4, 3, 32 // retrieve() -> 9, 28, 9, 28, 4, 3, 32

View File

@ -46,6 +46,6 @@ contract C {
} }
// ---- // ----
// f() -> true // f() -> true
// gas irOptimized: 117261 // gas irOptimized: 117264
// gas legacy: 124660 // gas legacy: 124660
// gas legacyOptimized: 122801 // gas legacyOptimized: 122801

View File

@ -18,6 +18,6 @@ contract c {
} }
// ---- // ----
// test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x05000000000000000000000000000000000000000000000000 // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x05000000000000000000000000000000000000000000000000
// gas irOptimized: 208053 // gas irOptimized: 208074
// gas legacy: 221769 // gas legacy: 221769
// gas legacyOptimized: 220611 // gas legacyOptimized: 220611

View File

@ -12,6 +12,6 @@ contract c {
} }
// ---- // ----
// test(uint256[2][]): 32, 3, 7, 8, 9, 10, 11, 12 -> 10 // test(uint256[2][]): 32, 3, 7, 8, 9, 10, 11, 12 -> 10
// gas irOptimized: 689654 // gas irOptimized: 689656
// gas legacy: 686178 // gas legacy: 686178
// gas legacyOptimized: 685628 // gas legacyOptimized: 685628

View File

@ -17,6 +17,6 @@ contract c {
} }
// ---- // ----
// test() -> 5, 4 // test() -> 5, 4
// gas irOptimized: 205045 // gas irOptimized: 205044
// gas legacy: 213863 // gas legacy: 213863
// gas legacyOptimized: 212902 // gas legacyOptimized: 212902

View File

@ -21,6 +21,6 @@ contract c {
} }
// ---- // ----
// test() -> 3, 4 // test() -> 3, 4
// gas irOptimized: 169586 // gas irOptimized: 169565
// gas legacy: 175424 // gas legacy: 175424
// gas legacyOptimized: 172535 // gas legacyOptimized: 172535

View File

@ -11,6 +11,6 @@ contract c {
} }
// ---- // ----
// test() -> 9, 4 // test() -> 9, 4
// gas irOptimized: 123136 // gas irOptimized: 123135
// gas legacy: 123567 // gas legacy: 123567
// gas legacyOptimized: 123202 // gas legacyOptimized: 123202

View File

@ -17,6 +17,6 @@ contract c {
} }
// ---- // ----
// test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000 // test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 104534 // gas irOptimized: 104526
// gas legacy: 166874 // gas legacy: 166874
// gas legacyOptimized: 145474 // gas legacyOptimized: 145474

View File

@ -18,6 +18,6 @@ contract c {
} }
// ---- // ----
// test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x0 // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x0
// gas irOptimized: 273564 // gas irOptimized: 273563
// gas legacy: 283666 // gas legacy: 283666
// gas legacyOptimized: 282023 // gas legacyOptimized: 282023

View File

@ -18,6 +18,6 @@ contract c {
} }
// ---- // ----
// test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x00 // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x00
// gas irOptimized: 233271 // gas irOptimized: 233255
// gas legacy: 236523 // gas legacy: 236523
// gas legacyOptimized: 235592 // gas legacyOptimized: 235592

View File

@ -42,6 +42,6 @@ contract c {
// test2(uint256[][2]): 0x20, 0x40, 0x40, 2, 23, 42 -> 2, 65 // test2(uint256[][2]): 0x20, 0x40, 0x40, 2, 23, 42 -> 2, 65
// gas irOptimized: 157544 // gas irOptimized: 157544
// test3(uint256[2][]): 0x20, 2, 23, 42, 23, 42 -> 2, 65 // test3(uint256[2][]): 0x20, 2, 23, 42, 23, 42 -> 2, 65
// gas irOptimized: 134629 // gas irOptimized: 134634
// test4(uint256[2][2]): 23, 42, 23, 42 -> 65 // test4(uint256[2][2]): 23, 42, 23, 42 -> 65
// gas irOptimized: 111252 // gas irOptimized: 111252

View File

@ -44,6 +44,6 @@ contract Test {
// test1() -> 3 // test1() -> 3
// test2() -> 6 // test2() -> 6
// test3() -> 24 // test3() -> 24
// gas irOptimized: 141223 // gas irOptimized: 141225
// gas legacy: 142238 // gas legacy: 142238
// gas legacyOptimized: 141365 // gas legacyOptimized: 141365

View File

@ -17,4 +17,4 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// f((uint128,uint64,uint128)[]): 0x20, 3, 0, 0, 12, 0, 11, 0, 10, 0, 0 -> 10, 11, 12 // f((uint128,uint64,uint128)[]): 0x20, 3, 0, 0, 12, 0, 11, 0, 10, 0, 0 -> 10, 11, 12
// gas irOptimized: 119691 // gas irOptimized: 119704

View File

@ -19,4 +19,4 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// f() -> 10, 11, 12 // f() -> 10, 11, 12
// gas irOptimized: 118360 // gas irOptimized: 118362

View File

@ -26,4 +26,4 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// f() -> 3, 3, 3, 1 // f() -> 3, 3, 3, 1
// gas irOptimized: 181894 // gas irOptimized: 181890

View File

@ -7,11 +7,11 @@ contract c {
// set(uint256): 1, 2 -> true // set(uint256): 1, 2 -> true
// gas irOptimized: 110558 // gas irOptimized: 110558
// gas legacy: 111312 // gas legacy: 111312
// gas legacyOptimized: 110744 // gas legacyOptimized: 110741
// set(uint256): 2, 2, 3, 4, 5 -> true // set(uint256): 2, 2, 3, 4, 5 -> true
// gas irOptimized: 177509 // gas irOptimized: 177509
// gas legacy: 178314 // gas legacy: 178314
// gas legacyOptimized: 177719 // gas legacyOptimized: 177716
// storageEmpty -> 0 // storageEmpty -> 0
// copy(uint256,uint256): 1, 2 -> true // copy(uint256,uint256): 1, 2 -> true
// storageEmpty -> 0 // storageEmpty -> 0

View File

@ -17,25 +17,25 @@ contract c {
// ---- // ----
// f(uint256): 0 -> 0x20, 0x00 // f(uint256): 0 -> 0x20, 0x00
// f(uint256): 31 -> 0x20, 0x1f, 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e00 // f(uint256): 31 -> 0x20, 0x1f, 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e00
// gas irOptimized: 109839 // gas irOptimized: 109219
// gas legacy: 123948 // gas legacy: 123948
// gas legacyOptimized: 118948 // gas legacyOptimized: 118948
// f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671 // f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671
// gas irOptimized: 124049 // gas irOptimized: 123858
// gas legacy: 140362 // gas legacy: 140362
// gas legacyOptimized: 135386 // gas legacyOptimized: 135384
// f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000 // f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 130665 // gas irOptimized: 130468
// gas legacy: 147916 // gas legacy: 147916
// gas legacyOptimized: 142278 // gas legacyOptimized: 142276
// f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992 // f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992
// gas irOptimized: 139545 // gas irOptimized: 139168
// gas legacy: 171136 // gas legacy: 171136
// gas legacyOptimized: 161538 // gas legacyOptimized: 161536
// f(uint256): 12 -> 0x20, 0x0c, 0x0102030405060708090a0b0000000000000000000000000000000000000000 // f(uint256): 12 -> 0x20, 0x0c, 0x0102030405060708090a0b0000000000000000000000000000000000000000
// gas legacy: 59345 // gas legacy: 59345
// gas legacyOptimized: 57279 // gas legacyOptimized: 57279
// f(uint256): 129 -> 0x20, 0x81, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f, 29063324697304692433803953038474361308315562010425523193971352996434451193439, 0x606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f, -57896044618658097711785492504343953926634992332820282019728792003956564819968 // f(uint256): 129 -> 0x20, 0x81, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f, 29063324697304692433803953038474361308315562010425523193971352996434451193439, 0x606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f, -57896044618658097711785492504343953926634992332820282019728792003956564819968
// gas irOptimized: 442421 // gas irOptimized: 441648
// gas legacy: 505021 // gas legacy: 505021
// gas legacyOptimized: 486997 // gas legacyOptimized: 486995

View File

@ -9,6 +9,6 @@ contract C {
} }
// ---- // ----
// f(uint256[]): 0x20, 0x03, 0x1, 0x2, 0x3 -> 0x1 // f(uint256[]): 0x20, 0x03, 0x1, 0x2, 0x3 -> 0x1
// gas irOptimized: 110962 // gas irOptimized: 110968
// gas legacy: 111551 // gas legacy: 111551
// gas legacyOptimized: 111339 // gas legacyOptimized: 111339

View File

@ -14,4 +14,4 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// from_calldata(uint8[][]): 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14 -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14 // from_calldata(uint8[][]): 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14 -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14
// gas irOptimized: 139685 // gas irOptimized: 139683

View File

@ -35,11 +35,11 @@ contract C {
} }
// ---- // ----
// f() -> 0x40, 0x80, 6, 0x6162636465660000000000000000000000000000000000000000000000000000, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000 // f() -> 0x40, 0x80, 6, 0x6162636465660000000000000000000000000000000000000000000000000000, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000
// gas irOptimized: 179734 // gas irOptimized: 179750
// gas legacy: 181001 // gas legacy: 181001
// gas legacyOptimized: 180018 // gas legacyOptimized: 180018
// g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000 // g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000
// gas irOptimized: 106663 // gas irOptimized: 106679
// gas legacy: 109720 // gas legacy: 109720
// gas legacyOptimized: 106932 // gas legacyOptimized: 106932
// h() -> 0x40, 0x60, 0x00, 0x00 // h() -> 0x40, 0x60, 0x00, 0x00

View File

@ -15,6 +15,6 @@ contract C {
} }
// ---- // ----
// test() -> 7 // test() -> 7
// gas irOptimized: 122456 // gas irOptimized: 122455
// gas legacy: 205176 // gas legacy: 205176
// gas legacyOptimized: 204971 // gas legacyOptimized: 204971

View File

@ -7,9 +7,9 @@ contract c {
} }
// ---- // ----
// set(): 1, 2, 3, 4, 5 -> true // set(): 1, 2, 3, 4, 5 -> true
// gas irOptimized: 177375 // gas irOptimized: 177376
// gas legacy: 177954 // gas legacy: 177954
// gas legacyOptimized: 177553 // gas legacyOptimized: 177550
// storageEmpty -> 0 // storageEmpty -> 0
// reset() -> true // reset() -> true
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -20,7 +20,7 @@ contract sender {
// (): 7 -> // (): 7 ->
// gas irOptimized: 110831 // gas irOptimized: 110831
// gas legacy: 111388 // gas legacy: 111388
// gas legacyOptimized: 111070 // gas legacyOptimized: 111065
// val() -> 0 // val() -> 0
// forward(bool): true -> true // forward(bool): true -> true
// val() -> 0x80 // val() -> 0x80

View File

@ -31,8 +31,8 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// test1((uint8[],uint8[2])[][][]): 0x20, 1, 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 -> 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 // test1((uint8[],uint8[2])[][][]): 0x20, 1, 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 -> 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29
// gas irOptimized: 327847 // gas irOptimized: 327874
// test2((uint8[],uint8[2])[][1][]): 0x20, 2, 0x40, 0x0160, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13, 0x20, 1, 0x20, 0x60, 31, 37, 2, 23, 29 -> 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13 // test2((uint8[],uint8[2])[][1][]): 0x20, 2, 0x40, 0x0160, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13, 0x20, 1, 0x20, 0x60, 31, 37, 2, 23, 29 -> 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13
// gas irOptimized: 140870 // gas irOptimized: 140879
// test3((uint8[],uint8[2])[1][][2]): 0x20, 0x40, 0x60, 0, 2, 0x40, 288, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 2, 0x40, 288, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 // test3((uint8[],uint8[2])[1][][2]): 0x20, 0x40, 0x60, 0, 2, 0x40, 288, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 2, 0x40, 288, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13
// gas irOptimized: 188517 // gas irOptimized: 188535

View File

@ -31,8 +31,8 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// test1((uint8[],uint8[2])[][][]): 0x20, 1, 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 -> 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 // test1((uint8[],uint8[2])[][][]): 0x20, 1, 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 -> 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29
// gas irOptimized: 332666 // gas irOptimized: 332660
// test2((uint8[],uint8[2])[][1][]): 0x20, 2, 0x40, 0x0160, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13, 0x20, 1, 0x20, 0x60, 31, 37, 2, 23, 29 -> 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13 // test2((uint8[],uint8[2])[][1][]): 0x20, 2, 0x40, 0x0160, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13, 0x20, 1, 0x20, 0x60, 31, 37, 2, 23, 29 -> 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13
// gas irOptimized: 145152 // gas irOptimized: 145150
// test3((uint8[],uint8[2])[1][][2]): 0x20, 0x40, 0x60, 0, 2, 0x40, 288, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 2, 0x40, 288, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 // test3((uint8[],uint8[2])[1][][2]): 0x20, 0x40, 0x60, 0, 2, 0x40, 288, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 2, 0x40, 288, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13
// gas irOptimized: 192602 // gas irOptimized: 192598

View File

@ -46,11 +46,11 @@ contract C {
} }
// ---- // ----
// test() -> 0x20, 0x14, "[a called][b called]" // test() -> 0x20, 0x14, "[a called][b called]"
// gas irOptimized: 116633 // gas irOptimized: 116645
// gas legacy: 118936 // gas legacy: 118936
// gas legacyOptimized: 116975 // gas legacyOptimized: 116975
// test2() -> 0x20, 0x14, "[b called][a called]" // test2() -> 0x20, 0x14, "[b called][a called]"
// test3() -> 0x20, 0x14, "[b called][a called]" // test3() -> 0x20, 0x14, "[b called][a called]"
// gas irOptimized: 103243 // gas irOptimized: 103246
// gas legacy: 102745 // gas legacy: 102745
// gas legacyOptimized: 101669 // gas legacyOptimized: 101669

View File

@ -18,6 +18,6 @@ contract C {
} }
// ---- // ----
// f() -> 3 // f() -> 3
// gas irOptimized: 128264 // gas irOptimized: 128094
// gas legacy: 130584 // gas legacy: 130584
// gas legacyOptimized: 129028 // gas legacyOptimized: 129028

View File

@ -70,7 +70,7 @@ contract C {
} }
// ---- // ----
// test1() -> // test1() ->
// gas irOptimized: 150460 // gas irOptimized: 150468
// gas legacy: 150949 // gas legacy: 150949
// gas legacyOptimized: 150906 // gas legacyOptimized: 150906
// test2() -> FAILURE // test2() -> FAILURE

View File

@ -29,8 +29,8 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// test1((uint8[],uint8[2])[][]): 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 -> 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 // test1((uint8[],uint8[2])[][]): 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 -> 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29
// gas irOptimized: 304720 // gas irOptimized: 304747
// test2((uint8[],uint8[2])[][1]): 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13 // test2((uint8[],uint8[2])[][1]): 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13
// gas irOptimized: 116455 // gas irOptimized: 116464
// test3((uint8[],uint8[2])[1][]): 0x20, 2, 0x40, 0x0120, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 2, 0x40, 0x0120, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 // test3((uint8[],uint8[2])[1][]): 0x20, 2, 0x40, 0x0120, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 2, 0x40, 0x0120, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13
// gas irOptimized: 188006 // gas irOptimized: 188024

View File

@ -29,8 +29,8 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// test1((uint8[],uint8[2])[][]): 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 -> 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 // test1((uint8[],uint8[2])[][]): 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29 -> 0x20, 2, 0x40, 0x0140, 1, 0x20, 0x60, 3, 7, 2, 1, 2, 2, 0x40, 0x0100, 0x60, 17, 19, 2, 11, 13, 0x60, 31, 37, 2, 23, 29
// gas irOptimized: 309077 // gas irOptimized: 309074
// test2((uint8[],uint8[2])[][1]): 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13 // test2((uint8[],uint8[2])[][1]): 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 0x20, 1, 0x20, 0x60, 17, 19, 2, 11, 13
// gas irOptimized: 118258 // gas irOptimized: 118256
// test3((uint8[],uint8[2])[1][]): 0x20, 2, 0x40, 0x0120, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 2, 0x40, 0x0120, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 // test3((uint8[],uint8[2])[1][]): 0x20, 2, 0x40, 0x0120, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13 -> 0x20, 2, 0x40, 0x0120, 0x20, 0x60, 3, 7, 2, 1, 2, 0x20, 0x60, 17, 19, 2, 11, 13
// gas irOptimized: 190997 // gas irOptimized: 190993

View File

@ -32,5 +32,5 @@ contract C {
// test(uint8[][][]): 0x20, 2, 0x40, 0x60, 0, 2, 0x40, 0x80, 1, 7, 2, 8, 9 // test(uint8[][][]): 0x20, 2, 0x40, 0x60, 0, 2, 0x40, 0x80, 1, 7, 2, 8, 9
// gas irOptimized: 138040 // gas irOptimized: 138040
// test2(uint8[][]): 0x20, 2, 0x40, 0x80, 1, 7, 2, 8, 9 // test2(uint8[][]): 0x20, 2, 0x40, 0x80, 1, 7, 2, 8, 9
// gas irOptimized: 164248 // gas irOptimized: 164246
// gas legacyOptimized: 120228 // gas legacyOptimized: 120228

View File

@ -17,6 +17,6 @@ contract C {
} }
// ---- // ----
// f() -> 1, 2, 3, 4, 5, 6, 7 // f() -> 1, 2, 3, 4, 5, 6, 7
// gas irOptimized: 205881 // gas irOptimized: 205879
// gas legacy: 212237 // gas legacy: 212237
// gas legacyOptimized: 211425 // gas legacyOptimized: 211425

View File

@ -11,6 +11,6 @@ contract C {
} }
// ---- // ----
// f() -> 0x20, 0x02, 0x40, 0x80, 3, 0x6162630000000000000000000000000000000000000000000000000000000000, 0x99, 44048183304486788312148433451363384677562265908331949128489393215789685032262, 32241931068525137014058842823026578386641954854143559838526554899205067598957, 49951309422467613961193228765530489307475214998374779756599339590522149884499, 0x54555658595a6162636465666768696a6b6c6d6e6f707172737475767778797a, 0x4142434445464748494a4b4c4d4e4f5051525354555658595a00000000000000 // f() -> 0x20, 0x02, 0x40, 0x80, 3, 0x6162630000000000000000000000000000000000000000000000000000000000, 0x99, 44048183304486788312148433451363384677562265908331949128489393215789685032262, 32241931068525137014058842823026578386641954854143559838526554899205067598957, 49951309422467613961193228765530489307475214998374779756599339590522149884499, 0x54555658595a6162636465666768696a6b6c6d6e6f707172737475767778797a, 0x4142434445464748494a4b4c4d4e4f5051525354555658595a00000000000000
// gas irOptimized: 202735 // gas irOptimized: 202731
// gas legacy: 204798 // gas legacy: 204798
// gas legacyOptimized: 203357 // gas legacyOptimized: 203357

View File

@ -18,6 +18,6 @@ contract C {
} }
// ---- // ----
// f() -> 1, 2, 3, 4, 5, 6, 7 // f() -> 1, 2, 3, 4, 5, 6, 7
// gas irOptimized: 205881 // gas irOptimized: 205879
// gas legacy: 212242 // gas legacy: 212242
// gas legacyOptimized: 211430 // gas legacyOptimized: 211430

View File

@ -13,6 +13,6 @@ contract C {
} }
// ---- // ----
// f() -> 2, 3, 4 // f() -> 2, 3, 4
// gas irOptimized: 109698 // gas irOptimized: 109702
// gas legacy: 126129 // gas legacy: 126129
// gas legacyOptimized: 120622 // gas legacyOptimized: 120622

View File

@ -18,6 +18,6 @@ contract C {
} }
// ---- // ----
// f() -> "A", 8, 4, "B" // f() -> "A", 8, 4, "B"
// gas irOptimized: 125819 // gas irOptimized: 125822
// gas legacy: 121382 // gas legacy: 121382
// gas legacyOptimized: 115488 // gas legacyOptimized: 115488

View File

@ -16,6 +16,6 @@ contract c {
} }
// ---- // ----
// test1() -> true // test1() -> true
// gas irOptimized: 206386 // gas irOptimized: 206388
// gas legacy: 254056 // gas legacy: 254056
// gas legacyOptimized: 246892 // gas legacyOptimized: 246892

View File

@ -18,6 +18,6 @@ contract B {
} }
// ---- // ----
// f() -> 2, 3, 4, 5, 6, 1000, 1001, 1002, 1003, 1004 // f() -> 2, 3, 4, 5, 6, 1000, 1001, 1002, 1003, 1004
// gas irOptimized: 114204 // gas irOptimized: 114404
// gas legacy: 230001 // gas legacy: 230001
// gas legacyOptimized: 130637 // gas legacyOptimized: 130637

View File

@ -42,6 +42,6 @@ contract C {
} }
// ---- // ----
// test() -> 5, 6, 7 // test() -> 5, 6, 7
// gas irOptimized: 256077 // gas irOptimized: 256288
// gas legacy: 441556 // gas legacy: 441556
// gas legacyOptimized: 279321 // gas legacyOptimized: 279321

View File

@ -40,9 +40,9 @@ contract C {
// copyFromStorageShort() // copyFromStorageShort()
// x() -> 0x20, 3, 0x6162630000000000000000000000000000000000000000000000000000000000 // x() -> 0x20, 3, 0x6162630000000000000000000000000000000000000000000000000000000000
// copyFromStorageLong() // copyFromStorageLong()
// gas irOptimized: 121104 // gas irOptimized: 121106
// gas legacy: 121904 // gas legacy: 121904
// gas legacyOptimized: 121400 // gas legacyOptimized: 121398
// x() -> 0x20, 0x25, 0x3132333435363738393031323334353637383930313233343536373839303132, 0x3334353637000000000000000000000000000000000000000000000000000000 // x() -> 0x20, 0x25, 0x3132333435363738393031323334353637383930313233343536373839303132, 0x3334353637000000000000000000000000000000000000000000000000000000
// copyToStorage() // copyToStorage()
// x() -> 0x20, 0x25, 0x3132333435363738393031323334353637383930313233343536373839303132, 0x3334353637000000000000000000000000000000000000000000000000000000 // x() -> 0x20, 0x25, 0x3132333435363738393031323334353637383930313233343536373839303132, 0x3334353637000000000000000000000000000000000000000000000000000000

View File

@ -18,7 +18,7 @@ contract c {
} }
// ---- // ----
// test() -> 38, 28, 18 // test() -> 38, 28, 18
// gas irOptimized: 148543 // gas irOptimized: 148538
// gas legacy: 151184 // gas legacy: 151184
// gas legacyOptimized: 142418 // gas legacyOptimized: 142418
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -18,7 +18,7 @@ contract c {
} }
// ---- // ----
// test() -> 20, 10 // test() -> 20, 10
// gas irOptimized: 126072 // gas irOptimized: 126068
// gas legacy: 127216 // gas legacy: 127216
// gas legacyOptimized: 122224 // gas legacyOptimized: 122224
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -9,6 +9,6 @@ contract c {
} }
// ---- // ----
// test() -> 0x20, 33, 0x303030303030303030303030303030303030303030303030303030303030303, 0x0300000000000000000000000000000000000000000000000000000000000000 // test() -> 0x20, 33, 0x303030303030303030303030303030303030303030303030303030303030303, 0x0300000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 107976 // gas irOptimized: 107962
// gas legacy: 125420 // gas legacy: 125420
// gas legacyOptimized: 122472 // gas legacyOptimized: 122472

View File

@ -12,6 +12,6 @@ contract C {
} }
// ---- // ----
// f(uint120[]): 0x20, 3, 1, 2, 3 -> 1 // f(uint120[]): 0x20, 3, 1, 2, 3 -> 1
// gas irOptimized: 112813 // gas irOptimized: 112812
// gas legacy: 113659 // gas legacy: 113659
// gas legacyOptimized: 113482 // gas legacyOptimized: 113482

View File

@ -20,6 +20,6 @@ contract c {
} }
// ---- // ----
// test() -> 2, 3, 4, 5 // test() -> 2, 3, 4, 5
// gas irOptimized: 135082 // gas irOptimized: 135103
// gas legacy: 147443 // gas legacy: 147443
// gas legacyOptimized: 146434 // gas legacyOptimized: 146434

View File

@ -16,6 +16,6 @@ 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 // 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: 137031 // gas irOptimized: 137061
// gas legacy: 142423 // gas legacy: 142423
// gas legacyOptimized: 137993 // gas legacyOptimized: 137991

View File

@ -13,6 +13,6 @@ contract C {
} }
// ---- // ----
// f() -> // f() ->
// gas irOptimized: 179110 // gas irOptimized: 179112
// gas legacy: 181014 // gas legacy: 181014
// gas legacyOptimized: 180422 // gas legacyOptimized: 180422

View File

@ -21,7 +21,7 @@ contract C {
// ---- // ----
// l() -> 0 // l() -> 0
// g(uint256): 70 -> // g(uint256): 70 ->
// gas irOptimized: 182707 // gas irOptimized: 182328
// gas legacy: 183445 // gas legacy: 183445
// gas legacyOptimized: 178995 // gas legacyOptimized: 178995
// l() -> 70 // l() -> 70

View File

@ -28,9 +28,9 @@ contract C {
// compileViaYul: also // compileViaYul: also
// ---- // ----
// constructor() -> // constructor() ->
// gas irOptimized: 442530 // gas irOptimized: 443406
// gas legacy: 711299 // gas legacy: 711299
// gas legacyOptimized: 481296 // gas legacyOptimized: 482382
// h() -> 0x20, 0x40, 0x00, 0 // h() -> 0x20, 0x40, 0x00, 0
// ~ emit ev(uint256[],uint256): 0x40, 0x21, 0x02, 0x00, 0x00 // ~ emit ev(uint256[],uint256): 0x40, 0x21, 0x02, 0x00, 0x00
// g() -> 0x20, 0x40, 0, 0x00 // g() -> 0x20, 0x40, 0, 0x00

View File

@ -9,9 +9,9 @@ contract c {
// EVMVersion: >=byzantium // EVMVersion: >=byzantium
// ---- // ----
// (): 1, 2, 3, 4, 5 -> // (): 1, 2, 3, 4, 5 ->
// gas irOptimized: 155131 // gas irOptimized: 155130
// gas legacy: 155473 // gas legacy: 155473
// gas legacyOptimized: 155298 // gas legacyOptimized: 155295
// checkIfDataIsEmpty() -> false // checkIfDataIsEmpty() -> false
// sendMessage() -> true, 0x40, 0 // sendMessage() -> true, 0x40, 0
// checkIfDataIsEmpty() -> true // checkIfDataIsEmpty() -> true

View File

@ -24,6 +24,6 @@ contract Creator {
} }
// ---- // ----
// f(uint256,address[]): 7, 0x40, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 -> 7, 8 // f(uint256,address[]): 7, 0x40, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 -> 7, 8
// gas irOptimized: 424508 // gas irOptimized: 424526
// gas legacy: 581443 // gas legacy: 581443
// gas legacyOptimized: 444588 // gas legacyOptimized: 444599

View File

@ -24,6 +24,6 @@ contract Creator {
} }
// ---- // ----
// f(uint256,bytes): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" -> 7, "h" // f(uint256,bytes): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" -> 7, "h"
// gas irOptimized: 275487 // gas irOptimized: 275102
// gas legacy: 418462 // gas legacy: 418462
// gas legacyOptimized: 291760 // gas legacyOptimized: 291960

View File

@ -8,8 +8,8 @@ contract Test {
} }
// ---- // ----
// constructor(): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" -> // constructor(): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" ->
// gas irOptimized: 268145 // gas irOptimized: 269225
// gas legacy: 311324 // gas legacy: 311324
// gas legacyOptimized: 258388 // gas legacyOptimized: 258604
// m_x() -> 7 // m_x() -> 7
// m_s() -> 0x20, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" // m_s() -> 0x20, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz"

View File

@ -9,9 +9,9 @@ contract C {
} }
// ---- // ----
// constructor(): 1, 2, 3, 4 -> // constructor(): 1, 2, 3, 4 ->
// gas irOptimized: 170999 // gas irOptimized: 171015
// gas legacy: 218378 // gas legacy: 218378
// gas legacyOptimized: 176195 // gas legacyOptimized: 176211
// a() -> 1 // a() -> 1
// b(uint256): 0 -> 2 // b(uint256): 0 -> 2
// b(uint256): 1 -> 3 // b(uint256): 1 -> 3

View File

@ -15,7 +15,7 @@ contract C {
} }
// ---- // ----
// constructor() -> // constructor() ->
// gas irOptimized: 165398 // gas irOptimized: 165386
// gas legacy: 244800 // gas legacy: 244800
// gas legacyOptimized: 171615 // gas legacyOptimized: 171615
// deposit(bytes32), 18 wei: 0x1234 -> // deposit(bytes32), 18 wei: 0x1234 ->

View File

@ -19,4 +19,4 @@ contract C {
// ~ emit E(string,uint256[4]): #0xa7fb06bb999a5eb9aff9e0779953f4e1e4ce58044936c2f51c7fb879b85c08bd, #0xe755d8cc1a8cde16a2a31160dcd8017ac32d7e2f13215b29a23cdae40a78aa81 // ~ emit E(string,uint256[4]): #0xa7fb06bb999a5eb9aff9e0779953f4e1e4ce58044936c2f51c7fb879b85c08bd, #0xe755d8cc1a8cde16a2a31160dcd8017ac32d7e2f13215b29a23cdae40a78aa81
// gas irOptimized: 330920 // gas irOptimized: 330920
// gas legacy: 387608 // gas legacy: 387608
// gas legacyOptimized: 373772 // gas legacyOptimized: 373771

View File

@ -33,9 +33,9 @@ contract test {
// EVMVersion: >=constantinople // EVMVersion: >=constantinople
// ---- // ----
// constructor() // constructor()
// gas irOptimized: 406907 // gas irOptimized: 406679
// gas legacy: 737652 // gas legacy: 737652
// gas legacyOptimized: 526820 // gas legacyOptimized: 527036
// encode_inline_asm(bytes): 0x20, 0 -> 0x20, 0 // encode_inline_asm(bytes): 0x20, 0 -> 0x20, 0
// encode_inline_asm(bytes): 0x20, 1, "f" -> 0x20, 4, "Zg==" // encode_inline_asm(bytes): 0x20, 1, "f" -> 0x20, 4, "Zg=="
// encode_inline_asm(bytes): 0x20, 2, "fo" -> 0x20, 4, "Zm8=" // encode_inline_asm(bytes): 0x20, 2, "fo" -> 0x20, 4, "Zm8="
@ -55,6 +55,6 @@ contract test {
// gas legacy: 1672031 // gas legacy: 1672031
// gas legacyOptimized: 1199031 // gas legacyOptimized: 1199031
// encode_no_asm_large() // encode_no_asm_large()
// gas irOptimized: 3276081 // gas irOptimized: 3257081
// gas legacy: 4705075 // gas legacy: 4705075
// gas legacyOptimized: 2890075 // gas legacyOptimized: 2890075

View File

@ -176,7 +176,7 @@ contract DepositContract is IDepositContract, ERC165 {
} }
// ---- // ----
// constructor() // constructor()
// gas irOptimized: 1391860 // gas irOptimized: 1397699
// gas legacy: 2391952 // gas legacy: 2391952
// gas legacyOptimized: 1752320 // gas legacyOptimized: 1752320
// supportsInterface(bytes4): 0x0 -> 0 // supportsInterface(bytes4): 0x0 -> 0
@ -184,27 +184,27 @@ contract DepositContract is IDepositContract, ERC165 {
// supportsInterface(bytes4): 0x01ffc9a700000000000000000000000000000000000000000000000000000000 -> true # ERC-165 id # // supportsInterface(bytes4): 0x01ffc9a700000000000000000000000000000000000000000000000000000000 -> true # ERC-165 id #
// supportsInterface(bytes4): 0x8564090700000000000000000000000000000000000000000000000000000000 -> true # the deposit interface id # // supportsInterface(bytes4): 0x8564090700000000000000000000000000000000000000000000000000000000 -> true # the deposit interface id #
// get_deposit_root() -> 0xd70a234731285c6804c2a4f56711ddb8c82c99740f207854891028af34e27e5e // get_deposit_root() -> 0xd70a234731285c6804c2a4f56711ddb8c82c99740f207854891028af34e27e5e
// gas irOptimized: 116864 // gas irOptimized: 116863
// gas legacy: 151981 // gas legacy: 151981
// gas legacyOptimized: 124447 // gas legacyOptimized: 124447
// get_deposit_count() -> 0x20, 8, 0 # TODO: check balance and logs after each deposit # // get_deposit_count() -> 0x20, 8, 0 # TODO: check balance and logs after each deposit #
// deposit(bytes,bytes,bytes,bytes32), 32 ether: 0 -> FAILURE # Empty input # // deposit(bytes,bytes,bytes,bytes32), 32 ether: 0 -> FAILURE # Empty input #
// get_deposit_root() -> 0xd70a234731285c6804c2a4f56711ddb8c82c99740f207854891028af34e27e5e // get_deposit_root() -> 0xd70a234731285c6804c2a4f56711ddb8c82c99740f207854891028af34e27e5e
// gas irOptimized: 116864 // gas irOptimized: 116863
// gas legacy: 151981 // gas legacy: 151981
// gas legacyOptimized: 124447 // gas legacyOptimized: 124447
// get_deposit_count() -> 0x20, 8, 0 // get_deposit_count() -> 0x20, 8, 0
// deposit(bytes,bytes,bytes,bytes32), 1 ether: 0x80, 0xe0, 0x120, 0xaa4a8d0b7d9077248630f1a4701ae9764e42271d7f22b7838778411857fd349e, 0x30, 0x933ad9491b62059dd065b560d256d8957a8c402cc6e8d8ee7290ae11e8f73292, 0x67a8811c397529dac52ae1342ba58c9500000000000000000000000000000000, 0x20, 0x00f50428677c60f997aadeab24aabf7fceaef491c96a52b463ae91f95611cf71, 0x60, 0xa29d01cc8c6296a8150e515b5995390ef841dc18948aa3e79be6d7c1851b4cbb, 0x5d6ff49fa70b9c782399506a22a85193151b9b691245cebafd2063012443c132, 0x4b6c36debaedefb7b2d71b0503ffdc00150aaffd42e63358238ec888901738b8 -> # txhash: 0x7085c586686d666e8bb6e9477a0f0b09565b2060a11f1c4209d3a52295033832 # // deposit(bytes,bytes,bytes,bytes32), 1 ether: 0x80, 0xe0, 0x120, 0xaa4a8d0b7d9077248630f1a4701ae9764e42271d7f22b7838778411857fd349e, 0x30, 0x933ad9491b62059dd065b560d256d8957a8c402cc6e8d8ee7290ae11e8f73292, 0x67a8811c397529dac52ae1342ba58c9500000000000000000000000000000000, 0x20, 0x00f50428677c60f997aadeab24aabf7fceaef491c96a52b463ae91f95611cf71, 0x60, 0xa29d01cc8c6296a8150e515b5995390ef841dc18948aa3e79be6d7c1851b4cbb, 0x5d6ff49fa70b9c782399506a22a85193151b9b691245cebafd2063012443c132, 0x4b6c36debaedefb7b2d71b0503ffdc00150aaffd42e63358238ec888901738b8 -> # txhash: 0x7085c586686d666e8bb6e9477a0f0b09565b2060a11f1c4209d3a52295033832 #
// ~ emit DepositEvent(bytes,bytes,bytes,bytes,bytes): 0xa0, 0x0100, 0x0140, 0x0180, 0x0200, 0x30, 0x933ad9491b62059dd065b560d256d8957a8c402cc6e8d8ee7290ae11e8f73292, 0x67a8811c397529dac52ae1342ba58c9500000000000000000000000000000000, 0x20, 0xf50428677c60f997aadeab24aabf7fceaef491c96a52b463ae91f95611cf71, 0x08, 0xca9a3b00000000000000000000000000000000000000000000000000000000, 0x60, 0xa29d01cc8c6296a8150e515b5995390ef841dc18948aa3e79be6d7c1851b4cbb, 0x5d6ff49fa70b9c782399506a22a85193151b9b691245cebafd2063012443c132, 0x4b6c36debaedefb7b2d71b0503ffdc00150aaffd42e63358238ec888901738b8, 0x08, 0x00 // ~ emit DepositEvent(bytes,bytes,bytes,bytes,bytes): 0xa0, 0x0100, 0x0140, 0x0180, 0x0200, 0x30, 0x933ad9491b62059dd065b560d256d8957a8c402cc6e8d8ee7290ae11e8f73292, 0x67a8811c397529dac52ae1342ba58c9500000000000000000000000000000000, 0x20, 0xf50428677c60f997aadeab24aabf7fceaef491c96a52b463ae91f95611cf71, 0x08, 0xca9a3b00000000000000000000000000000000000000000000000000000000, 0x60, 0xa29d01cc8c6296a8150e515b5995390ef841dc18948aa3e79be6d7c1851b4cbb, 0x5d6ff49fa70b9c782399506a22a85193151b9b691245cebafd2063012443c132, 0x4b6c36debaedefb7b2d71b0503ffdc00150aaffd42e63358238ec888901738b8, 0x08, 0x00
// get_deposit_root() -> 0x2089653123d9c721215120b6db6738ba273bbc5228ac093b1f983badcdc8a438 // get_deposit_root() -> 0x2089653123d9c721215120b6db6738ba273bbc5228ac093b1f983badcdc8a438
// gas irOptimized: 116849 // gas irOptimized: 116848
// gas legacy: 151990 // gas legacy: 151990
// gas legacyOptimized: 124459 // gas legacyOptimized: 124459
// get_deposit_count() -> 0x20, 8, 0x0100000000000000000000000000000000000000000000000000000000000000 // get_deposit_count() -> 0x20, 8, 0x0100000000000000000000000000000000000000000000000000000000000000
// deposit(bytes,bytes,bytes,bytes32), 32 ether: 0x80, 0xe0, 0x120, 0xdbd986dc85ceb382708cf90a3500f500f0a393c5ece76963ac3ed72eccd2c301, 0x30, 0xb2ce0f79f90e7b3a113ca5783c65756f96c4b4673c2b5c1eb4efc22280259441, 0x06d601211e8866dc5b50dc48a244dd7c00000000000000000000000000000000, 0x20, 0x00344b6c73f71b11c56aba0d01b7d8ad83559f209d0a4101a515f6ad54c89771, 0x60, 0x945caaf82d18e78c033927d51f452ebcd76524497b91d7a11219cb3db6a1d369, 0x7595fc095ce489e46b2ef129591f2f6d079be4faaf345a02c5eb133c072e7c56, 0x0c6c3617eee66b4b878165c502357d49485326bc6b31bc96873f308c8f19c09d -> # txhash: 0x404d8e109822ce448e68f45216c12cb051b784d068fbe98317ab8e50c58304ac # // deposit(bytes,bytes,bytes,bytes32), 32 ether: 0x80, 0xe0, 0x120, 0xdbd986dc85ceb382708cf90a3500f500f0a393c5ece76963ac3ed72eccd2c301, 0x30, 0xb2ce0f79f90e7b3a113ca5783c65756f96c4b4673c2b5c1eb4efc22280259441, 0x06d601211e8866dc5b50dc48a244dd7c00000000000000000000000000000000, 0x20, 0x00344b6c73f71b11c56aba0d01b7d8ad83559f209d0a4101a515f6ad54c89771, 0x60, 0x945caaf82d18e78c033927d51f452ebcd76524497b91d7a11219cb3db6a1d369, 0x7595fc095ce489e46b2ef129591f2f6d079be4faaf345a02c5eb133c072e7c56, 0x0c6c3617eee66b4b878165c502357d49485326bc6b31bc96873f308c8f19c09d -> # txhash: 0x404d8e109822ce448e68f45216c12cb051b784d068fbe98317ab8e50c58304ac #
// ~ emit DepositEvent(bytes,bytes,bytes,bytes,bytes): 0xa0, 0x0100, 0x0140, 0x0180, 0x0200, 0x30, 0xb2ce0f79f90e7b3a113ca5783c65756f96c4b4673c2b5c1eb4efc22280259441, 0x06d601211e8866dc5b50dc48a244dd7c00000000000000000000000000000000, 0x20, 0x344b6c73f71b11c56aba0d01b7d8ad83559f209d0a4101a515f6ad54c89771, 0x08, 0x40597307000000000000000000000000000000000000000000000000000000, 0x60, 0x945caaf82d18e78c033927d51f452ebcd76524497b91d7a11219cb3db6a1d369, 0x7595fc095ce489e46b2ef129591f2f6d079be4faaf345a02c5eb133c072e7c56, 0x0c6c3617eee66b4b878165c502357d49485326bc6b31bc96873f308c8f19c09d, 0x08, 0x0100000000000000000000000000000000000000000000000000000000000000 // ~ emit DepositEvent(bytes,bytes,bytes,bytes,bytes): 0xa0, 0x0100, 0x0140, 0x0180, 0x0200, 0x30, 0xb2ce0f79f90e7b3a113ca5783c65756f96c4b4673c2b5c1eb4efc22280259441, 0x06d601211e8866dc5b50dc48a244dd7c00000000000000000000000000000000, 0x20, 0x344b6c73f71b11c56aba0d01b7d8ad83559f209d0a4101a515f6ad54c89771, 0x08, 0x40597307000000000000000000000000000000000000000000000000000000, 0x60, 0x945caaf82d18e78c033927d51f452ebcd76524497b91d7a11219cb3db6a1d369, 0x7595fc095ce489e46b2ef129591f2f6d079be4faaf345a02c5eb133c072e7c56, 0x0c6c3617eee66b4b878165c502357d49485326bc6b31bc96873f308c8f19c09d, 0x08, 0x0100000000000000000000000000000000000000000000000000000000000000
// get_deposit_root() -> 0x40255975859377d912c53aa853245ebd939bdd2b33a28e084babdcc1ed8238ee // get_deposit_root() -> 0x40255975859377d912c53aa853245ebd939bdd2b33a28e084babdcc1ed8238ee
// gas irOptimized: 116849 // gas irOptimized: 116848
// gas legacy: 151990 // gas legacy: 151990
// gas legacyOptimized: 124459 // gas legacyOptimized: 124459
// get_deposit_count() -> 0x20, 8, 0x0200000000000000000000000000000000000000000000000000000000000000 // get_deposit_count() -> 0x20, 8, 0x0200000000000000000000000000000000000000000000000000000000000000

View File

@ -48,7 +48,7 @@ contract test {
} }
// ---- // ----
// constructor() // constructor()
// gas irOptimized: 1849535 // gas irOptimized: 1847920
// gas legacy: 2430726 // gas legacy: 2430726
// gas legacyOptimized: 1854979 // gas legacyOptimized: 1854979
// div(int256,int256): 3141592653589793238, 88714123 -> 35412542528203691288251815328 // div(int256,int256): 3141592653589793238, 88714123 -> 35412542528203691288251815328

View File

@ -48,7 +48,7 @@ contract test {
} }
// ---- // ----
// constructor() // constructor()
// gas irOptimized: 1723666 // gas irOptimized: 1722598
// gas legacy: 2210160 // gas legacy: 2210160
// gas legacyOptimized: 1734152 // gas legacyOptimized: 1734152
// div(uint256,uint256): 3141592653589793238, 88714123 -> 35412542528203691288251815328 // div(uint256,uint256): 3141592653589793238, 88714123 -> 35412542528203691288251815328

View File

@ -49,9 +49,9 @@ contract test {
} }
// ---- // ----
// constructor() // constructor()
// gas irOptimized: 633020 // gas irOptimized: 634316
// gas legacy: 1065857 // gas legacy: 1065857
// gas legacyOptimized: 725207 // gas legacyOptimized: 725423
// toSlice(string): 0x20, 11, "hello world" -> 11, 0xa0 // toSlice(string): 0x20, 11, "hello world" -> 11, 0xa0
// gas irOptimized: 22660 // gas irOptimized: 22660
// gas legacy: 23190 // gas legacy: 23190

View File

@ -15,7 +15,7 @@ contract D {
} }
// ---- // ----
// constructor(): 2 -> // constructor(): 2 ->
// gas irOptimized: 193567 // gas irOptimized: 192703
// gas legacy: 241234 // gas legacy: 241234
// gas legacyOptimized: 192961 // gas legacyOptimized: 192961
// f() -> 2 // f() -> 2

View File

@ -17,7 +17,7 @@ contract D {
// EVMVersion: >=constantinople // EVMVersion: >=constantinople
// ---- // ----
// constructor(): 2 -> // constructor(): 2 ->
// gas irOptimized: 193730 // gas irOptimized: 192866
// gas legacy: 241606 // gas legacy: 241606
// gas legacyOptimized: 193193 // gas legacyOptimized: 193193
// f() -> 2 // f() -> 2

View File

@ -22,7 +22,7 @@ contract C {
} }
// ---- // ----
// constructor(), 1 ether -> // constructor(), 1 ether ->
// gas irOptimized: 265110 // gas irOptimized: 262355
// gas legacy: 441442 // gas legacy: 441442
// gas legacyOptimized: 292862 // gas legacyOptimized: 292862
// f(uint256): 0 -> FAILURE // f(uint256): 0 -> FAILURE

View File

@ -17,7 +17,7 @@ contract C {
// EVMVersion: >=byzantium // EVMVersion: >=byzantium
// ---- // ----
// constructor(), 20 wei // constructor(), 20 wei
// gas irOptimized: 171806 // gas irOptimized: 166148
// gas legacy: 285547 // gas legacy: 285547
// gas legacyOptimized: 168515 // gas legacyOptimized: 168515
// f(uint256): 20 -> 0x137aa4dfc0911524504fcd4d98501f179bc13b4a // f(uint256): 20 -> 0x137aa4dfc0911524504fcd4d98501f179bc13b4a

View File

@ -38,7 +38,7 @@ contract test {
} }
// ---- // ----
// constructor(), 20 wei -> // constructor(), 20 wei ->
// gas irOptimized: 253950 // gas irOptimized: 252642
// gas legacy: 391588 // gas legacy: 391588
// gas legacyOptimized: 268089 // gas legacyOptimized: 268089
// sendAmount(uint256): 5 -> 5 // sendAmount(uint256): 5 -> 5

View File

@ -37,7 +37,7 @@ contract test {
} }
// ---- // ----
// constructor(), 20 wei -> // constructor(), 20 wei ->
// gas irOptimized: 253950 // gas irOptimized: 252642
// gas legacy: 391588 // gas legacy: 391588
// gas legacyOptimized: 268089 // gas legacyOptimized: 268089
// sendAmount(uint256): 5 -> 5 // sendAmount(uint256): 5 -> 5

View File

@ -27,7 +27,7 @@ contract C {
} }
// ---- // ----
// f() -> 3, 7, 5 // f() -> 3, 7, 5
// gas irOptimized: 124024 // gas irOptimized: 124021
// gas legacy: 148528 // gas legacy: 148528
// gas legacyOptimized: 123971 // gas legacyOptimized: 123971
// x() -> 7 // x() -> 7

View File

@ -39,7 +39,7 @@ contract Main {
} }
// ---- // ----
// constructor(), 22 wei -> // constructor(), 22 wei ->
// gas irOptimized: 262320 // gas irOptimized: 261888
// gas legacy: 392786 // gas legacy: 392786
// gas legacyOptimized: 261633 // gas legacyOptimized: 261633
// getFlag() -> true // getFlag() -> true

View File

@ -22,6 +22,6 @@ contract Test {
// ---- // ----
// library: Lib // library: Lib
// f() -> 4, 0x11 // f() -> 4, 0x11
// gas irOptimized: 112046 // gas irOptimized: 112064
// gas legacy: 135413 // gas legacy: 135413
// gas legacyOptimized: 119325 // gas legacyOptimized: 119325

View File

@ -19,6 +19,6 @@ contract Test {
// ---- // ----
// library: Lib // library: Lib
// f() -> 1, 0, 0x2a, 0x17, 0, 0x63 // f() -> 1, 0, 0x2a, 0x17, 0, 0x63
// gas irOptimized: 119642 // gas irOptimized: 119635
// gas legacy: 124674 // gas legacy: 124674
// gas legacyOptimized: 119669 // gas legacyOptimized: 119669

View File

@ -17,6 +17,6 @@ contract Test {
// ---- // ----
// library: Lib // library: Lib
// f() -> 1, 0, 0x2a, 0x17, 0, 0x63 // f() -> 1, 0, 0x2a, 0x17, 0, 0x63
// gas irOptimized: 120200 // gas irOptimized: 120194
// gas legacy: 125109 // gas legacy: 125109
// gas legacyOptimized: 120128 // gas legacyOptimized: 120128

View File

@ -21,6 +21,6 @@ contract A {
// EVMVersion: >=constantinople // EVMVersion: >=constantinople
// ---- // ----
// f(), 10 ether -> 3007, 3008, 3009 // f(), 10 ether -> 3007, 3008, 3009
// gas irOptimized: 253035 // gas irOptimized: 253005
// gas legacy: 381063 // gas legacy: 381063
// gas legacyOptimized: 279694 // gas legacyOptimized: 279694

View File

@ -36,8 +36,8 @@ contract C {
} }
// ---- // ----
// to_state() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // to_state() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14
// gas irOptimized: 121487 // gas irOptimized: 121481
// gas legacy: 123069 // gas legacy: 123069
// gas legacyOptimized: 121759 // gas legacyOptimized: 121756
// to_storage() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // to_storage() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14
// to_memory() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // to_memory() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14

View File

@ -46,6 +46,6 @@ contract C {
// to_state() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // to_state() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14
// gas irOptimized: 121598 // gas irOptimized: 121598
// gas legacy: 123208 // gas legacy: 123208
// gas legacyOptimized: 121766 // gas legacyOptimized: 121763
// to_storage() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // to_storage() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14
// to_memory() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // to_memory() -> 0x20, 0x60, 0xa0, 7, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14

View File

@ -52,14 +52,14 @@ contract C {
} }
// ---- // ----
// from_memory() -> 0x20, 0x60, 0xa0, 0x15, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // from_memory() -> 0x20, 0x60, 0xa0, 0x15, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14
// gas irOptimized: 123034 // gas irOptimized: 123039
// gas legacy: 130227 // gas legacy: 130227
// gas legacyOptimized: 128761 // gas legacyOptimized: 128758
// from_state() -> 0x20, 0x60, 0xa0, 21, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // from_state() -> 0x20, 0x60, 0xa0, 21, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14
// gas irOptimized: 121709 // gas irOptimized: 121709
// gas legacy: 123282 // gas legacy: 123282
// gas legacyOptimized: 121871 // gas legacyOptimized: 121868
// from_calldata((bytes,uint16[],uint16)): 0x20, 0x60, 0xa0, 21, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 -> 0x20, 0x60, 0xa0, 0x15, 3, 0x666F6F0000000000000000000000000000000000000000000000000000000000, 2, 13, 14 // 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: 115131 // gas irOptimized: 115130
// gas legacy: 122516 // gas legacy: 122516
// gas legacyOptimized: 120807 // gas legacyOptimized: 120804

Some files were not shown because too many files have changed in this diff Show More