Update test expectations.

This commit is contained in:
chriseth 2022-05-23 12:54:18 +02:00
parent 7168c27f0d
commit 77038aa40e
154 changed files with 1050 additions and 1162 deletions

View File

@ -434,77 +434,77 @@ object "D_27" {
{ {
/// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." /// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..."
let _1 := memoryguard(0x80) let _1 := memoryguard(0x80)
mstore(64, _1) let _2 := 64
mstore(_2, _1)
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _2 := 0 let _3 := 0
if eq(0x26121ff0, shr(224, calldataload(_2))) if eq(0x26121ff0, shr(224, calldataload(_3)))
{ {
if callvalue() { revert(_2, _2) } if callvalue() { revert(_3, _3) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) } if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) }
/// @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." /// @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..."
let _3 := datasize("C_2") let _4 := datasize("C_2")
let _4 := add(_1, _3) let _5 := add(_1, _4)
if or(gt(_4, 0xffffffffffffffff), lt(_4, _1)) { panic_error_0x41() } let _6 := 0xffffffffffffffff
datacopy(_1, dataoffset("C_2"), _3) if or(gt(_5, _6), lt(_5, _1))
if iszero(create(/** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ _2, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _1, sub(_4, _1)))
{ {
/// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." /// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..."
let pos := mload(64) mstore(_3, shl(224, 0x4e487b71))
returndatacopy(pos, _2, returndatasize()) mstore(4, 0x41)
revert(_3, 0x24)
}
/// @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..."
datacopy(_1, dataoffset("C_2"), _4)
if iszero(create(/** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ _3, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _1, sub(_5, _1)))
{
/// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..."
let pos := mload(_2)
returndatacopy(pos, _3, returndatasize())
revert(pos, returndatasize()) revert(pos, returndatasize())
} }
mstore(add(allocate_memory_array_string(), 32), "/*") let memPtr := mload(_2)
let memPtr := allocate_memory_array_string_546() let newFreePtr := add(memPtr, _2)
mstore(add(memPtr, 32), 0x2f2a2a204073726320303a39363a313635202022636f6e74726163742044207b) if or(gt(newFreePtr, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _6), /** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ lt(newFreePtr, memPtr))
mstore(add(memPtr, 64), shl(200, 0x2e2e2e22202a2f)) {
let memPos := mload(64) mstore(_3, shl(224, 0x4e487b71))
return(memPos, sub(abi_encode_string(memPos, memPtr), memPos)) mstore(4, 0x41)
revert(_3, 0x24)
}
mstore(_2, newFreePtr)
mstore(memPtr, 2)
let _7 := 32
mstore(add(memPtr, _7), "/*")
let memPtr_1 := mload(_2)
let newFreePtr_1 := add(memPtr_1, 96)
if or(gt(newFreePtr_1, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _6), /** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ lt(newFreePtr_1, memPtr_1))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(_3, 0x24)
}
mstore(_2, newFreePtr_1)
mstore(memPtr_1, 39)
mstore(add(memPtr_1, _7), 0x2f2a2a204073726320303a39363a313635202022636f6e74726163742044207b)
mstore(add(memPtr_1, _2), shl(200, 0x2e2e2e22202a2f))
let memPos := mload(_2)
mstore(memPos, _7)
let length := mload(memPtr_1)
mstore(add(memPos, _7), length)
let i := _3
for { } lt(i, length) { i := add(i, _7) }
{
mstore(add(add(memPos, i), _2), mload(add(add(memPtr_1, i), _7)))
}
if gt(i, length)
{
mstore(add(add(memPos, length), _2), _3)
}
return(memPos, add(sub(add(memPos, and(add(length, 31), not(31))), memPos), _2))
} }
} }
revert(0, 0) revert(0, 0)
} }
function abi_encode_string(headStart, value0) -> tail
{
let _1 := 32
mstore(headStart, _1)
let length := mload(value0)
mstore(add(headStart, _1), length)
let i := 0
for { } lt(i, length) { i := add(i, _1) }
{
mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))
}
if gt(i, length)
{
mstore(add(add(headStart, length), 64), 0)
}
tail := add(add(headStart, and(add(length, 31), not(31))), 64)
}
function panic_error_0x41()
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(0, 0x24)
}
function allocate_memory_array_string() -> memPtr
{
let memPtr_1 := mload(64)
let newFreePtr := add(memPtr_1, 64)
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr_1)) { panic_error_0x41() }
mstore(64, newFreePtr)
memPtr := memPtr_1
mstore(memPtr_1, 2)
}
function allocate_memory_array_string_546() -> memPtr
{
let memPtr_1 := mload(64)
let newFreePtr := add(memPtr_1, 96)
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr_1)) { panic_error_0x41() }
mstore(64, newFreePtr)
memPtr := memPtr_1
mstore(memPtr_1, 39)
}
} }
/// @use-src 0:"debug_info_in_yul_snippet_escaping/input.sol" /// @use-src 0:"debug_info_in_yul_snippet_escaping/input.sol"
object "C_2" { object "C_2" {

View File

@ -4,20 +4,7 @@
"function_debug_info_via_yul/input.sol:C": "function_debug_info_via_yul/input.sol:C":
{ {
"function-debug": {}, "function-debug": {},
"function-debug-runtime": "function-debug-runtime": {}
{
"abi_encode_uint256":
{
"parameterSlots": 2,
"returnSlots": 1
},
"calldata_array_index_access_uint256_dyn_calldata":
{
"entryPoint": 144,
"parameterSlots": 2,
"returnSlots": 1
}
}
} }
}, },
"version": "<VERSION REMOVED>" "version": "<VERSION REMOVED>"

View File

@ -17,112 +17,112 @@ object "C_59" {
code { code {
{ {
/// @src 0:346:625 "contract C {..." /// @src 0:346:625 "contract C {..."
mstore(64, memoryguard(0x80)) let _1 := memoryguard(0x80)
if iszero(lt(calldatasize(), 4)) let _2 := 4
if iszero(lt(calldatasize(), _2))
{ {
let _1 := 0 let _3 := 0
if eq(0xf8eddcc6, shr(224, calldataload(_1))) if eq(0xf8eddcc6, shr(224, calldataload(_3)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(_3, _3) }
let _2 := 32 let _4 := 32
if slt(add(calldatasize(), not(3)), _2) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), _4) { revert(_3, _3) }
let offset := calldataload(4) let offset := calldataload(_2)
let _3 := 0xffffffffffffffff let _5 := 0xffffffffffffffff
if gt(offset, _3) { revert(_1, _1) } if gt(offset, _5) { revert(_3, _3) }
if iszero(slt(add(offset, 35), calldatasize())) { revert(_1, _1) } if iszero(slt(add(offset, 35), calldatasize())) { revert(_3, _3) }
let _4 := calldataload(add(4, offset)) let _6 := calldataload(add(_2, offset))
if gt(_4, _3) { panic_error_0x41() } let _7 := 36
let _5 := shl(5, _4) if gt(_6, _5)
let dst := allocate_memory(add(_5, _2))
let dst_1 := dst
mstore(dst, _4)
dst := add(dst, _2)
let srcEnd := add(add(offset, _5), 36)
if gt(srcEnd, calldatasize()) { revert(_1, _1) }
let src := add(offset, 36)
for { } lt(src, srcEnd) { src := add(src, _2) }
{ {
if slt(sub(calldatasize(), src), _2) { revert(_1, _1) } mstore(_3, shl(224, 0x4e487b71))
let value := allocate_memory_1307() mstore(_2, 0x41)
mstore(value, calldataload(src)) revert(_3, _7)
mstore(dst, value)
dst := add(dst, _2)
} }
let ret, ret_1 := fun_sumArray(dst_1) let _8 := shl(5, _6)
let memPos := mload(64) let _9 := not(31)
return(memPos, sub(abi_encode_uint256_string(memPos, ret, ret_1), memPos)) let newFreePtr := add(_1, and(add(_8, 63), _9))
if or(gt(newFreePtr, _5), lt(newFreePtr, _1))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(_2, 0x41)
revert(_3, _7)
}
let _10 := 64
mstore(_10, newFreePtr)
let dst := _1
mstore(_1, _6)
dst := add(_1, _4)
let dst_1 := dst
let srcEnd := add(add(offset, _8), _7)
if gt(srcEnd, calldatasize()) { revert(_3, _3) }
let src := add(offset, _7)
for { } lt(src, srcEnd) { src := add(src, _4) }
{
if slt(sub(calldatasize(), src), _4) { revert(_3, _3) }
let memPtr := mload(_10)
let newFreePtr_1 := add(memPtr, _4)
if or(gt(newFreePtr_1, _5), lt(newFreePtr_1, memPtr))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(_2, 0x41)
revert(_3, _7)
}
mstore(_10, newFreePtr_1)
mstore(memPtr, calldataload(src))
mstore(dst, memPtr)
dst := add(dst, _4)
}
if iszero(mload(_1))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(_2, 0x32)
revert(_3, _7)
}
sstore(_3, mload(/** @src 0:469:474 "_s[0]" */ mload(dst_1)))
/// @src 0:346:625 "contract C {..."
if iszero(lt(/** @src 0:492:493 "1" */ 0x01, /** @src 0:346:625 "contract C {..." */ mload(_1)))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(_2, 0x32)
revert(_3, _7)
}
let _11 := mload(/** @src 0:489:494 "_s[1]" */ mload(/** @src 0:346:625 "contract C {..." */ add(_1, _10)))
sstore(0x02, _11)
let memPtr_1 := mload(_10)
let newFreePtr_2 := add(memPtr_1, 160)
if or(gt(newFreePtr_2, _5), lt(newFreePtr_2, memPtr_1))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(_2, 0x41)
revert(_3, _7)
}
mstore(_10, newFreePtr_2)
mstore(memPtr_1, 100)
mstore(add(memPtr_1, _4), "longstringlongstringlongstringlo")
mstore(add(memPtr_1, _10), "ngstringlongstringlongstringlong")
let _12 := 96
mstore(add(memPtr_1, _12), "stringlongstringlongstringlongst")
mstore(add(memPtr_1, 128), "ring")
let memPos := mload(_10)
mstore(memPos, _11)
mstore(add(memPos, _4), _10)
let length := mload(memPtr_1)
mstore(add(memPos, _10), length)
let i := _3
for { } lt(i, length) { i := add(i, _4) }
{
mstore(add(add(memPos, i), _12), mload(add(add(memPtr_1, i), _4)))
}
if gt(i, length)
{
mstore(add(add(memPos, length), _12), _3)
}
return(memPos, add(sub(add(memPos, and(add(length, 31), _9)), memPos), _12))
} }
} }
revert(0, 0) revert(0, 0)
} }
function panic_error_0x41()
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(0, 0x24)
}
function allocate_memory_1307() -> memPtr
{
memPtr := mload(64)
let newFreePtr := add(memPtr, 32)
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
mstore(64, newFreePtr)
}
function allocate_memory(size) -> memPtr
{
memPtr := mload(64)
let newFreePtr := add(memPtr, and(add(size, 31), not(31)))
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
mstore(64, newFreePtr)
}
function abi_encode_uint256_string(headStart, value0, value1) -> tail
{
mstore(headStart, value0)
let _1 := 32
mstore(add(headStart, _1), 64)
let length := mload(value1)
mstore(add(headStart, 64), length)
let i := 0
for { } lt(i, length) { i := add(i, _1) }
{
mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))
}
if gt(i, length)
{
mstore(add(add(headStart, length), 96), 0)
}
tail := add(add(headStart, and(add(length, 31), not(31))), 96)
}
function panic_error_0x32()
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x32)
revert(0, 0x24)
}
/// @ast-id 58 @src 0:381:623 "function sumArray(S[] memory _s) public returns (uint, string memory) {..."
function fun_sumArray(var_s_mpos) -> var, var_mpos
{
/// @src 0:346:625 "contract C {..."
if iszero(mload(var_s_mpos)) { panic_error_0x32() }
sstore(/** @src 0:472:473 "0" */ 0x00, /** @src 0:346:625 "contract C {..." */ mload(/** @src 0:469:474 "_s[0]" */ mload(/** @src 0:346:625 "contract C {..." */ add(var_s_mpos, 32))))
if iszero(lt(1, mload(var_s_mpos))) { panic_error_0x32() }
let _1 := mload(/** @src 0:489:494 "_s[1]" */ mload(/** @src 0:346:625 "contract C {..." */ add(var_s_mpos, 64)))
sstore(0x02, _1)
/// @src 0:500:619 "return (t.y[0], \"longstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstring\")"
var := _1
/// @src 0:346:625 "contract C {..."
let memPtr := mload(64)
let newFreePtr := add(memPtr, 160)
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
mstore(64, newFreePtr)
mstore(memPtr, 100)
mstore(add(memPtr, 32), "longstringlongstringlongstringlo")
mstore(add(memPtr, 64), "ngstringlongstringlongstringlong")
mstore(add(memPtr, 96), "stringlongstringlongstringlongst")
mstore(add(memPtr, 128), "ring")
/// @src 0:500:619 "return (t.y[0], \"longstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstring\")"
var_mpos := memPtr
}
} }
data ".metadata" hex"<BYTECODE REMOVED>" data ".metadata" hex"<BYTECODE REMOVED>"
} }

View File

@ -18,53 +18,54 @@ object "Arraysum_34" {
{ {
/// @src 0:80:429 "contract Arraysum {..." /// @src 0:80:429 "contract Arraysum {..."
mstore(64, memoryguard(0x80)) mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4)) let _1 := 4
if iszero(lt(calldatasize(), _1))
{ {
let _1 := 0 let _2 := 0
if eq(0x81d73423, shr(224, calldataload(_1))) if eq(0x81d73423, shr(224, calldataload(_2)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
let var_sum := _1 let var_sum := _2
/// @src 0:368:378 "uint i = 0" /// @src 0:368:378 "uint i = 0"
let var_i := /** @src 0:80:429 "contract Arraysum {..." */ _1 let var_i := /** @src 0:80:429 "contract Arraysum {..." */ _2
let _2 := sload(_1) let _3 := sload(_2)
/// @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, _3)
/// @src 0:368:378 "uint i = 0" /// @src 0:368:378 "uint i = 0"
{ {
/// @src 0:80:429 "contract Arraysum {..." /// @src 0:80:429 "contract Arraysum {..."
if eq(var_i, not(0)) { panic_error_0x11() } if eq(var_i, not(0))
{
mstore(_2, shl(224, 0x4e487b71))
mstore(_1, 0x11)
revert(_2, 0x24)
}
/// @src 0:399:402 "i++" /// @src 0:399:402 "i++"
var_i := /** @src 0:80:429 "contract Arraysum {..." */ add(var_i, 1) var_i := /** @src 0:80:429 "contract Arraysum {..." */ add(var_i, 1)
} }
/// @src 0:399:402 "i++" /// @src 0:399:402 "i++"
{ {
/// @src 0:80:429 "contract Arraysum {..." /// @src 0:80:429 "contract Arraysum {..."
mstore(_1, _1) mstore(_2, _2)
let _3 := sload(add(18569430475105882587588266137607568536673111973893317399460219858819262702947, var_i)) let _4 := sload(add(18569430475105882587588266137607568536673111973893317399460219858819262702947, var_i))
if gt(var_sum, not(_3)) { panic_error_0x11() } if gt(var_sum, not(_4))
{
mstore(_2, shl(224, 0x4e487b71))
mstore(_1, 0x11)
revert(_2, 0x24)
}
/// @src 0:407:423 "sum += values[i]" /// @src 0:407:423 "sum += values[i]"
var_sum := /** @src 0:80:429 "contract Arraysum {..." */ add(var_sum, _3) var_sum := /** @src 0:80:429 "contract Arraysum {..." */ add(var_sum, _4)
} }
let memPos := mload(64) let memPos := mload(64)
return(memPos, sub(abi_encode_uint256(memPos, var_sum), memPos)) mstore(memPos, var_sum)
return(memPos, 32)
} }
} }
revert(0, 0) revert(0, 0)
} }
function abi_encode_uint256(headStart, value0) -> tail
{
tail := add(headStart, 32)
mstore(headStart, value0)
}
function panic_error_0x11()
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(0, 0x24)
}
} }
data ".metadata" hex"<BYTECODE REMOVED>" data ".metadata" hex"<BYTECODE REMOVED>"
} }

View File

@ -625,20 +625,17 @@ object \"C_54\" {
revert(/** @src -1:-1:-1 */ 0, 0) revert(/** @src -1:-1:-1 */ 0, 0)
} }
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
constructor_C(mload(_1)) let value := mload(_1)
let _2 := mload(64)
let _3 := datasize(\"C_54_deployed\")
codecopy(_2, dataoffset(\"C_54_deployed\"), _3)
setimmutable(_2, \"8\", mload(128))
return(_2, _3)
}
/// @ast-id 20 @src 0:182:230 \"constructor(int _init)...\"
function constructor_C(var_init)
{
/// @src 0:154:156 \"42\" /// @src 0:154:156 \"42\"
mstore(128, 0x2a) mstore(128, 0x2a)
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
sstore(/** @src 0:210:226 \"stateVar = _init\" */ 0x00, /** @src 0:79:435 \"contract C...\" */ var_init) sstore(/** @src -1:-1:-1 */ 0, /** @src 0:79:435 \"contract C...\" */ value)
let _2 := mload(64)
let _3 := datasize(\"C_54_deployed\")
codecopy(_2, dataoffset(\"C_54_deployed\"), _3)
setimmutable(_2, \"8\", mload(/** @src 0:154:156 \"42\" */ 128))
/// @src 0:79:435 \"contract C...\"
return(_2, _3)
} }
} }
/// @use-src 0:\"C\" /// @use-src 0:\"C\"
@ -646,118 +643,120 @@ object \"C_54\" {
code { code {
{ {
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
mstore(64, memoryguard(0x80)) let _1 := memoryguard(0x80)
let _2 := 64
mstore(_2, _1)
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 let _3 := 0
switch shr(224, calldataload(_1)) switch shr(224, calldataload(_3))
case 0x26121ff0 { case 0x26121ff0 {
if callvalue() { revert(_1, _1) } if callvalue() { revert(_3, _3) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) }
/// @src 0:297:305 \"immutVar\" /// @src 0:297:305 \"immutVar\"
let _2 := loadimmutable(\"8\") let _4 := loadimmutable(\"8\")
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
if and(1, sgt(_2, sub(shl(255, 1), 42))) { panic_error_0x11() } if and(1, sgt(_4, sub(shl(255, 1), 42)))
let memPos := mload(64) {
mstore(memPos, add(/** @src 0:124:126 \"41\" */ 0x29, /** @src 0:79:435 \"contract C...\" */ _2)) mstore(_3, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(_3, 0x24)
}
mstore(_1, add(/** @src 0:124:126 \"41\" */ 0x29, /** @src 0:79:435 \"contract C...\" */ _4))
return(_1, 32)
}
case 0x793816ec {
if callvalue() { revert(_3, _3) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) }
let _5 := sload(_3)
let memPos := mload(_2)
mstore(memPos, _5)
return(memPos, 32) return(memPos, 32)
} }
case 0x793816ec { external_fun_stateVar() } case 0x9942ec6f {
case 0x9942ec6f { external_fun_f2() } if callvalue() { revert(_3, _3) }
case 0xa00b982b { external_fun_constVar() } if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) }
let _6 := sload(_3)
if eq(_6, sub(shl(255, 1), 1))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(_3, 0x24)
}
let ret := add(_6, 1)
sstore(_3, ret)
/// @src 0:410:418 \"this.f()\"
let _7 := /** @src 0:79:435 \"contract C...\" */ mload(_2)
/// @src 0:410:418 \"this.f()\"
mstore(_7, /** @src 0:79:435 \"contract C...\" */ shl(228, 0x026121ff))
/// @src 0:410:418 \"this.f()\"
let _8 := staticcall(gas(), /** @src 0:410:414 \"this\" */ address(), /** @src 0:410:418 \"this.f()\" */ _7, /** @src 0:79:435 \"contract C...\" */ 4, /** @src 0:410:418 \"this.f()\" */ _7, 32)
if iszero(_8)
{
/// @src 0:79:435 \"contract C...\"
let pos := mload(_2)
returndatacopy(pos, _3, returndatasize())
revert(pos, returndatasize())
}
/// @src 0:410:418 \"this.f()\"
let expr := /** @src 0:79:435 \"contract C...\" */ _3
/// @src 0:410:418 \"this.f()\"
if _8
{
let _9 := 32
if gt(_9, returndatasize()) { _9 := returndatasize() }
/// @src 0:79:435 \"contract C...\"
let newFreePtr := add(_7, and(add(_9, 31), not(31)))
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _7))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(_3, 0x24)
}
mstore(_2, newFreePtr)
if slt(sub(/** @src 0:410:418 \"this.f()\" */ add(_7, _9), /** @src 0:79:435 \"contract C...\" */ _7), /** @src 0:410:418 \"this.f()\" */ 32)
/// @src 0:79:435 \"contract C...\"
{ revert(_3, _3) }
/// @src 0:410:418 \"this.f()\"
expr := /** @src 0:79:435 \"contract C...\" */ mload(_7)
}
/// @src 0:399:418 \"stateVar + this.f()\"
let expr_1 := checked_add_int256(ret, expr)
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\"
let var := /** @src 0:399:429 \"stateVar + this.f() + immutVar\" */ checked_add_int256(expr_1, /** @src 0:421:429 \"immutVar\" */ loadimmutable(\"8\"))
/// @src 0:79:435 \"contract C...\"
let memPos_1 := mload(_2)
mstore(memPos_1, var)
return(memPos_1, /** @src 0:410:418 \"this.f()\" */ 32)
}
case /** @src 0:79:435 \"contract C...\" */ 0xa00b982b {
if callvalue() { revert(_3, _3) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) }
let memPos_2 := mload(_2)
mstore(memPos_2, /** @src 0:124:126 \"41\" */ 0x29)
/// @src 0:79:435 \"contract C...\"
return(memPos_2, 32)
}
} }
revert(0, 0) revert(0, 0)
} }
function abi_encode_int256(headStart, value0) -> tail
{
tail := add(headStart, 32)
mstore(headStart, value0)
}
function external_fun_stateVar()
{
if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let _1 := sload(0)
let memPos := mload(64)
mstore(memPos, _1)
return(memPos, 32)
}
function external_fun_f2()
{
if callvalue() { revert(0, 0) }
let _1 := 0
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
let _2 := sload(_1)
if eq(_2, sub(shl(255, 1), 1)) { panic_error_0x11() }
let ret := add(_2, 1)
sstore(_1, ret)
/// @src 0:410:418 \"this.f()\"
let _3 := /** @src 0:79:435 \"contract C...\" */ mload(64)
/// @src 0:410:418 \"this.f()\"
mstore(_3, /** @src 0:79:435 \"contract C...\" */ shl(228, 0x026121ff))
/// @src 0:410:418 \"this.f()\"
let _4 := staticcall(gas(), /** @src 0:410:414 \"this\" */ address(), /** @src 0:410:418 \"this.f()\" */ _3, /** @src 0:79:435 \"contract C...\" */ 4, /** @src 0:410:418 \"this.f()\" */ _3, 32)
if iszero(_4)
{
/// @src 0:79:435 \"contract C...\"
let pos := mload(64)
returndatacopy(pos, _1, returndatasize())
revert(pos, returndatasize())
}
/// @src 0:410:418 \"this.f()\"
let expr := /** @src 0:79:435 \"contract C...\" */ _1
/// @src 0:410:418 \"this.f()\"
if _4
{
let _5 := 32
if gt(_5, returndatasize()) { _5 := returndatasize() }
/// @src 0:79:435 \"contract C...\"
let newFreePtr := add(_3, and(add(_5, 31), not(31)))
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _3))
{
mstore(_1, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(_1, 0x24)
}
mstore(64, newFreePtr)
/// @src 0:410:418 \"this.f()\"
expr := abi_decode_int256_fromMemory(_3, add(_3, _5))
}
/// @src 0:399:418 \"stateVar + this.f()\"
let expr_1 := checked_add_int256(ret, expr)
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\"
let var := /** @src 0:399:429 \"stateVar + this.f() + immutVar\" */ checked_add_int256(expr_1, /** @src 0:421:429 \"immutVar\" */ loadimmutable(\"8\"))
/// @src 0:79:435 \"contract C...\"
let memPos := mload(64)
return(memPos, sub(abi_encode_int256(memPos, var), memPos))
}
function external_fun_constVar()
{
if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let memPos := mload(64)
mstore(memPos, /** @src 0:124:126 \"41\" */ 0x29)
/// @src 0:79:435 \"contract C...\"
return(memPos, 32)
}
function panic_error_0x11()
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(0, 0x24)
}
function checked_add_int256(x, y) -> sum function checked_add_int256(x, y) -> sum
{ {
let _1 := slt(x, 0) let _1 := slt(x, 0)
if and(iszero(_1), sgt(y, sub(sub(shl(255, 1), 1), x))) { panic_error_0x11() } if and(iszero(_1), sgt(y, sub(sub(shl(255, 1), 1), x)))
if and(_1, slt(y, sub(shl(255, 1), x))) { panic_error_0x11() } {
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(0, 0x24)
}
if and(_1, slt(y, sub(shl(255, 1), x)))
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(0, 0x24)
}
sum := add(x, y) sum := add(x, y)
} }
function abi_decode_int256_fromMemory(headStart, dataEnd) -> value0
{
if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }
value0 := mload(headStart)
}
} }
data \".metadata\" hex\"<BYTECODE REMOVED>\" data \".metadata\" hex\"<BYTECODE REMOVED>\"
} }
@ -1457,26 +1456,23 @@ object \"D_72\" {
revert(/** @src -1:-1:-1 */ 0, 0) revert(/** @src -1:-1:-1 */ 0, 0)
} }
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"
constructor_D(mload(_1)) let value := mload(_1)
let _2 := mload(64)
let _3 := datasize(\"D_72_deployed\")
codecopy(_2, dataoffset(\"D_72_deployed\"), _3)
setimmutable(_2, \"8\", mload(128))
return(_2, _3)
}
/// @ast-id 71 @src 1:113:164 \"constructor(int _init2)...\"
function constructor_D(var_init2)
{
/// @src 0:154:156 \"42\" /// @src 0:154:156 \"42\"
mstore(128, 0x2a) mstore(128, 0x2a)
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"
if and(1, sgt(var_init2, sub(shl(255, 1), 4))) if and(1, sgt(value, sub(shl(255, 1), 4)))
{ {
mstore(0, shl(224, 0x4e487b71)) mstore(/** @src -1:-1:-1 */ 0, /** @src 1:91:166 \"contract D is C(3)...\" */ shl(224, 0x4e487b71))
mstore(4, 0x11) mstore(4, 0x11)
revert(0, 0x24) revert(/** @src -1:-1:-1 */ 0, /** @src 1:91:166 \"contract D is C(3)...\" */ 0x24)
} }
sstore(/** @src -1:-1:-1 */ 0, /** @src 1:91:166 \"contract D is C(3)...\" */ add(/** @src 1:107:108 \"3\" */ 0x03, /** @src 1:91:166 \"contract D is C(3)...\" */ var_init2)) sstore(/** @src -1:-1:-1 */ 0, /** @src 1:91:166 \"contract D is C(3)...\" */ add(/** @src 1:107:108 \"3\" */ 0x03, /** @src 1:91:166 \"contract D is C(3)...\" */ value))
let _2 := mload(64)
let _3 := datasize(\"D_72_deployed\")
codecopy(_2, dataoffset(\"D_72_deployed\"), _3)
setimmutable(_2, \"8\", mload(/** @src 0:154:156 \"42\" */ 128))
/// @src 1:91:166 \"contract D is C(3)...\"
return(_2, _3)
} }
} }
/// @use-src 0:\"C\", 1:\"D\" /// @use-src 0:\"C\", 1:\"D\"
@ -1484,118 +1480,120 @@ object \"D_72\" {
code { code {
{ {
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"
mstore(64, memoryguard(0x80)) let _1 := memoryguard(0x80)
let _2 := 64
mstore(_2, _1)
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 let _3 := 0
switch shr(224, calldataload(_1)) switch shr(224, calldataload(_3))
case 0x26121ff0 { case 0x26121ff0 {
if callvalue() { revert(_1, _1) } if callvalue() { revert(_3, _3) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) }
/// @src 0:297:305 \"immutVar\" /// @src 0:297:305 \"immutVar\"
let _2 := loadimmutable(\"8\") let _4 := loadimmutable(\"8\")
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"
if and(1, sgt(_2, sub(shl(255, 1), 42))) { panic_error_0x11() } if and(1, sgt(_4, sub(shl(255, 1), 42)))
let memPos := mload(64) {
mstore(memPos, add(/** @src 0:124:126 \"41\" */ 0x29, /** @src 1:91:166 \"contract D is C(3)...\" */ _2)) mstore(_3, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(_3, 0x24)
}
mstore(_1, add(/** @src 0:124:126 \"41\" */ 0x29, /** @src 1:91:166 \"contract D is C(3)...\" */ _4))
return(_1, 32)
}
case 0x793816ec {
if callvalue() { revert(_3, _3) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) }
let _5 := sload(_3)
let memPos := mload(_2)
mstore(memPos, _5)
return(memPos, 32) return(memPos, 32)
} }
case 0x793816ec { external_fun_stateVar() } case 0x9942ec6f {
case 0x9942ec6f { external_fun_f2() } if callvalue() { revert(_3, _3) }
case 0xa00b982b { external_fun_constVar() } if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) }
let _6 := sload(_3)
if eq(_6, sub(shl(255, 1), 1))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(_3, 0x24)
}
let ret := add(_6, 1)
sstore(_3, ret)
/// @src 0:410:418 \"this.f()\"
let _7 := /** @src 1:91:166 \"contract D is C(3)...\" */ mload(_2)
/// @src 0:410:418 \"this.f()\"
mstore(_7, /** @src 1:91:166 \"contract D is C(3)...\" */ shl(228, 0x026121ff))
/// @src 0:410:418 \"this.f()\"
let _8 := staticcall(gas(), /** @src 0:410:414 \"this\" */ address(), /** @src 0:410:418 \"this.f()\" */ _7, /** @src 1:91:166 \"contract D is C(3)...\" */ 4, /** @src 0:410:418 \"this.f()\" */ _7, 32)
if iszero(_8)
{
/// @src 1:91:166 \"contract D is C(3)...\"
let pos := mload(_2)
returndatacopy(pos, _3, returndatasize())
revert(pos, returndatasize())
}
/// @src 0:410:418 \"this.f()\"
let expr := /** @src 1:91:166 \"contract D is C(3)...\" */ _3
/// @src 0:410:418 \"this.f()\"
if _8
{
let _9 := 32
if gt(_9, returndatasize()) { _9 := returndatasize() }
/// @src 1:91:166 \"contract D is C(3)...\"
let newFreePtr := add(_7, and(add(_9, 31), not(31)))
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _7))
{
mstore(_3, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(_3, 0x24)
}
mstore(_2, newFreePtr)
if slt(sub(/** @src 0:410:418 \"this.f()\" */ add(_7, _9), /** @src 1:91:166 \"contract D is C(3)...\" */ _7), /** @src 0:410:418 \"this.f()\" */ 32)
/// @src 1:91:166 \"contract D is C(3)...\"
{ revert(_3, _3) }
/// @src 0:410:418 \"this.f()\"
expr := /** @src 1:91:166 \"contract D is C(3)...\" */ mload(_7)
}
/// @src 0:399:418 \"stateVar + this.f()\"
let expr_1 := checked_add_int256(ret, expr)
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\"
let var := /** @src 0:399:429 \"stateVar + this.f() + immutVar\" */ checked_add_int256(expr_1, /** @src 0:421:429 \"immutVar\" */ loadimmutable(\"8\"))
/// @src 1:91:166 \"contract D is C(3)...\"
let memPos_1 := mload(_2)
mstore(memPos_1, var)
return(memPos_1, /** @src 0:410:418 \"this.f()\" */ 32)
}
case /** @src 1:91:166 \"contract D is C(3)...\" */ 0xa00b982b {
if callvalue() { revert(_3, _3) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) }
let memPos_2 := mload(_2)
mstore(memPos_2, /** @src 0:124:126 \"41\" */ 0x29)
/// @src 1:91:166 \"contract D is C(3)...\"
return(memPos_2, 32)
}
} }
revert(0, 0) revert(0, 0)
} }
function abi_encode_int256(headStart, value0) -> tail
{
tail := add(headStart, 32)
mstore(headStart, value0)
}
function external_fun_stateVar()
{
if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let _1 := sload(0)
let memPos := mload(64)
mstore(memPos, _1)
return(memPos, 32)
}
function external_fun_f2()
{
if callvalue() { revert(0, 0) }
let _1 := 0
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
let _2 := sload(_1)
if eq(_2, sub(shl(255, 1), 1)) { panic_error_0x11() }
let ret := add(_2, 1)
sstore(_1, ret)
/// @src 0:410:418 \"this.f()\"
let _3 := /** @src 1:91:166 \"contract D is C(3)...\" */ mload(64)
/// @src 0:410:418 \"this.f()\"
mstore(_3, /** @src 1:91:166 \"contract D is C(3)...\" */ shl(228, 0x026121ff))
/// @src 0:410:418 \"this.f()\"
let _4 := staticcall(gas(), /** @src 0:410:414 \"this\" */ address(), /** @src 0:410:418 \"this.f()\" */ _3, /** @src 1:91:166 \"contract D is C(3)...\" */ 4, /** @src 0:410:418 \"this.f()\" */ _3, 32)
if iszero(_4)
{
/// @src 1:91:166 \"contract D is C(3)...\"
let pos := mload(64)
returndatacopy(pos, _1, returndatasize())
revert(pos, returndatasize())
}
/// @src 0:410:418 \"this.f()\"
let expr := /** @src 1:91:166 \"contract D is C(3)...\" */ _1
/// @src 0:410:418 \"this.f()\"
if _4
{
let _5 := 32
if gt(_5, returndatasize()) { _5 := returndatasize() }
/// @src 1:91:166 \"contract D is C(3)...\"
let newFreePtr := add(_3, and(add(_5, 31), not(31)))
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _3))
{
mstore(_1, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(_1, 0x24)
}
mstore(64, newFreePtr)
/// @src 0:410:418 \"this.f()\"
expr := abi_decode_int256_fromMemory(_3, add(_3, _5))
}
/// @src 0:399:418 \"stateVar + this.f()\"
let expr_1 := checked_add_int256(ret, expr)
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\"
let var := /** @src 0:399:429 \"stateVar + this.f() + immutVar\" */ checked_add_int256(expr_1, /** @src 0:421:429 \"immutVar\" */ loadimmutable(\"8\"))
/// @src 1:91:166 \"contract D is C(3)...\"
let memPos := mload(64)
return(memPos, sub(abi_encode_int256(memPos, var), memPos))
}
function external_fun_constVar()
{
if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let memPos := mload(64)
mstore(memPos, /** @src 0:124:126 \"41\" */ 0x29)
/// @src 1:91:166 \"contract D is C(3)...\"
return(memPos, 32)
}
function panic_error_0x11()
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(0, 0x24)
}
function checked_add_int256(x, y) -> sum function checked_add_int256(x, y) -> sum
{ {
let _1 := slt(x, 0) let _1 := slt(x, 0)
if and(iszero(_1), sgt(y, sub(sub(shl(255, 1), 1), x))) { panic_error_0x11() } if and(iszero(_1), sgt(y, sub(sub(shl(255, 1), 1), x)))
if and(_1, slt(y, sub(shl(255, 1), x))) { panic_error_0x11() } {
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(0, 0x24)
}
if and(_1, slt(y, sub(shl(255, 1), x)))
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(0, 0x24)
}
sum := add(x, y) sum := add(x, y)
} }
function abi_decode_int256_fromMemory(headStart, dataEnd) -> value0
{
if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }
value0 := mload(headStart)
}
} }
data \".metadata\" hex\"<BYTECODE REMOVED>\" data \".metadata\" hex\"<BYTECODE REMOVED>\"
} }

View File

@ -3,7 +3,7 @@
EVM assembly: EVM assembly:
/* "viair_subobject_optimization/input.sol":61:668 contract C {... */ /* "viair_subobject_optimization/input.sol":61:668 contract C {... */
0x80 0x80
jumpi(tag_6, callvalue) jumpi(tag_7, callvalue)
0x1f 0x1f
bytecodeSize bytecodeSize
codesize codesize
@ -25,7 +25,7 @@ EVM assembly:
dup5 dup5
lt lt
or or
tag_4 tag_3
jumpi jumpi
dup1 dup1
dup5 dup5
@ -40,14 +40,16 @@ EVM assembly:
add add
sub sub
slt slt
tag_6 tag_7
jumpi jumpi
tag_8
swap1
mload mload
tag_1 sub(shl(0x48, 0x01), 0xbe)
jump // in /* "viair_subobject_optimization/input.sol":620:645 x == 0xFFFFFFFFFFFFFFFF42 */
tag_8: eq
/* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */
tag_7
jumpi
/* "viair_subobject_optimization/input.sol":61:668 contract C {... */
mload(0x40) mload(0x40)
dataSize(sub_0) dataSize(sub_0)
swap1 swap1
@ -56,24 +58,17 @@ tag_8:
dup3 dup3
codecopy codecopy
return return
tag_6: /* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */
tag_7:
0x00 0x00
/* "viair_subobject_optimization/input.sol":653:661 revert() */
dup1 dup1
revert revert
tag_4: /* "viair_subobject_optimization/input.sol":61:668 contract C {... */
tag_3:
mstore(0x00, shl(0xe0, 0x4e487b71)) mstore(0x00, shl(0xe0, 0x4e487b71))
mstore(0x04, 0x41) mstore(0x04, 0x41)
revert(0x00, 0x24) revert(0x00, 0x24)
/* "viair_subobject_optimization/input.sol":76:666 constructor(uint x) {... */
tag_1:
sub(shl(0x48, 0x01), 0xbe)
/* "viair_subobject_optimization/input.sol":620:645 x == 0xFFFFFFFFFFFFFFFF42 */
eq
/* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */
tag_6
jumpi
/* "viair_subobject_optimization/input.sol":76:666 constructor(uint x) {... */
jump // out
stop stop
sub_0: assembly { sub_0: assembly {
@ -110,163 +105,162 @@ stop
sub_0: assembly { sub_0: assembly {
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */ /* "viair_subobject_optimization/input.sol":669:772 contract D {... */
0x80 0x80
jumpi(tag_2, iszero(lt(calldatasize, 0x04))) jumpi(tag_1, iszero(lt(calldatasize, 0x04)))
0x00 0x00
dup1 dup1
revert revert
tag_2: tag_1:
0x00 0x00
swap1 dup1
dup2
calldataload calldataload
0xe0 0xe0
shr shr
0x26121ff0 0x26121ff0
eq eq
tag_4 tag_3
jumpi jumpi
0x00 0x00
dup1 dup1
revert revert
tag_4: tag_3:
jumpi(tag_8, callvalue) jumpi(tag_7, callvalue)
dup2 dup1
add(calldatasize, not(0x03)) add(calldatasize, not(0x03))
slt slt
tag_8 tag_7
jumpi jumpi
/* "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 {... */
0x3f
dup2
add
not(0x1f) not(0x1f)
and swap1
dup2
0x3f
dup3 dup3
add add
0xffffffffffffffff and
dup2 dup5
gt add
dup4 swap3
dup3 dup5
dup5
lt lt
0xffffffffffffffff
dup6
gt
or or
tag_10 tag_9
jumpi jumpi
tag_12 swap3
swap4 swap2
pop dup5
0x40 0x40
swap4
dup5
mstore mstore
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */ /* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
dup1
dup3 dup3
dup2
mstore mstore
dataOffset(sub_0)
0x20 0x20
swap3
dataOffset(sub_0)
dup5
dup4 dup4
add add
codecopy codecopy
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */ /* "viair_subobject_optimization/input.sol":669:772 contract D {... */
mload(0x40) dup4
swap2 mload
swap5
dup4
dup7
swap5
dup6
mstore
dup3
mload
swap3
dup4
dup3
dup8
add
mstore
dup3 dup3
swap2 swap2
tag_11:
dup5
dup4
lt
tag_12
jumpi
pop
pop
swap1
dup3 dup3
tag_1 0x1f
jump // in swap4
tag_12: swap3
gt
tag_14
jumpi
tag_15:
pop
add
and
dup2
add
sub sub
add
swap1 swap1
return return
tag_10: tag_14:
shl(0xe0, 0x4e487b71) dup6
dup3
dup7
add
add
mstore
dup7
jump(tag_15)
tag_12:
dup2
dup4
add
dup2
add
mload
dup10
dup5 dup5
add
dup10
add
mstore
dup9
swap7
pop
swap2
dup3
add
swap2
jump(tag_11)
tag_9:
shl(0xe0, 0x4e487b71)
dup2
mstore mstore
mstore(0x04, 0x41) mstore(0x04, 0x41)
0x24 0x24
dup5 swap1
revert revert
tag_8: tag_7:
pop
dup1 dup1
revert revert
tag_1:
swap2
swap1
swap2
0x20
dup1
dup3
mstore
dup4
mload
swap1
dup2
dup2
dup5
add
mstore
0x00
swap5
tag_13:
dup3
dup7
lt
tag_14
jumpi
pop
pop
dup1
0x40
swap4
swap5
gt
tag_16
jumpi
tag_17:
0x1f
add
not(0x1f)
and
add
add
swap1
jump // out
tag_16:
0x00
dup4
dup3
dup5
add
add
mstore
jump(tag_17)
tag_14:
dup6
dup2
add
dup3
add
mload
dup5
dup8
add
0x40
add
mstore
swap5
dup2
add
swap5
jump(tag_13)
stop stop
sub_0: assembly { sub_0: assembly {
/* "viair_subobject_optimization/input.sol":61:668 contract C {... */ /* "viair_subobject_optimization/input.sol":61:668 contract C {... */
0x80 0x80
jumpi(tag_6, callvalue) jumpi(tag_7, callvalue)
0x1f 0x1f
bytecodeSize bytecodeSize
codesize codesize
@ -288,7 +282,7 @@ sub_0: assembly {
dup5 dup5
lt lt
or or
tag_4 tag_3
jumpi jumpi
dup1 dup1
dup5 dup5
@ -303,14 +297,16 @@ sub_0: assembly {
add add
sub sub
slt slt
tag_6 tag_7
jumpi jumpi
tag_8
swap1
mload mload
tag_1 sub(shl(0x48, 0x01), 0xbe)
jump // in /* "viair_subobject_optimization/input.sol":620:645 x == 0xFFFFFFFFFFFFFFFF42 */
tag_8: eq
/* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */
tag_7
jumpi
/* "viair_subobject_optimization/input.sol":61:668 contract C {... */
mload(0x40) mload(0x40)
dataSize(sub_0) dataSize(sub_0)
swap1 swap1
@ -319,24 +315,17 @@ sub_0: assembly {
dup3 dup3
codecopy codecopy
return return
tag_6: /* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */
tag_7:
0x00 0x00
/* "viair_subobject_optimization/input.sol":653:661 revert() */
dup1 dup1
revert revert
tag_4: /* "viair_subobject_optimization/input.sol":61:668 contract C {... */
tag_3:
mstore(0x00, shl(0xe0, 0x4e487b71)) mstore(0x00, shl(0xe0, 0x4e487b71))
mstore(0x04, 0x41) mstore(0x04, 0x41)
revert(0x00, 0x24) revert(0x00, 0x24)
/* "viair_subobject_optimization/input.sol":76:666 constructor(uint x) {... */
tag_1:
sub(shl(0x48, 0x01), 0xbe)
/* "viair_subobject_optimization/input.sol":620:645 x == 0xFFFFFFFFFFFFFFFF42 */
eq
/* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */
tag_6
jumpi
/* "viair_subobject_optimization/input.sol":76:666 constructor(uint x) {... */
jump // out
stop stop
sub_0: assembly { sub_0: assembly {

View File

@ -22,6 +22,6 @@ contract C {
// ---- // ----
// f() -> 0x20, 0x8, 0x40, 0x3, 0x9, 0xa, 0xb // f() -> 0x20, 0x8, 0x40, 0x3, 0x9, 0xa, 0xb
// gas irOptimized: 203310 // gas irOptimized: 203172
// gas legacy: 206075 // gas legacy: 206075
// gas legacyOptimized: 203059 // gas legacyOptimized: 203059

View File

@ -59,10 +59,10 @@ contract C {
// EVMVersion: >homestead // EVMVersion: >homestead
// ---- // ----
// test_bytes() -> // test_bytes() ->
// gas irOptimized: 371912 // gas irOptimized: 367365
// gas legacy: 416585 // gas legacy: 416585
// gas legacyOptimized: 322043 // gas legacyOptimized: 322043
// test_uint256() -> // test_uint256() ->
// gas irOptimized: 523016 // gas irOptimized: 515982
// gas legacy: 583100 // gas legacy: 583100
// gas legacyOptimized: 444161 // gas legacyOptimized: 444161

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: 167691 // gas irOptimized: 166606
// gas legacy: 169347 // gas legacy: 169347
// gas legacyOptimized: 167269 // gas legacyOptimized: 167269

View File

@ -60,10 +60,10 @@ contract C {
// EVMVersion: >homestead // EVMVersion: >homestead
// ---- // ----
// test_bytes() -> // test_bytes() ->
// gas irOptimized: 371912 // gas irOptimized: 367365
// gas legacy: 416585 // gas legacy: 416585
// gas legacyOptimized: 322043 // gas legacyOptimized: 322043
// test_uint256() -> // test_uint256() ->
// gas irOptimized: 523016 // gas irOptimized: 515982
// gas legacy: 583100 // gas legacy: 583100
// gas legacyOptimized: 444161 // gas legacyOptimized: 444161

View File

@ -51,6 +51,6 @@ contract C {
// f2() -> 0x20, 0xa0, 0x1, 0x60, 0x2, 0x3, "abc" // f2() -> 0x20, 0xa0, 0x1, 0x60, 0x2, 0x3, "abc"
// f3() -> 0x20, 0xa0, 0x1, 0x60, 0x2, 0x3, "abc" // f3() -> 0x20, 0xa0, 0x1, 0x60, 0x2, 0x3, "abc"
// f4() -> 0x20, 0x160, 0x1, 0x80, 0xc0, 0x2, 0x3, "abc", 0x7, 0x40, 0x2, 0x2, 0x3 // f4() -> 0x20, 0x160, 0x1, 0x80, 0xc0, 0x2, 0x3, "abc", 0x7, 0x40, 0x2, 0x2, 0x3
// gas irOptimized: 113277 // gas irOptimized: 112820
// gas legacy: 114900 // gas legacy: 114900
// gas legacyOptimized: 112606 // gas legacyOptimized: 112606

View File

@ -30,6 +30,6 @@ contract C is B {
} }
// ---- // ----
// test() -> 77 // test() -> 77
// gas irOptimized: 119711 // gas irOptimized: 120170
// gas legacy: 155093 // gas legacy: 155093
// gas legacyOptimized: 111550 // gas legacyOptimized: 111550

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: 171829 // gas irOptimized: 128098
// gas legacy: 140672 // gas legacy: 140672
// gas legacyOptimized: 119588 // gas legacyOptimized: 119588

View File

@ -18,10 +18,10 @@ 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: 180924 // gas irOptimized: 180882
// gas legacy: 184929 // gas legacy: 184929
// gas legacyOptimized: 181504 // gas legacyOptimized: 181504
// 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
// gas irOptimized: 112520 // gas irOptimized: 112533
// gas legacy: 115468 // gas legacy: 115468
// gas legacyOptimized: 112988 // gas legacyOptimized: 112988

View File

@ -9,6 +9,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: 135918 // gas irOptimized: 135787
// gas legacy: 137181 // gas legacy: 137181
// gas legacyOptimized: 136073 // gas legacyOptimized: 136073

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: 189800 // gas irOptimized: 189640
// gas legacy: 211149 // gas legacy: 211149
// gas legacyOptimized: 206054 // gas legacyOptimized: 206054
// data(uint256,uint256): 0x02, 0x02 -> 0x09 // data(uint256,uint256): 0x02, 0x02 -> 0x09

View File

@ -17,6 +17,6 @@ contract c {
} }
// ---- // ----
// test() -> 0 // test() -> 0
// gas irOptimized: 157949 // gas irOptimized: 157200
// gas legacy: 188576 // gas legacy: 188576
// gas legacyOptimized: 183333 // gas legacyOptimized: 183333

View File

@ -13,7 +13,7 @@ contract c {
// ---- // ----
// getLength() -> 0 // getLength() -> 0
// set(): 1, 2 -> true // set(): 1, 2 -> true
// gas irOptimized: 110435 // gas irOptimized: 110402
// gas legacy: 110723 // gas legacy: 110723
// gas legacyOptimized: 110564 // gas legacyOptimized: 110564
// getLength() -> 68 // getLength() -> 68

View File

@ -9,7 +9,7 @@ contract C {
// ---- // ----
// constructor(): 1, 2, 3 -> // constructor(): 1, 2, 3 ->
// gas irOptimized: 142640 // gas irOptimized: 141700
// gas legacy: 183490 // gas legacy: 183490
// gas legacyOptimized: 151938 // gas legacyOptimized: 151938
// a(uint256): 0 -> 1 // a(uint256): 0 -> 1

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: 650608 // gas irOptimized: 650748
// gas legacy: 694515 // gas legacy: 694515
// gas legacyOptimized: 694013 // gas legacyOptimized: 694013
// 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: 153260 // gas irOptimized: 146913
// gas legacy: 155961 // gas legacy: 155961
// gas legacyOptimized: 153588 // gas legacyOptimized: 153588

View File

@ -13,6 +13,6 @@ contract C {
} }
// ---- // ----
// f() -> 0 // f() -> 0
// gas irOptimized: 135098 // gas irOptimized: 134352
// gas legacy: 135313 // gas legacy: 135313
// gas legacyOptimized: 134548 // gas legacyOptimized: 134548

View File

@ -19,6 +19,6 @@ contract c {
// ---- // ----
// test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x05000000000000000000000000000000000000000000000000 // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x05000000000000000000000000000000000000000000000000
// gas irOptimized: 212564 // gas irOptimized: 209152
// gas legacy: 221856 // gas legacy: 221856
// gas legacyOptimized: 220680 // gas legacyOptimized: 220680

View File

@ -35,12 +35,12 @@ contract c {
} }
// ---- // ----
// test() -> 0x02000202 // test() -> 0x02000202
// gas irOptimized: 4652048 // gas irOptimized: 4649903
// gas legacy: 4578320 // gas legacy: 4578320
// gas legacyOptimized: 4548312 // gas legacyOptimized: 4548312
// storageEmpty -> 1 // storageEmpty -> 1
// clear() -> 0, 0 // clear() -> 0, 0
// gas irOptimized: 4483170 // gas irOptimized: 4477229
// gas legacy: 4410748 // gas legacy: 4410748
// gas legacyOptimized: 4382489 // gas legacyOptimized: 4382489
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -13,6 +13,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: 690203 // gas irOptimized: 689834
// gas legacy: 686268 // gas legacy: 686268
// gas legacyOptimized: 685688 // gas legacyOptimized: 685688

View File

@ -17,6 +17,6 @@ contract c {
} }
// ---- // ----
// test() -> 5, 4 // test() -> 5, 4
// gas irOptimized: 225954 // gas irOptimized: 225027
// gas legacy: 233801 // gas legacy: 233801
// gas legacyOptimized: 232816 // gas legacyOptimized: 232816

View File

@ -23,6 +23,6 @@ contract c {
// compileToEwasm: also // compileToEwasm: also
// ---- // ----
// test() -> 3, 4 // test() -> 3, 4
// gas irOptimized: 190480 // gas irOptimized: 189690
// gas legacy: 195353 // gas legacy: 195353
// gas legacyOptimized: 192441 // gas legacyOptimized: 192441

View File

@ -15,7 +15,7 @@ contract c {
// ---- // ----
// setData1(uint256,uint256,uint256): 10, 5, 4 -> // setData1(uint256,uint256,uint256): 10, 5, 4 ->
// copyStorageStorage() -> // copyStorageStorage() ->
// gas irOptimized: 111387 // gas irOptimized: 111374
// gas legacy: 109278 // gas legacy: 109278
// gas legacyOptimized: 109268 // gas legacyOptimized: 109268
// getData2(uint256): 5 -> 10, 4 // getData2(uint256): 5 -> 10, 4

View File

@ -18,6 +18,6 @@ contract c {
// ---- // ----
// test() -> 5, 4 // test() -> 5, 4
// gas irOptimized: 272736 // gas irOptimized: 272950
// gas legacy: 270834 // gas legacy: 270834
// gas legacyOptimized: 269960 // gas legacyOptimized: 269960

View File

@ -12,6 +12,6 @@ contract c {
// ---- // ----
// test() -> 9, 4 // test() -> 9, 4
// gas irOptimized: 123162 // gas irOptimized: 123143
// gas legacy: 123579 // gas legacy: 123579
// gas legacyOptimized: 123208 // gas legacyOptimized: 123208

View File

@ -17,7 +17,7 @@ contract c {
} }
// ---- // ----
// test() -> 4, 5 // test() -> 4, 5
// gas irOptimized: 238799 // gas irOptimized: 238692
// gas legacy: 238736 // gas legacy: 238736
// gas legacyOptimized: 237159 // gas legacyOptimized: 237159
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -15,6 +15,6 @@ contract C {
} }
// ---- // ----
// f() -> 0x20, 2, 0x40, 0xa0, 2, 0, 1, 2, 2, 3 // f() -> 0x20, 2, 0x40, 0xa0, 2, 0, 1, 2, 2, 3
// gas irOptimized: 161780 // gas irOptimized: 161777
// gas legacy: 162278 // gas legacy: 162278
// gas legacyOptimized: 159955 // gas legacyOptimized: 159955

View File

@ -19,6 +19,6 @@ contract c {
// compileToEwasm: also // compileToEwasm: also
// ---- // ----
// test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000 // test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 129167 // gas irOptimized: 124757
// gas legacy: 186184 // gas legacy: 186184
// gas legacyOptimized: 165682 // gas legacyOptimized: 165682

View File

@ -21,6 +21,6 @@ contract c {
// compileToEwasm: also // compileToEwasm: also
// ---- // ----
// test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x0 // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x0
// gas irOptimized: 294770 // gas irOptimized: 293621
// gas legacy: 303626 // gas legacy: 303626
// gas legacyOptimized: 301945 // gas legacyOptimized: 301945

View File

@ -21,6 +21,6 @@ contract c {
// compileToEwasm: also // compileToEwasm: also
// ---- // ----
// test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x00 // test() -> 0x01000000000000000000000000000000000000000000000000, 0x02000000000000000000000000000000000000000000000000, 0x03000000000000000000000000000000000000000000000000, 0x04000000000000000000000000000000000000000000000000, 0x00
// gas irOptimized: 273961 // gas irOptimized: 273177
// gas legacy: 276360 // gas legacy: 276360
// gas legacyOptimized: 275411 // gas legacyOptimized: 275411

View File

@ -38,10 +38,10 @@ contract c {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// test1(uint256[][]): 0x20, 2, 0x40, 0x40, 2, 23, 42 -> 2, 65 // test1(uint256[][]): 0x20, 2, 0x40, 0x40, 2, 23, 42 -> 2, 65
// gas irOptimized: 181298 // gas irOptimized: 180723
// test2(uint256[][2]): 0x20, 0x40, 0x40, 2, 23, 42 -> 2, 65 // test2(uint256[][2]): 0x20, 0x40, 0x40, 2, 23, 42 -> 2, 65
// gas irOptimized: 157929 // gas irOptimized: 157518
// test3(uint256[2][]): 0x20, 2, 23, 42, 23, 42 -> 2, 65 // test3(uint256[2][]): 0x20, 2, 23, 42, 23, 42 -> 2, 65
// gas irOptimized: 135098 // gas irOptimized: 134709
// test4(uint256[2][2]): 23, 42, 23, 42 -> 65 // test4(uint256[2][2]): 23, 42, 23, 42 -> 65
// gas irOptimized: 111346 // gas irOptimized: 111324

View File

@ -38,12 +38,12 @@ contract Test {
} }
// ---- // ----
// test() -> 24 // test() -> 24
// gas irOptimized: 227133 // gas irOptimized: 226714
// gas legacy: 227133 // gas legacy: 227133
// gas legacyOptimized: 226547 // gas legacyOptimized: 226547
// test1() -> 3 // test1() -> 3
// test2() -> 6 // test2() -> 6
// test3() -> 24 // test3() -> 24
// gas irOptimized: 133590 // gas irOptimized: 133317
// gas legacy: 134295 // gas legacy: 134295
// gas legacyOptimized: 133383 // gas legacyOptimized: 133383

View File

@ -45,7 +45,7 @@ contract C {
} }
// ---- // ----
// copyExternalStorageArrayOfFunctionType() -> true // copyExternalStorageArrayOfFunctionType() -> true
// gas irOptimized: 104659 // gas irOptimized: 104615
// gas legacy: 108722 // gas legacy: 108722
// gas legacyOptimized: 102438 // gas legacyOptimized: 102438
// copyInternalArrayOfFunctionType() -> true // copyInternalArrayOfFunctionType() -> true

View File

@ -48,7 +48,7 @@ contract C {
} }
// ---- // ----
// copyExternalStorageArraysOfFunctionType() -> true // copyExternalStorageArraysOfFunctionType() -> true
// gas irOptimized: 104332 // gas irOptimized: 104288
// gas legacy: 108459 // gas legacy: 108459
// gas legacyOptimized: 102171 // gas legacyOptimized: 102171
// copyInternalArrayOfFunctionType() -> true // copyInternalArrayOfFunctionType() -> true

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: 121019 // gas irOptimized: 119740

View File

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

View File

@ -23,4 +23,4 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// f((uint256[])[]): 0x20, 3, 0x60, 0x60, 0x60, 0x20, 3, 1, 2, 3 -> 3, 1 // f((uint256[])[]): 0x20, 3, 0x60, 0x60, 0x60, 0x20, 3, 1, 2, 3 -> 3, 1
// gas irOptimized: 328592 // gas irOptimized: 327727

View File

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

View File

@ -14,6 +14,6 @@ contract C {
// compileToEwasm: also // compileToEwasm: also
// ---- // ----
// f() -> 1, 2, 3 // f() -> 1, 2, 3
// gas irOptimized: 132298 // gas irOptimized: 131933
// gas legacy: 134619 // gas legacy: 134619
// gas legacyOptimized: 131940 // gas legacyOptimized: 131940

View File

@ -5,11 +5,11 @@ contract c {
} }
// ---- // ----
// set(uint256): 1, 2 -> true // set(uint256): 1, 2 -> true
// gas irOptimized: 110604 // gas irOptimized: 110576
// gas legacy: 111088 // gas legacy: 111088
// gas legacyOptimized: 110733 // gas legacyOptimized: 110733
// set(uint256): 2, 2, 3, 4, 5 -> true // set(uint256): 2, 2, 3, 4, 5 -> true
// gas irOptimized: 177564 // gas irOptimized: 177527
// gas legacy: 178018 // gas legacy: 178018
// gas legacyOptimized: 177663 // gas legacyOptimized: 177663
// 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: 121752 // gas irOptimized: 108395
// gas legacy: 123884 // gas legacy: 123884
// gas legacyOptimized: 119139 // gas legacyOptimized: 119139
// f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671 // f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671
// gas irOptimized: 130727 // gas irOptimized: 117480
// gas legacy: 134936 // gas legacy: 134936
// gas legacyOptimized: 130046 // gas legacyOptimized: 130046
// f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000 // f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 137726 // gas irOptimized: 124117
// gas legacy: 141728 // gas legacy: 141728
// gas legacyOptimized: 136711 // gas legacyOptimized: 136711
// f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992 // f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992
// gas irOptimized: 152346 // gas irOptimized: 126467
// gas legacy: 159768 // gas legacy: 159768
// gas legacyOptimized: 150641 // gas legacyOptimized: 150641
// 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: 406083 // gas irOptimized: 353326
// gas legacy: 421067 // gas legacy: 421067
// gas legacyOptimized: 402910 // gas legacyOptimized: 402910

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: 111159 // gas irOptimized: 111027
// gas legacy: 111565 // gas legacy: 111565
// gas legacyOptimized: 111347 // gas legacyOptimized: 111347

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: 179912 // gas irOptimized: 179880
// gas legacy: 180676 // gas legacy: 180676
// gas legacyOptimized: 180070 // gas legacyOptimized: 180070
// g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000 // g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000
// gas irOptimized: 107291 // gas irOptimized: 107211
// gas legacy: 107877 // gas legacy: 107877
// gas legacyOptimized: 107236 // gas legacyOptimized: 107236
// h() -> 0x40, 0x60, 0x00, 0x00 // h() -> 0x40, 0x60, 0x00, 0x00

View File

@ -46,6 +46,6 @@ contract C {
} }
// ---- // ----
// f() -> 0xff // f() -> 0xff
// gas irOptimized: 121123 // gas irOptimized: 119584
// gas legacy: 128005 // gas legacy: 128005
// gas legacyOptimized: 123446 // gas legacyOptimized: 123446

View File

@ -16,6 +16,6 @@ contract C {
// ---- // ----
// test() -> 7 // test() -> 7
// gas irOptimized: 124034 // gas irOptimized: 123625
// gas legacy: 205196 // gas legacy: 205196
// gas legacyOptimized: 204987 // gas legacyOptimized: 204987

View File

@ -20,7 +20,7 @@ contract sender {
// compileToEwasm: false // compileToEwasm: false
// ---- // ----
// (): 7 -> // (): 7 ->
// gas irOptimized: 110954 // gas irOptimized: 110826
// gas legacy: 111071 // gas legacy: 111071
// gas legacyOptimized: 111016 // gas legacyOptimized: 111016
// val() -> 0 // val() -> 0

View File

@ -18,6 +18,6 @@ contract C {
} }
// ---- // ----
// f() -> 3 // f() -> 3
// gas irOptimized: 129910 // gas irOptimized: 128172
// gas legacy: 130181 // gas legacy: 130181
// gas legacyOptimized: 129198 // gas legacyOptimized: 129198

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: 207781 // gas irOptimized: 205985
// gas legacy: 212313 // gas legacy: 212313
// gas legacyOptimized: 211462 // gas legacyOptimized: 211462

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: 202864 // gas irOptimized: 202952
// gas legacy: 204441 // gas legacy: 204441
// gas legacyOptimized: 203419 // gas legacyOptimized: 203419

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: 207781 // gas irOptimized: 205985
// gas legacy: 212318 // gas legacy: 212318
// gas legacyOptimized: 211467 // gas legacyOptimized: 211467

View File

@ -24,6 +24,6 @@ contract C {
} }
// ---- // ----
// f() -> 11, 0x0c, 1, 0x15, 22, 4 // f() -> 11, 0x0c, 1, 0x15, 22, 4
// gas irOptimized: 291848 // gas irOptimized: 291168
// gas legacy: 293516 // gas legacy: 293516
// gas legacyOptimized: 290263 // gas legacyOptimized: 290263

View File

@ -13,6 +13,6 @@ contract C {
} }
// ---- // ----
// f() -> 2, 3, 4 // f() -> 2, 3, 4
// gas irOptimized: 114114 // gas irOptimized: 110135
// gas legacy: 126350 // gas legacy: 126350
// gas legacyOptimized: 120704 // gas legacyOptimized: 120704

View File

@ -18,6 +18,6 @@ contract C {
} }
// ---- // ----
// f() -> "A", 8, 4, "B" // f() -> "A", 8, 4, "B"
// gas irOptimized: 130592 // gas irOptimized: 125828
// gas legacy: 121398 // gas legacy: 121398
// gas legacyOptimized: 115494 // gas legacyOptimized: 115494

View File

@ -16,6 +16,6 @@ contract c {
} }
// ---- // ----
// test1() -> true // test1() -> true
// gas irOptimized: 225890 // gas irOptimized: 207928
// gas legacy: 254650 // gas legacy: 254650
// gas legacyOptimized: 247384 // gas legacyOptimized: 247384

View File

@ -14,7 +14,7 @@ contract c {
// ---- // ----
// storageEmpty -> 1 // storageEmpty -> 1
// fill() -> // fill() ->
// gas irOptimized: 519884 // gas irOptimized: 519616
// gas legacy: 521710 // gas legacy: 521710
// gas legacyOptimized: 516922 // gas legacyOptimized: 516922
// storageEmpty -> 0 // storageEmpty -> 0

View File

@ -42,7 +42,7 @@ contract c {
// ---- // ----
// getLengths() -> 0, 0 // getLengths() -> 0, 0
// setLengths(uint256,uint256): 48, 49 -> // setLengths(uint256,uint256): 48, 49 ->
// gas irOptimized: 111295 // gas irOptimized: 111450
// gas legacy: 108571 // gas legacy: 108571
// gas legacyOptimized: 100417 // gas legacyOptimized: 100417
// getLengths() -> 48, 49 // getLengths() -> 48, 49

View File

@ -16,7 +16,7 @@ contract c {
// ---- // ----
// storageEmpty -> 1 // storageEmpty -> 1
// fill() -> 8 // fill() -> 8
// gas irOptimized: 122531 // gas irOptimized: 123024
// gas legacy: 121756 // gas legacy: 121756
// gas legacyOptimized: 120687 // gas legacyOptimized: 120687
// storageEmpty -> 0 // storageEmpty -> 0

View File

@ -12,7 +12,7 @@ contract c {
// ---- // ----
// storageEmpty -> 1 // storageEmpty -> 1
// fill() -> // fill() ->
// gas irOptimized: 465542 // gas irOptimized: 465440
// gas legacy: 471400 // gas legacy: 471400
// gas legacyOptimized: 467400 // gas legacyOptimized: 467400
// storageEmpty -> 0 // storageEmpty -> 0

View File

@ -19,6 +19,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: 127910 // gas irOptimized: 116813
// gas legacy: 234719 // gas legacy: 234719
// gas legacyOptimized: 132639 // gas legacyOptimized: 132639

View File

@ -9,7 +9,7 @@ contract Creator {
} }
// ---- // ----
// constructor(): 1, 2, 3, 4 -> // constructor(): 1, 2, 3, 4 ->
// gas irOptimized: 129013 // gas irOptimized: 128288
// gas legacy: 176789 // gas legacy: 176789
// gas legacyOptimized: 129585 // gas legacyOptimized: 129585
// r() -> 4 // r() -> 4

View File

@ -43,6 +43,6 @@ contract C {
// ---- // ----
// test() -> 5, 6, 7 // test() -> 5, 6, 7
// gas irOptimized: 292502 // gas irOptimized: 262057
// gas legacy: 452136 // gas legacy: 452136
// gas legacyOptimized: 284945 // gas legacyOptimized: 284945

View File

@ -23,7 +23,7 @@ contract c {
} }
// ---- // ----
// test() -> 1, 2, 3 // test() -> 1, 2, 3
// gas irOptimized: 2271044 // gas irOptimized: 2280132
// gas legacy: 2273434 // gas legacy: 2273434
// gas legacyOptimized: 2261820 // gas legacyOptimized: 2261820
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -18,7 +18,7 @@ contract c {
} }
// ---- // ----
// test() -> 38, 28, 18 // test() -> 38, 28, 18
// gas irOptimized: 188649 // gas irOptimized: 186364
// gas legacy: 189492 // gas legacy: 189492
// gas legacyOptimized: 178294 // gas legacyOptimized: 178294
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -18,7 +18,7 @@ contract c {
} }
// ---- // ----
// test() -> 20, 10 // test() -> 20, 10
// gas irOptimized: 159169 // gas irOptimized: 158009
// gas legacy: 159279 // gas legacy: 159279
// gas legacyOptimized: 152921 // gas legacyOptimized: 152921
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -10,6 +10,6 @@ contract c {
// ---- // ----
// test() -> 0x20, 29, 0x0303030303030303030303030303030303030303030303030303030303000000 // test() -> 0x20, 29, 0x0303030303030303030303030303030303030303030303030303030303000000
// gas irOptimized: 109515 // gas irOptimized: 109341
// gas legacy: 126728 // gas legacy: 126728
// gas legacyOptimized: 123444 // gas legacyOptimized: 123444

View File

@ -16,7 +16,7 @@ contract c {
} }
// ---- // ----
// test() -> true // test() -> true
// gas irOptimized: 196541 // gas irOptimized: 180539
// gas legacy: 228685 // gas legacy: 228685
// gas legacyOptimized: 209662 // gas legacyOptimized: 209662
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -10,6 +10,6 @@ contract c {
// ---- // ----
// test() -> 0x20, 33, 0x303030303030303030303030303030303030303030303030303030303030303, 0x0300000000000000000000000000000000000000000000000000000000000000 // test() -> 0x20, 33, 0x303030303030303030303030303030303030303030303030303030303030303, 0x0300000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 108487 // gas irOptimized: 108146
// gas legacy: 125610 // gas legacy: 125610
// gas legacyOptimized: 122582 // gas legacyOptimized: 122582

View File

@ -16,6 +16,6 @@ contract c {
} }
// ---- // ----
// test() -> 5, 4, 3, 3 // test() -> 5, 4, 3, 3
// gas irOptimized: 111317 // gas irOptimized: 111448
// gas legacy: 111838 // gas legacy: 111838
// gas legacyOptimized: 111128 // gas legacyOptimized: 111128

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: 113256 // gas irOptimized: 112776
// gas legacy: 113686 // gas legacy: 113686
// gas legacyOptimized: 113499 // gas legacyOptimized: 113499

View File

@ -20,6 +20,6 @@ contract c {
} }
// ---- // ----
// test() -> 2, 3, 4, 5 // test() -> 2, 3, 4, 5
// gas irOptimized: 136894 // gas irOptimized: 136277
// gas legacy: 147484 // gas legacy: 147484
// gas legacyOptimized: 146456 // gas legacyOptimized: 146456

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: 138691 // gas irOptimized: 138230
// gas legacy: 145150 // gas legacy: 145150
// gas legacyOptimized: 139171 // gas legacyOptimized: 139171

View File

@ -15,6 +15,6 @@ contract c {
} }
// ---- // ----
// test() -> 0 // test() -> 0
// gas irOptimized: 176495 // gas irOptimized: 173650
// gas legacy: 216790 // gas legacy: 216790
// gas legacyOptimized: 203886 // gas legacyOptimized: 203886

View File

@ -13,6 +13,6 @@ contract C {
} }
// ---- // ----
// f() -> // f() ->
// gas irOptimized: 179590 // gas irOptimized: 179173
// gas legacy: 180602 // gas legacy: 180602
// gas legacyOptimized: 180385 // gas legacyOptimized: 180385

View File

@ -27,14 +27,14 @@ contract C {
// ---- // ----
// l() -> 0 // l() -> 0
// f(uint256,uint256): 42, 64 -> // f(uint256,uint256): 42, 64 ->
// gas irOptimized: 112517 // gas irOptimized: 112482
// gas legacy: 108105 // gas legacy: 108105
// gas legacyOptimized: 101987 // gas legacyOptimized: 101987
// l() -> 1 // l() -> 1
// ll(uint256): 0 -> 43 // ll(uint256): 0 -> 43
// a(uint256,uint256): 0, 42 -> 64 // a(uint256,uint256): 0, 42 -> 64
// f(uint256,uint256): 84, 128 -> // f(uint256,uint256): 84, 128 ->
// gas irOptimized: 116389 // gas irOptimized: 116270
// gas legacy: 107525 // gas legacy: 107525
// gas legacyOptimized: 96331 // gas legacyOptimized: 96331
// l() -> 2 // l() -> 2

View File

@ -21,7 +21,7 @@ contract C {
// ---- // ----
// l() -> 0 // l() -> 0
// g(uint256): 70 -> // g(uint256): 70 ->
// gas irOptimized: 185922 // gas irOptimized: 183587
// gas legacy: 183811 // gas legacy: 183811
// gas legacyOptimized: 179218 // gas legacyOptimized: 179218
// l() -> 70 // l() -> 70

View File

@ -24,6 +24,6 @@ contract Main {
} }
// ---- // ----
// f(uint256): 0x34 -> 0x46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1 // f(uint256): 0x34 -> 0x46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1
// gas irOptimized: 113198 // gas irOptimized: 112899
// gas legacy: 126596 // gas legacy: 126596
// gas legacyOptimized: 113823 // gas legacyOptimized: 113823

View File

@ -10,7 +10,7 @@ contract c {
// compileToEwasm: false // compileToEwasm: false
// ---- // ----
// (): 1, 2, 3, 4, 5 -> // (): 1, 2, 3, 4, 5 ->
// gas irOptimized: 155170 // gas irOptimized: 155158
// gas legacy: 155249 // gas legacy: 155249
// gas legacyOptimized: 155212 // gas legacyOptimized: 155212
// checkIfDataIsEmpty() -> false // checkIfDataIsEmpty() -> false

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: 437093 // gas irOptimized: 430087
// gas legacy: 590683 // gas legacy: 590683
// gas legacyOptimized: 448326 // gas legacyOptimized: 448326

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: 293203 // gas irOptimized: 282398
// gas legacy: 428711 // gas legacy: 428711
// gas legacyOptimized: 297922 // gas legacyOptimized: 297922

View File

@ -8,7 +8,7 @@ contract Test {
} }
// ---- // ----
// constructor(): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" -> // constructor(): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" ->
// gas irOptimized: 284909 // gas irOptimized: 273340
// gas legacy: 309607 // gas legacy: 309607
// gas legacyOptimized: 260566 // gas legacyOptimized: 260566
// m_x() -> 7 // m_x() -> 7

View File

@ -17,7 +17,7 @@ contract Main {
} }
// ---- // ----
// constructor(): "abc", true // constructor(): "abc", true
// gas irOptimized: 106683 // gas irOptimized: 106546
// gas legacy: 145838 // gas legacy: 145838
// gas legacyOptimized: 104017 // gas legacyOptimized: 104017
// getFlag() -> true // getFlag() -> true

View File

@ -10,7 +10,7 @@ contract C {
// ---- // ----
// constructor(): 1, 2, 3, 4 -> // constructor(): 1, 2, 3, 4 ->
// gas irOptimized: 174020 // gas irOptimized: 173087
// gas legacy: 221377 // gas legacy: 221377
// gas legacyOptimized: 177671 // gas legacyOptimized: 177671
// a() -> 1 // a() -> 1

View File

@ -17,6 +17,6 @@ contract C {
} }
// ---- // ----
// f(), 2000 ether -> true // f(), 2000 ether -> true
// gas irOptimized: 120037 // gas irOptimized: 120052
// gas legacy: 123226 // gas legacy: 123226
// gas legacyOptimized: 123092 // gas legacyOptimized: 123092

View File

@ -9,7 +9,7 @@ contract C {
} }
// ---- // ----
// constructor(): 2, 0 -> // constructor(): 2, 0 ->
// gas irOptimized: 103630 // gas irOptimized: 103531
// gas legacy: 117158 // gas legacy: 117158
// i() -> 2 // i() -> 2
// k() -> 0 // k() -> 0

View File

@ -21,7 +21,7 @@ contract D is B, C {
} }
// ---- // ----
// constructor(): 2, 0 -> // constructor(): 2, 0 ->
// gas irOptimized: 156071 // gas irOptimized: 154366
// gas legacy: 170665 // gas legacy: 170665
// gas legacyOptimized: 145396 // gas legacyOptimized: 145396
// i() -> 2 // i() -> 2

View File

@ -12,7 +12,7 @@ contract D is C {
} }
// ---- // ----
// constructor(): 2, 0 -> // constructor(): 2, 0 ->
// gas irOptimized: 124199 // gas irOptimized: 123982
// gas legacy: 139250 // gas legacy: 139250
// gas legacyOptimized: 119367 // gas legacyOptimized: 119367
// i() -> 2 // i() -> 2

View File

@ -13,6 +13,6 @@ contract C {
// ---- // ----
// createEvent(uint256): 42 -> // createEvent(uint256): 42 ->
// ~ emit E(uint256[]): 0x20, 0x03, 0x2a, 0x2b, 0x2c // ~ emit E(uint256[]): 0x20, 0x03, 0x2a, 0x2b, 0x2c
// gas irOptimized: 114741 // gas irOptimized: 113517
// gas legacy: 116393 // gas legacy: 116393
// gas legacyOptimized: 114415 // gas legacyOptimized: 114415

View File

@ -14,6 +14,6 @@ contract C {
// ---- // ----
// createEvent(uint256): 42 -> // createEvent(uint256): 42 ->
// ~ emit E(uint256[]): 0x20, 0x03, 0x2a, 0x2b, 0x2c // ~ emit E(uint256[]): 0x20, 0x03, 0x2a, 0x2b, 0x2c
// gas irOptimized: 114741 // gas irOptimized: 113517
// gas legacy: 116393 // gas legacy: 116393
// gas legacyOptimized: 114415 // gas legacyOptimized: 114415

View File

@ -15,6 +15,6 @@ contract C {
// ---- // ----
// createEvent(uint256): 42 -> // createEvent(uint256): 42 ->
// ~ emit E(uint256[][]): 0x20, 0x02, 0x40, 0xa0, 0x02, 0x2a, 0x2b, 0x02, 0x2c, 0x2d // ~ emit E(uint256[][]): 0x20, 0x02, 0x40, 0xa0, 0x02, 0x2a, 0x2b, 0x02, 0x2c, 0x2d
// gas irOptimized: 185444 // gas irOptimized: 185131
// gas legacy: 187621 // gas legacy: 187621
// gas legacyOptimized: 184551 // gas legacyOptimized: 184551

View File

@ -15,7 +15,7 @@ contract C {
} }
// ---- // ----
// constructor() -> // constructor() ->
// gas irOptimized: 173094 // gas irOptimized: 167934
// gas legacy: 250376 // gas legacy: 250376
// gas legacyOptimized: 174522 // gas legacyOptimized: 174522
// deposit(bytes32), 18 wei: 0x1234 -> // deposit(bytes32), 18 wei: 0x1234 ->

View File

@ -17,6 +17,6 @@ contract C {
// ---- // ----
// deposit() -> // deposit() ->
// ~ emit E(string,uint256[4]): #0xa7fb06bb999a5eb9aff9e0779953f4e1e4ce58044936c2f51c7fb879b85c08bd, #0xe755d8cc1a8cde16a2a31160dcd8017ac32d7e2f13215b29a23cdae40a78aa81 // ~ emit E(string,uint256[4]): #0xa7fb06bb999a5eb9aff9e0779953f4e1e4ce58044936c2f51c7fb879b85c08bd, #0xe755d8cc1a8cde16a2a31160dcd8017ac32d7e2f13215b29a23cdae40a78aa81
// gas irOptimized: 343396 // gas irOptimized: 333479
// gas legacy: 388679 // gas legacy: 388679
// gas legacyOptimized: 374441 // gas legacyOptimized: 374441

View File

@ -74,7 +74,7 @@ contract FixedFeeRegistrar is Registrar {
} }
// ---- // ----
// constructor() // constructor()
// gas irOptimized: 402812 // gas irOptimized: 414897
// gas legacy: 935817 // gas legacy: 935817
// gas legacyOptimized: 489951 // gas legacyOptimized: 489951
// reserve(string), 69 ether: 0x20, 3, "abc" -> // reserve(string), 69 ether: 0x20, 3, "abc" ->

View File

@ -176,7 +176,7 @@ contract DepositContract is IDepositContract, ERC165 {
} }
// ---- // ----
// constructor() // constructor()
// gas irOptimized: 1529797 // gas irOptimized: 1433406
// gas legacy: 2435803 // gas legacy: 2435803
// gas legacyOptimized: 1775425 // gas legacyOptimized: 1775425
// 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: 122134 // gas irOptimized: 116284
// gas legacy: 150273 // gas legacy: 150273
// gas legacyOptimized: 122510 // gas legacyOptimized: 122510
// 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: 122134 // gas irOptimized: 116284
// gas legacy: 150273 // gas legacy: 150273
// gas legacyOptimized: 122510 // gas legacyOptimized: 122510
// 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: 122113 // gas irOptimized: 116269
// gas legacy: 150283 // gas legacy: 150283
// gas legacyOptimized: 122523 // gas legacyOptimized: 122523
// 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: 122113 // gas irOptimized: 116269
// gas legacy: 150283 // gas legacy: 150283
// gas legacyOptimized: 122523 // gas legacyOptimized: 122523
// get_deposit_count() -> 0x20, 8, 0x0200000000000000000000000000000000000000000000000000000000000000 // get_deposit_count() -> 0x20, 8, 0x0200000000000000000000000000000000000000000000000000000000000000

View File

@ -48,7 +48,7 @@ contract test {
} }
// ---- // ----
// constructor() // constructor()
// gas irOptimized: 1926032 // gas irOptimized: 1878547
// gas legacy: 2478955 // gas legacy: 2478955
// gas legacyOptimized: 1877737 // gas legacyOptimized: 1877737
// div(int256,int256): 3141592653589793238, 88714123 -> 35412542528203691288251815328 // div(int256,int256): 3141592653589793238, 88714123 -> 35412542528203691288251815328

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