Do not optimize zero literals if PUSH0 iz available

cmdline tests
This commit is contained in:
Nikola Matic 2023-06-12 17:32:57 +02:00
parent 83fe3d4011
commit 22c679b981
280 changed files with 1188 additions and 1097 deletions

View File

@ -25,6 +25,7 @@
#include <libyul/optimiser/BlockHasher.h> #include <libyul/optimiser/BlockHasher.h>
#include <libyul/optimiser/CallGraphGenerator.h> #include <libyul/optimiser/CallGraphGenerator.h>
#include <libyul/optimiser/Semantics.h> #include <libyul/optimiser/Semantics.h>
#include <libyul/backends/evm/EVMDialect.h>
#include <libyul/SideEffects.h> #include <libyul/SideEffects.h>
#include <libyul/Exceptions.h> #include <libyul/Exceptions.h>
#include <libyul/AST.h> #include <libyul/AST.h>
@ -110,14 +111,22 @@ void CommonSubexpressionEliminator::visit(Expression& _e)
if (AssignedValue const* value = variableValue(variable)) if (AssignedValue const* value = variableValue(variable))
{ {
assertThrow(value->value, OptimizerException, ""); assertThrow(value->value, OptimizerException, "");
// Prevent using the default value of return variables
// instead of literal zeros.
if ( if (
m_returnVariables.count(variable) &&
holds_alternative<Literal>(*value->value) && holds_alternative<Literal>(*value->value) &&
valueOfLiteral(get<Literal>(*value->value)) == 0 valueOfLiteral(get<Literal>(*value->value)) == 0
) )
{
// Prevent using the default value of return variables
// instead of literal zeros.
if (m_returnVariables.count(variable))
continue; continue;
// Do not replace literal zeros when PUSH0 command is available.
if (auto&& evmDialect = dynamic_cast<EVMDialect const*>(&m_dialect))
{
if (evmDialect->evmVersion().hasPush0())
continue;
}
}
// We check for syntactic equality again because the value might have changed. // We check for syntactic equality again because the value might have changed.
if (inScope(variable) && SyntacticallyEqual{}(_e, *value->value)) if (inScope(variable) && SyntacticallyEqual{}(_e, *value->value))
{ {

View File

@ -815,7 +815,7 @@ Optimized IR AST:
[ [
{ {
"kind": "number", "kind": "number",
"nativeSrc": "650:1:0", "nativeSrc": "647:1:0",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"src": "60:13:0", "src": "60:13:0",
"type": "", "type": "",
@ -1028,7 +1028,59 @@ Optimized IR AST:
[ [
{ {
"kind": "number", "kind": "number",
"nativeSrc": "1490:1:0", "nativeSrc": "996:2:0",
"nodeType": "YulLiteral",
"src": "60:13:0",
"type": "",
"value": "64"
},
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "1012:3:0",
"nodeType": "YulLiteral",
"src": "60:13:0",
"type": "",
"value": "0x80"
}
],
"functionName":
{
"name": "memoryguard",
"nativeSrc": "1000:11:0",
"nodeType": "YulIdentifier",
"src": "60:13:0"
},
"nativeSrc": "1000:16:0",
"nodeType": "YulFunctionCall",
"src": "60:13:0"
}
],
"functionName":
{
"name": "mstore",
"nativeSrc": "989:6:0",
"nodeType": "YulIdentifier",
"src": "60:13:0"
},
"nativeSrc": "989:28:0",
"nodeType": "YulFunctionCall",
"src": "60:13:0"
},
"nativeSrc": "989:28:0",
"nodeType": "YulExpressionStatement",
"src": "60:13:0"
},
{
"expression":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "1487:1:0",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"src": "60:13:0", "src": "60:13:0",
"type": "", "type": "",

View File

@ -20,6 +20,7 @@ object "C_12" {
code { code {
{ {
/// @src 0:61:418 "contract C {..." /// @src 0:61:418 "contract C {..."
mstore(64, memoryguard(0x80))
if callvalue() { revert(0, 0) } if callvalue() { revert(0, 0) }
/// @src 0:279:410 "assembly {..." /// @src 0:279:410 "assembly {..."
sstore(0, 0x1000000000000000000000000000000000000000000000) sstore(0, 0x1000000000000000000000000000000000000000000000)

View File

@ -187,14 +187,14 @@ object "C_6" {
code { code {
{ {
/// @src 0:60:101 "contract C {..." /// @src 0:60:101 "contract C {..."
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_1)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
return(_1, _1) return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -186,14 +186,14 @@ object "C_6" {
code { code {
{ {
/// @src 0:60:101 /// @src 0:60:101
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_1)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
return(_1, _1) return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -175,14 +175,14 @@ object "C_6" {
object "C_6_deployed" { object "C_6_deployed" {
code { code {
{ {
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_1)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
return(_1, _1) return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -81,6 +81,7 @@ object "C_2" {
code { code {
{ {
/// @src 0:265:278 "contract C {}" /// @src 0:265:278 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0) revert(0, 0)
} }
} }
@ -434,65 +435,64 @@ object "D_27" {
mstore(_2, _1) mstore(_2, _1)
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _3 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_3)))
{ {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
/// @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." /// @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..."
let _4 := datasize("C_2") let _3 := datasize("C_2")
let _5 := add(_1, _4) let _4 := add(_1, _3)
let _6 := 0xffffffffffffffff let _5 := 0xffffffffffffffff
if or(gt(_5, _6), lt(_5, _1)) if or(gt(_4, _5), lt(_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 {...\" *\/ {..."
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(_3, 0x24) revert(0, 0x24)
} }
/// @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." /// @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..."
datacopy(_1, dataoffset("C_2"), _4) datacopy(_1, dataoffset("C_2"), _3)
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))) if iszero(create(0, _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(_2) let pos := mload(_2)
returndatacopy(pos, _3, returndatasize()) returndatacopy(pos, 0, returndatasize())
revert(pos, returndatasize()) revert(pos, returndatasize())
} }
let memPtr := mload(_2) let memPtr := mload(_2)
let newFreePtr := add(memPtr, _2) let newFreePtr := add(memPtr, _2)
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)) if or(gt(newFreePtr, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _5), /** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ lt(newFreePtr, memPtr))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(_3, 0x24) revert(0, 0x24)
} }
mstore(_2, newFreePtr) mstore(_2, newFreePtr)
mstore(memPtr, 2) mstore(memPtr, 2)
let _7 := 32 let _6 := 32
mstore(add(memPtr, _7), "/*") mstore(add(memPtr, _6), "/*")
let memPtr_1 := mload(_2) let memPtr_1 := mload(_2)
let newFreePtr_1 := add(memPtr_1, 96) 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)) if or(gt(newFreePtr_1, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _5), /** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ lt(newFreePtr_1, memPtr_1))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(_3, 0x24) revert(0, 0x24)
} }
mstore(_2, newFreePtr_1) mstore(_2, newFreePtr_1)
mstore(memPtr_1, 39) mstore(memPtr_1, 39)
mstore(add(memPtr_1, _7), 0x2f2a2a204073726320303a39363a313635202022636f6e74726163742044207b) mstore(add(memPtr_1, _6), 0x2f2a2a204073726320303a39363a313635202022636f6e74726163742044207b)
mstore(add(memPtr_1, _2), shl(200, 0x2e2e2e22202a2f)) mstore(add(memPtr_1, _2), shl(200, 0x2e2e2e22202a2f))
let memPos := mload(_2) let memPos := mload(_2)
mstore(memPos, _7) mstore(memPos, _6)
let length := mload(memPtr_1) let length := mload(memPtr_1)
mstore(add(memPos, _7), length) mstore(add(memPos, _6), length)
let i := _3 let i := 0
for { } lt(i, length) { i := add(i, _7) } for { } lt(i, length) { i := add(i, _6) }
{ {
mstore(add(add(memPos, i), _2), mload(add(add(memPtr_1, i), _7))) mstore(add(add(memPos, i), _2), mload(add(add(memPtr_1, i), _6)))
} }
mstore(add(add(memPos, length), _2), _3) mstore(add(add(memPos, length), _2), 0)
return(memPos, add(sub(add(memPos, and(add(length, 31), not(31))), memPos), _2)) return(memPos, add(sub(add(memPos, and(add(length, 31), not(31))), memPos), _2))
} }
} }
@ -517,6 +517,7 @@ object "D_27" {
code { code {
{ {
/// @src 0:265:278 "contract C {}" /// @src 0:265:278 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0) revert(0, 0)
} }
} }

View File

@ -17,6 +17,7 @@ object "C_7" {
code { code {
{ {
/// @src 0:82:117 "contract C {..." /// @src 0:82:117 "contract C {..."
mstore(64, memoryguard(0x80))
revert(0, 0) revert(0, 0)
} }
} }
@ -43,6 +44,7 @@ object "D_10" {
code { code {
{ {
/// @src 0:118:137 "contract D is C {..." /// @src 0:118:137 "contract D is C {..."
mstore(64, memoryguard(0x80))
revert(0, 0) revert(0, 0)
} }
} }

View File

@ -17,6 +17,7 @@ object "C_3" {
code { code {
{ {
/// @src 0:82:95 "contract C {}" /// @src 0:82:95 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0) revert(0, 0)
} }
} }
@ -47,31 +48,30 @@ object "D_16" {
mstore(64, _1) mstore(64, _1)
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _2 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_2)))
{ {
if callvalue() { revert(_2, _2) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
/// @src 0:149:156 "new C()" /// @src 0:149:156 "new C()"
let _3 := datasize("C_3") let _2 := datasize("C_3")
let _4 := add(_1, _3) let _3 := add(_1, _2)
if or(gt(_4, 0xffffffffffffffff), lt(_4, _1)) if or(gt(_3, 0xffffffffffffffff), lt(_3, _1))
{ {
/// @src 0:96:165 "contract D {..." /// @src 0:96:165 "contract D {..."
mstore(_2, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(_2, 0x24) revert(0, 0x24)
} }
/// @src 0:149:156 "new C()" /// @src 0:149:156 "new C()"
datacopy(_1, dataoffset("C_3"), _3) datacopy(_1, dataoffset("C_3"), _2)
if iszero(create(/** @src 0:96:165 "contract D {..." */ _2, /** @src 0:149:156 "new C()" */ _1, sub(_4, _1))) if iszero(create(0, _1, sub(_3, _1)))
{ {
/// @src 0:96:165 "contract D {..." /// @src 0:96:165 "contract D {..."
let pos := mload(64) let pos := mload(64)
returndatacopy(pos, _2, returndatasize()) returndatacopy(pos, 0, returndatasize())
revert(pos, returndatasize()) revert(pos, returndatasize())
} }
return(_2, _2) return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)
@ -95,6 +95,7 @@ object "D_16" {
code { code {
{ {
/// @src 0:82:95 "contract C {}" /// @src 0:82:95 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0) revert(0, 0)
} }
} }

View File

@ -4,7 +4,11 @@ object "D_12" {
code { code {
{ {
/// @src 0:82:175 "contract D {..." /// @src 0:82:175 "contract D {..."
mstore(64, 128)
if callvalue() { revert(0, 0) } if callvalue() { revert(0, 0) }
/// @src 0:115:139 "assembly { mstore(0,0) }"
mstore(0, 0)
/// @src 0:82:175 "contract D {..."
let _1 := datasize("D_12_deployed") let _1 := datasize("D_12_deployed")
codecopy(128, dataoffset("D_12_deployed"), _1) codecopy(128, dataoffset("D_12_deployed"), _1)
return(128, _1) return(128, _1)
@ -15,14 +19,14 @@ object "D_12" {
code { code {
{ {
/// @src 0:82:175 "contract D {..." /// @src 0:82:175 "contract D {..."
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_1)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
return(_1, _1) return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -17,14 +17,17 @@ object "D_8" {
code { code {
{ {
/// @src 0:82:166 "contract D {..." /// @src 0:82:166 "contract D {..."
mstore(64, 128)
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_1)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
return(_1, _1) /// @src 0:134:158 "assembly { mstore(0,0) }"
mstore(0, 0)
/// @src 0:82:166 "contract D {..."
return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -4,6 +4,7 @@ object "C_12" {
code { code {
{ {
/// @src 0:62:463 "contract C {..." /// @src 0:62:463 "contract C {..."
mstore(64, 128)
if callvalue() { revert(0, 0) } if callvalue() { revert(0, 0) }
/// @src 0:103:275 "assembly {..." /// @src 0:103:275 "assembly {..."
mstore(0, 100) mstore(0, 100)
@ -19,9 +20,11 @@ object "C_12" {
code { code {
{ {
/// @src 0:62:463 "contract C {..." /// @src 0:62:463 "contract C {..."
mstore(64, 128)
if callvalue() { revert(0, 0) } if callvalue() { revert(0, 0) }
/// @src 0:317:454 "assembly {..." /// @src 0:317:454 "assembly {..."
sstore(0, 17385872270140913825666367956517731270094621555228275961425792378517567244498) mstore(0, 100)
sstore(0, keccak256(0, 32))
/// @src 0:62:463 "contract C {..." /// @src 0:62:463 "contract C {..."
stop() stop()
} }

View File

@ -17,6 +17,7 @@ object "C_7" {
code { code {
{ {
/// @src 0:62:285 "contract C {..." /// @src 0:62:285 "contract C {..."
mstore(64, 128)
if callvalue() { revert(0, 0) } if callvalue() { revert(0, 0) }
/// @src 0:109:277 "assembly {..." /// @src 0:109:277 "assembly {..."
mstore(0, 100) mstore(0, 100)

View File

@ -18,104 +18,104 @@ object "C_59" {
{ {
/// @src 0:346:625 "contract C {..." /// @src 0:346:625 "contract C {..."
let _1 := memoryguard(0x80) let _1 := memoryguard(0x80)
let _2 := 4 let _2 := 64
if iszero(lt(calldatasize(), _2)) mstore(_2, _1)
let _3 := 4
if iszero(lt(calldatasize(), _3))
{ {
let _3 := 0 if eq(0xf8eddcc6, shr(224, calldataload(0)))
if eq(0xf8eddcc6, shr(224, calldataload(_3)))
{ {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
let _4 := 32 let _4 := 32
if slt(add(calldatasize(), not(3)), _4) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), _4) { revert(0, 0) }
let offset := calldataload(_2) let offset := calldataload(_3)
let _5 := 0xffffffffffffffff let _5 := 0xffffffffffffffff
if gt(offset, _5) { revert(_3, _3) } if gt(offset, _5) { revert(0, 0) }
if iszero(slt(add(offset, 35), calldatasize())) { revert(_3, _3) } if iszero(slt(add(offset, 35), calldatasize())) { revert(0, 0) }
let _6 := calldataload(add(_2, offset)) let _6 := calldataload(add(_3, offset))
let _7 := 36 let _7 := 36
if gt(_6, _5) if gt(_6, _5)
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(_2, 0x41) mstore(_3, 0x41)
revert(_3, _7) revert(0, _7)
} }
let _8 := shl(5, _6) let _8 := shl(5, _6)
let _9 := not(31) let _9 := not(31)
let newFreePtr := add(_1, and(add(_8, 63), _9)) let newFreePtr := add(_1, and(add(_8, 63), _9))
if or(gt(newFreePtr, _5), lt(newFreePtr, _1)) if or(gt(newFreePtr, _5), lt(newFreePtr, _1))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(_2, 0x41) mstore(_3, 0x41)
revert(_3, _7) revert(0, _7)
} }
let _10 := 64 mstore(_2, newFreePtr)
mstore(_10, newFreePtr)
let dst := _1 let dst := _1
mstore(_1, _6) mstore(_1, _6)
dst := add(_1, _4) dst := add(_1, _4)
let dst_1 := dst let dst_1 := dst
let srcEnd := add(add(offset, _8), _7) let srcEnd := add(add(offset, _8), _7)
if gt(srcEnd, calldatasize()) { revert(_3, _3) } if gt(srcEnd, calldatasize()) { revert(0, 0) }
let src := add(offset, _7) let src := add(offset, _7)
for { } lt(src, srcEnd) { src := add(src, _4) } for { } lt(src, srcEnd) { src := add(src, _4) }
{ {
if slt(sub(calldatasize(), src), _4) { revert(_3, _3) } if slt(sub(calldatasize(), src), _4) { revert(0, 0) }
let memPtr := mload(_10) let memPtr := mload(_2)
let newFreePtr_1 := add(memPtr, _4) let newFreePtr_1 := add(memPtr, _4)
if or(gt(newFreePtr_1, _5), lt(newFreePtr_1, memPtr)) if or(gt(newFreePtr_1, _5), lt(newFreePtr_1, memPtr))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(_2, 0x41) mstore(_3, 0x41)
revert(_3, _7) revert(0, _7)
} }
mstore(_10, newFreePtr_1) mstore(_2, newFreePtr_1)
mstore(memPtr, calldataload(src)) mstore(memPtr, calldataload(src))
mstore(dst, memPtr) mstore(dst, memPtr)
dst := add(dst, _4) dst := add(dst, _4)
} }
if iszero(mload(_1)) if iszero(mload(_1))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(_2, 0x32) mstore(_3, 0x32)
revert(_3, _7) revert(0, _7)
} }
sstore(_3, mload(/** @src 0:469:474 "_s[0]" */ mload(dst_1))) sstore(0, mload(/** @src 0:469:474 "_s[0]" */ mload(dst_1)))
/// @src 0:346:625 "contract C {..." /// @src 0:346:625 "contract C {..."
if iszero(lt(/** @src 0:492:493 "1" */ 0x01, /** @src 0:346:625 "contract C {..." */ mload(_1))) if iszero(lt(/** @src 0:492:493 "1" */ 0x01, /** @src 0:346:625 "contract C {..." */ mload(_1)))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(_2, 0x32) mstore(_3, 0x32)
revert(_3, _7) revert(0, _7)
} }
let _11 := mload(/** @src 0:489:494 "_s[1]" */ mload(/** @src 0:346:625 "contract C {..." */ add(_1, _10))) let _10 := mload(/** @src 0:489:494 "_s[1]" */ mload(/** @src 0:346:625 "contract C {..." */ add(_1, _2)))
sstore(0x02, _11) sstore(0x02, _10)
let memPtr_1 := mload(_10) let memPtr_1 := mload(_2)
let newFreePtr_2 := add(memPtr_1, 160) let newFreePtr_2 := add(memPtr_1, 160)
if or(gt(newFreePtr_2, _5), lt(newFreePtr_2, memPtr_1)) if or(gt(newFreePtr_2, _5), lt(newFreePtr_2, memPtr_1))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(_2, 0x41) mstore(_3, 0x41)
revert(_3, _7) revert(0, _7)
} }
mstore(_10, newFreePtr_2) mstore(_2, newFreePtr_2)
mstore(memPtr_1, 100) mstore(memPtr_1, 100)
mstore(add(memPtr_1, _4), "longstringlongstringlongstringlo") mstore(add(memPtr_1, _4), "longstringlongstringlongstringlo")
mstore(add(memPtr_1, _10), "ngstringlongstringlongstringlong") mstore(add(memPtr_1, _2), "ngstringlongstringlongstringlong")
let _12 := 96 let _11 := 96
mstore(add(memPtr_1, _12), "stringlongstringlongstringlongst") mstore(add(memPtr_1, _11), "stringlongstringlongstringlongst")
mstore(add(memPtr_1, 128), "ring") mstore(add(memPtr_1, 128), "ring")
let memPos := mload(_10) let memPos := mload(_2)
mstore(memPos, _11) mstore(memPos, _10)
mstore(add(memPos, _4), _10) mstore(add(memPos, _4), _2)
let length := mload(memPtr_1) let length := mload(memPtr_1)
mstore(add(memPos, _10), length) mstore(add(memPos, _2), length)
let i := _3 let i := 0
for { } lt(i, length) { i := add(i, _4) } for { } lt(i, length) { i := add(i, _4) }
{ {
mstore(add(add(memPos, i), _12), mload(add(add(memPtr_1, i), _4))) mstore(add(add(memPos, i), _11), mload(add(add(memPtr_1, i), _4)))
} }
mstore(add(add(memPos, length), _12), _3) mstore(add(add(memPos, length), _11), 0)
return(memPos, add(sub(add(memPos, and(add(length, 31), _9)), memPos), _12)) return(memPos, add(sub(add(memPos, and(add(length, 31), _9)), memPos), _11))
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -1,4 +1,4 @@
======= no_cbor_metadata/input.sol:C ======= ======= no_cbor_metadata/input.sol:C =======
Binary: Binary:
608080604052346013576003908160188239f35b5f80fdfe5f80fd 608080604052346013576008908160188239f35b5f80fdfe60806040525f80fd

View File

@ -37,11 +37,11 @@ Text representation:
/* "object_compiler/input.yul":217:238 */ /* "object_compiler/input.yul":217:238 */
dup1 dup1
dataOffset(sub_0) dataOffset(sub_0)
/* "object_compiler/input.yul":125:126 */ /* "object_compiler/input.yul":214:215 */
0x00 0x00
/* "object_compiler/input.yul":205:260 */ /* "object_compiler/input.yul":205:260 */
codecopy codecopy
/* "object_compiler/input.yul":125:126 */ /* "object_compiler/input.yul":272:273 */
0x00 0x00
/* "object_compiler/input.yul":265:295 */ /* "object_compiler/input.yul":265:295 */
return return
@ -52,13 +52,13 @@ sub_0: assembly {
0x00 0x00
/* "object_compiler/input.yul":391:399 */ /* "object_compiler/input.yul":391:399 */
sload sload
/* "object_compiler/input.yul":397:398 */ /* "object_compiler/input.yul":388:389 */
0x00 0x00
/* "object_compiler/input.yul":381:400 */ /* "object_compiler/input.yul":381:400 */
mstore mstore
/* "object_compiler/input.yul":417:421 */ /* "object_compiler/input.yul":417:421 */
0x20 0x20
/* "object_compiler/input.yul":397:398 */ /* "object_compiler/input.yul":414:415 */
0x00 0x00
/* "object_compiler/input.yul":407:422 */ /* "object_compiler/input.yul":407:422 */
return return

View File

@ -21,26 +21,30 @@ object "Arraysum_34" {
let _1 := 4 let _1 := 4
if iszero(lt(calldatasize(), _1)) if iszero(lt(calldatasize(), _1))
{ {
let _2 := 0 if eq(0x81d73423, shr(224, calldataload(0)))
if eq(0x81d73423, shr(224, calldataload(_2)))
{ {
if callvalue() { revert(_2, _2) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let var_sum := _2 let var_sum := /** @src -1:-1:-1 */ 0
/// @src 0:175:182 "sum = 0"
var_sum := /** @src 0:181:182 "0" */ 0x00
/// @src 0:368:378 "uint i = 0" /// @src 0:368:378 "uint i = 0"
let var_i := /** @src 0:80:429 "contract Arraysum {..." */ _2 let var_i := /** @src 0:181:182 "0" */ 0x00
let _3 := sload(_2) /// @src 0:80:429 "contract Arraysum {..."
let _2 := sload(/** @src 0:384:390 "values" */ 0x00)
/// @src 0:80:429 "contract Arraysum {..."
let _3 := sload(/** @src 0:414:420 "values" */ 0x00)
/// @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, _3) /** @src 0:380:397 "i < values.length" */ lt(var_i, _2)
/// @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)) if eq(var_i, not(0))
{ {
mstore(_2, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(_1, 0x11) mstore(_1, 0x11)
revert(_2, 0x24) revert(0, 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)
@ -48,13 +52,20 @@ object "Arraysum_34" {
/// @src 0:399:402 "i++" /// @src 0:399:402 "i++"
{ {
/// @src 0:80:429 "contract Arraysum {..." /// @src 0:80:429 "contract Arraysum {..."
mstore(_2, _2) if iszero(lt(var_i, _3))
let sum := add(var_sum, sload(add(18569430475105882587588266137607568536673111973893317399460219858819262702947, var_i))) {
mstore(0, shl(224, 0x4e487b71))
mstore(_1, 0x32)
revert(0, 0x24)
}
mstore(0, /** @src 0:414:420 "values" */ 0x00)
/// @src 0:80:429 "contract Arraysum {..."
let sum := add(var_sum, sload(add(keccak256(0, 0x20), var_i)))
if gt(var_sum, sum) if gt(var_sum, sum)
{ {
mstore(_2, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(_1, 0x11) mstore(_1, 0x11)
revert(_2, 0x24) revert(0, 0x24)
} }
/// @src 0:407:423 "sum += values[i]" /// @src 0:407:423 "sum += values[i]"
var_sum := sum var_sum := sum
@ -62,7 +73,7 @@ object "Arraysum_34" {
/// @src 0:80:429 "contract Arraysum {..." /// @src 0:80:429 "contract Arraysum {..."
let memPos := mload(64) let memPos := mload(64)
mstore(memPos, var_sum) mstore(memPos, var_sum)
return(memPos, 32) return(memPos, 0x20)
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -9,6 +9,9 @@
{ {
"assembly": " /* \"C\":79:428 contract C... */ "assembly": " /* \"C\":79:428 contract C... */
0xa0 0xa0
dup1
0x40
mstore
jumpi(tag_5, callvalue) jumpi(tag_5, callvalue)
0x1f 0x1f
bytecodeSize bytecodeSize
@ -51,6 +54,7 @@
mload mload
/* \"C\":147:149 42 */ /* \"C\":147:149 42 */
mstore(0x80, 0x2a) mstore(0x80, 0x2a)
/* \"C\":203:219 stateVar = _init */
0x00 0x00
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
sstore sstore
@ -82,20 +86,16 @@ sub_0: assembly {
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
0x80 0x80
0x40 0x40
dup2 swap1
dup2 dup1
dup3
mstore mstore
jumpi(tag_2, iszero(lt(calldatasize, 0x04))) jumpi(tag_2, iszero(lt(calldatasize, 0x04)))
0x00 0x00
dup1 dup1
revert revert
tag_2: tag_2:
0x00 shr(0xe0, calldataload(0x00))
swap2
dup3
calldataload
0xe0
shr
swap1 swap1
dup2 dup2
0x26121ff0 0x26121ff0
@ -116,13 +116,11 @@ sub_0: assembly {
dup1 dup1
revert revert
tag_8: tag_8:
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
dup2 jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
add(calldatasize, not(0x03)) /* \"C\":322:332 stateVar++ */
slt 0x00
tag_12 /* \"C\":79:428 contract C... */
jumpi
dup2
sload sload
sub(shl(0xff, 0x01), 0x01) sub(shl(0xff, 0x01), 0x01)
dup2 dup2
@ -131,9 +129,11 @@ sub_0: assembly {
jumpi jumpi
0x01 0x01
add add
swap2 /* \"C\":322:332 stateVar++ */
dup3 0x00
/* \"C\":79:428 contract C... */
dup2 dup2
swap1
sstore sstore
dup2 dup2
mload mload
@ -141,48 +141,52 @@ sub_0: assembly {
/* \"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
swap2 swap3
dup3 dup4
iszero iszero
tag_16 tag_16
jumpi jumpi
dup1 0x00
swap3 swap4
tag_18 tag_18
jumpi jumpi
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
tag_19: tag_19:
/* \"C\":392:411 stateVar + this.f() */
pop
tag_20
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
0x20 0x20
/* \"C\":392:411 stateVar + this.f() */ /* \"C\":392:411 stateVar + this.f() */
dup5 swap4
/* \"C\":392:422 stateVar + this.f() + immutVar */ /* \"C\":392:422 stateVar + this.f() + immutVar */
tag_20
/* \"C\":392:411 stateVar + this.f() */
tag_21 tag_21
dup7 /* \"C\":392:411 stateVar + this.f() */
dup10 swap3
tag_1 tag_1
jump\t// in jump\t// in
tag_21: tag_20:
/* \"C\":414:422 immutVar */ /* \"C\":414:422 immutVar */
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\") immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
/* \"C\":392:422 stateVar + this.f() + immutVar */ /* \"C\":392:422 stateVar + this.f() + immutVar */
swap1 swap1
tag_1 tag_1
jump\t// in jump\t// in
tag_20: tag_21:
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
swap1 swap1
mload mload
@ -192,8 +196,7 @@ sub_0: assembly {
return return
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
tag_18: tag_18:
swap1 swap3
swap2
pop pop
0x20 0x20
returndatasize returndatasize
@ -208,12 +211,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
@ -223,9 +226,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
@ -235,27 +238,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_21 tag_20
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
0x20
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
@ -263,44 +265,34 @@ sub_0: assembly {
jump(tag_23) jump(tag_23)
tag_16: tag_16:
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
dup4 dup3
mload mload
swap1
returndatasize returndatasize
swap1 0x00
dup3 dup3
returndatacopy returndatacopy
returndatasize returndatasize
swap1 swap1
revert revert
tag_14: tag_14:
shl(0xe0, 0x4e487b71)
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */
dup4 mstore(0x00, shl(0xe0, 0x4e487b71))
mstore
0x11 0x11
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
0x04 0x04
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */
mstore mstore
0x24 revert(0x00, 0x24)
dup4
revert
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
tag_12:
pop
dup1
revert
tag_6: tag_6:
pop pop
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
dup2 jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
add(calldatasize, not(0x03))
slt
tag_12
jumpi
0x20 0x20
swap2 swap1
/* \"C\":152:171 int public stateVar */
0x00
/* \"C\":79:428 contract C... */
sload sload
swap1 swap1
mload mload
@ -309,22 +301,17 @@ sub_0: assembly {
mstore mstore
return return
tag_4: tag_4:
dup4 jumpi(tag_26, callvalue)
swap1 jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
jumpi(tag_12, callvalue)
dup2
add(calldatasize, not(0x03))
slt
tag_12
jumpi
/* \"C\":290:298 immutVar */ /* \"C\":290:298 immutVar */
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\") immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */
dup1
0x29
add
swap1 swap1
dup2 dup2
0x29
add
swap2
dup3
slt slt
0x01 0x01
and and
@ -332,8 +319,7 @@ sub_0: assembly {
jumpi jumpi
/* \"C\":79:428 contract C... */ /* \"C\":79:428 contract C... */
0x20 0x20
swap3 swap2
pop
dup2 dup2
mstore mstore
return return
@ -360,13 +346,9 @@ sub_0: assembly {
iszero iszero
and and
or or
tag_38 tag_14
jumpi jumpi
jump\t// out jump\t// out
tag_38:
mstore(0x00, shl(0xe0, 0x4e487b71))
mstore(0x04, 0x11)
revert(0x00, 0x24)
auxdata: <AUXDATA REMOVED> auxdata: <AUXDATA REMOVED>
} }
@ -382,6 +364,9 @@ sub_0: assembly {
{ {
"assembly": " /* \"D\":91:166 contract D is C(3)... */ "assembly": " /* \"D\":91:166 contract D is C(3)... */
0xa0 0xa0
dup1
0x40
mstore
jumpi(tag_5, callvalue) jumpi(tag_5, callvalue)
0x1f 0x1f
bytecodeSize bytecodeSize
@ -424,11 +409,15 @@ sub_0: assembly {
mload mload
/* \"C\":147:149 42 */ /* \"C\":147:149 42 */
mstore(0x80, 0x2a) mstore(0x80, 0x2a)
/* \"D\":91:166 contract D is C(3)... */
dup1
/* \"D\":107:108 3 */ /* \"D\":107:108 3 */
0x03 0x03
/* \"C\":203:219 stateVar = _init */
0x00
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
dup2
swap1
sstore
dup2
add add
swap1 swap1
dup2 dup2
@ -437,7 +426,9 @@ sub_0: assembly {
and and
tag_7 tag_7
jumpi jumpi
/* \"D\":142:160 stateVar += _init2 */
0x00 0x00
/* \"D\":91:166 contract D is C(3)... */
sstore sstore
mload(0x40) mload(0x40)
dataSize(sub_0) dataSize(sub_0)
@ -471,20 +462,16 @@ sub_0: assembly {
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
0x80 0x80
0x40 0x40
dup2 swap1
dup2 dup1
dup3
mstore mstore
jumpi(tag_2, iszero(lt(calldatasize, 0x04))) jumpi(tag_2, iszero(lt(calldatasize, 0x04)))
0x00 0x00
dup1 dup1
revert revert
tag_2: tag_2:
0x00 shr(0xe0, calldataload(0x00))
swap2
dup3
calldataload
0xe0
shr
swap1 swap1
dup2 dup2
0x26121ff0 0x26121ff0
@ -505,13 +492,11 @@ sub_0: assembly {
dup1 dup1
revert revert
tag_8: tag_8:
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
dup2 jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
add(calldatasize, not(0x03)) /* \"C\":322:332 stateVar++ */
slt 0x00
tag_12 /* \"D\":91:166 contract D is C(3)... */
jumpi
dup2
sload sload
sub(shl(0xff, 0x01), 0x01) sub(shl(0xff, 0x01), 0x01)
dup2 dup2
@ -520,9 +505,11 @@ sub_0: assembly {
jumpi jumpi
0x01 0x01
add add
swap2 /* \"C\":322:332 stateVar++ */
dup3 0x00
/* \"D\":91:166 contract D is C(3)... */
dup2 dup2
swap1
sstore sstore
dup2 dup2
mload mload
@ -530,48 +517,52 @@ sub_0: assembly {
/* \"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
swap2 swap3
dup3 dup4
iszero iszero
tag_16 tag_16
jumpi jumpi
dup1 0x00
swap3 swap4
tag_18 tag_18
jumpi jumpi
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
tag_19: tag_19:
/* \"C\":392:411 stateVar + this.f() */
pop
tag_20
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
0x20 0x20
/* \"C\":392:411 stateVar + this.f() */ /* \"C\":392:411 stateVar + this.f() */
dup5 swap4
/* \"C\":392:422 stateVar + this.f() + immutVar */ /* \"C\":392:422 stateVar + this.f() + immutVar */
tag_20
/* \"C\":392:411 stateVar + this.f() */
tag_21 tag_21
dup7 /* \"C\":392:411 stateVar + this.f() */
dup10 swap3
tag_1 tag_1
jump\t// in jump\t// in
tag_21: tag_20:
/* \"C\":414:422 immutVar */ /* \"C\":414:422 immutVar */
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\") immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
/* \"C\":392:422 stateVar + this.f() + immutVar */ /* \"C\":392:422 stateVar + this.f() + immutVar */
swap1 swap1
tag_1 tag_1
jump\t// in jump\t// in
tag_20: tag_21:
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
swap1 swap1
mload mload
@ -581,8 +572,7 @@ sub_0: assembly {
return return
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
tag_18: tag_18:
swap1 swap3
swap2
pop pop
0x20 0x20
returndatasize returndatasize
@ -597,12 +587,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
@ -612,9 +602,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
@ -624,27 +614,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_21 tag_20
/* \"C\":403:411 this.f() */ /* \"C\":403:411 this.f() */
0x20
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
@ -652,44 +641,34 @@ sub_0: assembly {
jump(tag_23) jump(tag_23)
tag_16: tag_16:
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
dup4 dup3
mload mload
swap1
returndatasize returndatasize
swap1 0x00
dup3 dup3
returndatacopy returndatacopy
returndatasize returndatasize
swap1 swap1
revert revert
tag_14: tag_14:
shl(0xe0, 0x4e487b71)
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */
dup4 mstore(0x00, shl(0xe0, 0x4e487b71))
mstore
0x11 0x11
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
0x04 0x04
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */
mstore mstore
0x24 revert(0x00, 0x24)
dup4
revert
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
tag_12:
pop
dup1
revert
tag_6: tag_6:
pop pop
jumpi(tag_12, callvalue) jumpi(tag_26, callvalue)
dup2 jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
add(calldatasize, not(0x03))
slt
tag_12
jumpi
0x20 0x20
swap2 swap1
/* \"C\":152:171 int public stateVar */
0x00
/* \"D\":91:166 contract D is C(3)... */
sload sload
swap1 swap1
mload mload
@ -698,22 +677,17 @@ sub_0: assembly {
mstore mstore
return return
tag_4: tag_4:
dup4 jumpi(tag_26, callvalue)
swap1 jumpi(tag_26, slt(add(not(0x03), calldatasize), 0x00))
jumpi(tag_12, callvalue)
dup2
add(calldatasize, not(0x03))
slt
tag_12
jumpi
/* \"C\":290:298 immutVar */ /* \"C\":290:298 immutVar */
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\") immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
/* \"C\":117:119 41 */ /* \"C\":117:119 41 */
dup1
0x29
add
swap1 swap1
dup2 dup2
0x29
add
swap2
dup3
slt slt
0x01 0x01
and and
@ -721,8 +695,7 @@ sub_0: assembly {
jumpi jumpi
/* \"D\":91:166 contract D is C(3)... */ /* \"D\":91:166 contract D is C(3)... */
0x20 0x20
swap3 swap2
pop
dup2 dup2
mstore mstore
return return
@ -749,13 +722,9 @@ sub_0: assembly {
iszero iszero
and and
or or
tag_38 tag_14
jumpi jumpi
jump\t// out jump\t// out
tag_38:
mstore(0x00, shl(0xe0, 0x4e487b71))
mstore(0x04, 0x11)
revert(0x00, 0x24)
auxdata: <AUXDATA REMOVED> auxdata: <AUXDATA REMOVED>
} }

View File

@ -192,14 +192,14 @@ object \"C_6\" {
code { code {
{ {
/// @src 0:60:101 \"contract C {...\" /// @src 0:60:101 \"contract C {...\"
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_1)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
return(_1, _1) return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -191,14 +191,14 @@ object \"C_6\" {
code { code {
{ {
/// @src 0:60:101 /// @src 0:60:101
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_1)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
return(_1, _1) return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -180,14 +180,14 @@ object \"C_6\" {
object \"C_6_deployed\" { object \"C_6_deployed\" {
code { code {
{ {
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _1 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_1)))
{ {
if callvalue() { revert(_1, _1) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
return(_1, _1) return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)

View File

@ -618,28 +618,25 @@ object \"C_54\" {
{ {
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
let _1 := memoryguard(0xa0) let _1 := memoryguard(0xa0)
mstore(64, _1)
if callvalue() { revert(0, 0) } if callvalue() { revert(0, 0) }
let programSize := datasize(\"C_54\") let programSize := datasize(\"C_54\")
let argSize := sub(codesize(), programSize) let argSize := sub(codesize(), programSize)
let newFreePtr := add(_1, and(add(argSize, 31), not(31))) let newFreePtr := add(_1, and(add(argSize, 31), not(31)))
if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, _1)) if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, _1))
{ {
mstore(/** @src -1:-1:-1 */ 0, /** @src 0:79:435 \"contract C...\" */ shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(/** @src -1:-1:-1 */ 0, /** @src 0:79:435 \"contract C...\" */ 0x24) revert(0, 0x24)
} }
mstore(64, newFreePtr) mstore(64, newFreePtr)
codecopy(_1, programSize, argSize) codecopy(_1, programSize, argSize)
if slt(sub(add(_1, argSize), _1), 32) if slt(sub(add(_1, argSize), _1), 32) { revert(0, 0) }
{
revert(/** @src -1:-1:-1 */ 0, 0)
}
/// @src 0:79:435 \"contract C...\"
let value := mload(_1) let value := mload(_1)
/// @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 -1:-1:-1 */ 0, /** @src 0:79:435 \"contract C...\" */ value) sstore(/** @src 0:210:226 \"stateVar = _init\" */ 0x00, /** @src 0:79:435 \"contract C...\" */ value)
let _2 := mload(64) let _2 := mload(64)
let _3 := datasize(\"C_54_deployed\") let _3 := datasize(\"C_54_deployed\")
codecopy(_2, dataoffset(\"C_54_deployed\"), _3) codecopy(_2, dataoffset(\"C_54_deployed\"), _3)
@ -658,44 +655,45 @@ object \"C_54\" {
mstore(_2, _1) mstore(_2, _1)
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _3 := 0 switch shr(224, calldataload(0))
switch shr(224, calldataload(_3))
case 0x26121ff0 { case 0x26121ff0 {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
/// @src 0:297:305 \"immutVar\" /// @src 0:297:305 \"immutVar\"
let _4 := loadimmutable(\"8\") let _3 := loadimmutable(\"8\")
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
let sum := add(/** @src 0:124:126 \"41\" */ 0x29, /** @src 0:79:435 \"contract C...\" */ _4) let sum := add(/** @src 0:124:126 \"41\" */ 0x29, /** @src 0:79:435 \"contract C...\" */ _3)
if and(1, slt(sum, _4)) if and(1, slt(sum, _3))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11) mstore(4, 0x11)
revert(_3, 0x24) revert(0, 0x24)
} }
mstore(_1, sum) mstore(_1, sum)
return(_1, 32) return(_1, 32)
} }
case 0x793816ec { case 0x793816ec {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let _5 := sload(_3) let _4 := sload(/** @src 0:159:178 \"int public stateVar\" */ 0)
/// @src 0:79:435 \"contract C...\"
let memPos := mload(_2) let memPos := mload(_2)
mstore(memPos, _5) mstore(memPos, _4)
return(memPos, 32) return(memPos, 32)
} }
case 0x9942ec6f { case 0x9942ec6f {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let _6 := sload(_3) let _5 := sload(/** @src 0:329:339 \"stateVar++\" */ 0x00)
if eq(_6, sub(shl(255, 1), 1)) /// @src 0:79:435 \"contract C...\"
if eq(_5, sub(shl(255, 1), 1))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11) mstore(4, 0x11)
revert(_3, 0x24) revert(0, 0x24)
} }
let ret := add(_6, 1) sstore(/** @src 0:329:339 \"stateVar++\" */ 0x00, /** @src 0:79:435 \"contract C...\" */ add(_5, 1))
sstore(_3, ret) let _6 := sload(/** @src 0:399:407 \"stateVar\" */ 0x00)
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
let _7 := /** @src 0:79:435 \"contract C...\" */ mload(_2) let _7 := /** @src 0:79:435 \"contract C...\" */ mload(_2)
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
@ -706,11 +704,11 @@ object \"C_54\" {
{ {
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
let pos := mload(_2) let pos := mload(_2)
returndatacopy(pos, _3, returndatasize()) returndatacopy(pos, 0, returndatasize())
revert(pos, returndatasize()) revert(pos, returndatasize())
} }
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
let expr := /** @src 0:79:435 \"contract C...\" */ _3 let expr := /** @src -1:-1:-1 */ 0
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
if _8 if _8
{ {
@ -720,19 +718,19 @@ object \"C_54\" {
let newFreePtr := add(_7, and(add(_9, 31), not(31))) let newFreePtr := add(_7, and(add(_9, 31), not(31)))
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _7)) if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _7))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(_3, 0x24) revert(0, 0x24)
} }
mstore(_2, newFreePtr) 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) 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...\" /// @src 0:79:435 \"contract C...\"
{ revert(_3, _3) } { revert(0, 0) }
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
expr := /** @src 0:79:435 \"contract C...\" */ mload(_7) expr := /** @src 0:79:435 \"contract C...\" */ mload(_7)
} }
/// @src 0:399:418 \"stateVar + this.f()\" /// @src 0:399:418 \"stateVar + this.f()\"
let expr_1 := checked_add_int256(ret, expr) let expr_1 := checked_add_int256(_6, expr)
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\" /// @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\")) 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...\" /// @src 0:79:435 \"contract C...\"
@ -741,8 +739,8 @@ object \"C_54\" {
return(memPos_1, /** @src 0:410:418 \"this.f()\" */ 32) return(memPos_1, /** @src 0:410:418 \"this.f()\" */ 32)
} }
case /** @src 0:79:435 \"contract C...\" */ 0xa00b982b { case /** @src 0:79:435 \"contract C...\" */ 0xa00b982b {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let memPos_2 := mload(_2) let memPos_2 := mload(_2)
mstore(memPos_2, /** @src 0:124:126 \"41\" */ 0x29) mstore(memPos_2, /** @src 0:124:126 \"41\" */ 0x29)
/// @src 0:79:435 \"contract C...\" /// @src 0:79:435 \"contract C...\"
@ -1457,41 +1455,44 @@ object \"D_72\" {
{ {
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"
let _1 := memoryguard(0xa0) let _1 := memoryguard(0xa0)
mstore(64, _1)
if callvalue() { revert(0, 0) } if callvalue() { revert(0, 0) }
let programSize := datasize(\"D_72\") let programSize := datasize(\"D_72\")
let argSize := sub(codesize(), programSize) let argSize := sub(codesize(), programSize)
let newFreePtr := add(_1, and(add(argSize, 31), not(31))) let newFreePtr := add(_1, and(add(argSize, 31), not(31)))
if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, _1)) if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, _1))
{ {
mstore(/** @src -1:-1:-1 */ 0, /** @src 1:91:166 \"contract D is C(3)...\" */ shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(/** @src -1:-1:-1 */ 0, /** @src 1:91:166 \"contract D is C(3)...\" */ 0x24) revert(0, 0x24)
} }
mstore(64, newFreePtr) mstore(64, newFreePtr)
codecopy(_1, programSize, argSize) codecopy(_1, programSize, argSize)
if slt(sub(add(_1, argSize), _1), 32) if slt(sub(add(_1, argSize), _1), 32) { revert(0, 0) }
{
revert(/** @src -1:-1:-1 */ 0, 0)
}
/// @src 1:91:166 \"contract D is C(3)...\"
let value := mload(_1) let value := mload(_1)
/// @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)...\"
let sum := add(/** @src 1:107:108 \"3\" */ 0x03, /** @src 1:91:166 \"contract D is C(3)...\" */ value) sstore(/** @src 0:210:226 \"stateVar = _init\" */ 0x00, /** @src 1:107:108 \"3\" */ 0x03)
if and(1, slt(sum, value))
{
mstore(/** @src -1:-1:-1 */ 0, /** @src 1:91:166 \"contract D is C(3)...\" */ shl(224, 0x4e487b71))
mstore(4, 0x11)
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)...\" */ sum)
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)...\" /// @src 1:91:166 \"contract D is C(3)...\"
return(_2, _3) let _2 := sload(/** @src 1:142:160 \"stateVar += _init2\" */ 0x00)
/// @src 1:91:166 \"contract D is C(3)...\"
let sum := add(_2, value)
let _3 := slt(sum, value)
let _4 := slt(_2, 0)
if or(and(iszero(_4), _3), and(_4, iszero(_3)))
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(0, 0x24)
}
sstore(/** @src 1:142:160 \"stateVar += _init2\" */ 0x00, /** @src 1:91:166 \"contract D is C(3)...\" */ sum)
let _5 := mload(64)
let _6 := datasize(\"D_72_deployed\")
codecopy(_5, dataoffset(\"D_72_deployed\"), _6)
setimmutable(_5, \"8\", mload(/** @src 0:154:156 \"42\" */ 128))
/// @src 1:91:166 \"contract D is C(3)...\"
return(_5, _6)
} }
} }
/// @use-src 0:\"C\", 1:\"D\" /// @use-src 0:\"C\", 1:\"D\"
@ -1504,44 +1505,45 @@ object \"D_72\" {
mstore(_2, _1) mstore(_2, _1)
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _3 := 0 switch shr(224, calldataload(0))
switch shr(224, calldataload(_3))
case 0x26121ff0 { case 0x26121ff0 {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
/// @src 0:297:305 \"immutVar\" /// @src 0:297:305 \"immutVar\"
let _4 := loadimmutable(\"8\") let _3 := loadimmutable(\"8\")
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"
let sum := add(/** @src 0:124:126 \"41\" */ 0x29, /** @src 1:91:166 \"contract D is C(3)...\" */ _4) let sum := add(/** @src 0:124:126 \"41\" */ 0x29, /** @src 1:91:166 \"contract D is C(3)...\" */ _3)
if and(1, slt(sum, _4)) if and(1, slt(sum, _3))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11) mstore(4, 0x11)
revert(_3, 0x24) revert(0, 0x24)
} }
mstore(_1, sum) mstore(_1, sum)
return(_1, 32) return(_1, 32)
} }
case 0x793816ec { case 0x793816ec {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let _5 := sload(_3) let _4 := sload(/** @src 0:159:178 \"int public stateVar\" */ 0)
/// @src 1:91:166 \"contract D is C(3)...\"
let memPos := mload(_2) let memPos := mload(_2)
mstore(memPos, _5) mstore(memPos, _4)
return(memPos, 32) return(memPos, 32)
} }
case 0x9942ec6f { case 0x9942ec6f {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let _6 := sload(_3) let _5 := sload(/** @src 0:329:339 \"stateVar++\" */ 0x00)
if eq(_6, sub(shl(255, 1), 1)) /// @src 1:91:166 \"contract D is C(3)...\"
if eq(_5, sub(shl(255, 1), 1))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11) mstore(4, 0x11)
revert(_3, 0x24) revert(0, 0x24)
} }
let ret := add(_6, 1) sstore(/** @src 0:329:339 \"stateVar++\" */ 0x00, /** @src 1:91:166 \"contract D is C(3)...\" */ add(_5, 1))
sstore(_3, ret) let _6 := sload(/** @src 0:399:407 \"stateVar\" */ 0x00)
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
let _7 := /** @src 1:91:166 \"contract D is C(3)...\" */ mload(_2) let _7 := /** @src 1:91:166 \"contract D is C(3)...\" */ mload(_2)
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
@ -1552,11 +1554,11 @@ object \"D_72\" {
{ {
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"
let pos := mload(_2) let pos := mload(_2)
returndatacopy(pos, _3, returndatasize()) returndatacopy(pos, 0, returndatasize())
revert(pos, returndatasize()) revert(pos, returndatasize())
} }
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
let expr := /** @src 1:91:166 \"contract D is C(3)...\" */ _3 let expr := /** @src -1:-1:-1 */ 0
/// @src 0:410:418 \"this.f()\" /// @src 0:410:418 \"this.f()\"
if _8 if _8
{ {
@ -1566,19 +1568,19 @@ object \"D_72\" {
let newFreePtr := add(_7, and(add(_9, 31), not(31))) let newFreePtr := add(_7, and(add(_9, 31), not(31)))
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _7)) if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _7))
{ {
mstore(_3, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(_3, 0x24) revert(0, 0x24)
} }
mstore(_2, newFreePtr) 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) 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)...\" /// @src 1:91:166 \"contract D is C(3)...\"
{ revert(_3, _3) } { 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(_7) expr := /** @src 1:91:166 \"contract D is C(3)...\" */ mload(_7)
} }
/// @src 0:399:418 \"stateVar + this.f()\" /// @src 0:399:418 \"stateVar + this.f()\"
let expr_1 := checked_add_int256(ret, expr) let expr_1 := checked_add_int256(_6, expr)
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\" /// @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\")) 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)...\" /// @src 1:91:166 \"contract D is C(3)...\"
@ -1587,8 +1589,8 @@ object \"D_72\" {
return(memPos_1, /** @src 0:410:418 \"this.f()\" */ 32) return(memPos_1, /** @src 0:410:418 \"this.f()\" */ 32)
} }
case /** @src 1:91:166 \"contract D is C(3)...\" */ 0xa00b982b { case /** @src 1:91:166 \"contract D is C(3)...\" */ 0xa00b982b {
if callvalue() { revert(_3, _3) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _3) { revert(_3, _3) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
let memPos_2 := mload(_2) let memPos_2 := mload(_2)
mstore(memPos_2, /** @src 0:124:126 \"41\" */ 0x29) mstore(memPos_2, /** @src 0:124:126 \"41\" */ 0x29)
/// @src 1:91:166 \"contract D is C(3)...\" /// @src 1:91:166 \"contract D is C(3)...\"

View File

@ -7,7 +7,7 @@
{ {
"evm": "evm":
{ {
"assembly": " /* \"A\":17:18 */ "assembly": " /* \"A\":38:39 */
0x00 0x00
/* \"A\":11:19 */ /* \"A\":11:19 */
dup1 dup1

View File

@ -3,6 +3,9 @@
EVM assembly: EVM assembly:
/* "viair_subobject_optimization/input.sol":61:668 contract C {... */ /* "viair_subobject_optimization/input.sol":61:668 contract C {... */
0x80 0x80
dup1
0x40
mstore
jumpi(tag_7, callvalue) jumpi(tag_7, callvalue)
0x1f 0x1f
bytecodeSize bytecodeSize
@ -60,8 +63,8 @@ EVM assembly:
return return
/* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */ /* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */
tag_7: tag_7:
0x00
/* "viair_subobject_optimization/input.sol":653:661 revert() */ /* "viair_subobject_optimization/input.sol":653:661 revert() */
0x00
dup1 dup1
revert revert
/* "viair_subobject_optimization/input.sol":61:668 contract C {... */ /* "viair_subobject_optimization/input.sol":61:668 contract C {... */
@ -73,6 +76,7 @@ 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 {... */
mstore(0x40, 0x80)
0x00 0x00
dup1 dup1
revert revert
@ -105,108 +109,98 @@ 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
0x40
dup2
dup2
mstore
jumpi(tag_1, iszero(lt(calldatasize, 0x04))) jumpi(tag_1, iszero(lt(calldatasize, 0x04)))
0x00 0x00
dup1 dup1
revert revert
tag_1: tag_1:
0x00 jumpi(tag_3, eq(0x26121ff0, shr(0xe0, calldataload(0x00))))
dup1
calldataload
0xe0
shr
0x26121ff0
eq
tag_3
jumpi
0x00 0x00
dup1 dup1
revert revert
tag_3: tag_3:
jumpi(tag_7, callvalue) jumpi(tag_7, callvalue)
dup1 jumpi(tag_7, slt(add(not(0x03), calldatasize), 0x00))
add(calldatasize, not(0x03))
slt
tag_7
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 {... */
swap2 swap2
not(0x1f) not(0x1f)
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */
swap1 swap1
dup2
0x3f 0x3f
dup6 dup5
add add
dup3
and and
dup2 dup2
add add
swap3
dup2
dup5
lt
0xffffffffffffffff 0xffffffffffffffff
dup6 dup2
gt gt
dup3
dup3
lt
or or
tag_9 tag_9
jumpi jumpi
swap1
swap2
0x40
swap4
dup5
mstore
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
dup5
dup4 dup4
mstore mstore
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
dup4
dup2
mstore
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */
swap3
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
0x20 0x20
swap5 swap2
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */
swap1
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
dataOffset(sub_0) dataOffset(sub_0)
dup4
dup7 dup7
dup6
add add
codecopy codecopy
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */ /* "viair_subobject_optimization/input.sol":669:772 contract D {... */
dup4 dup3
mload mload
swap5 swap4
dup3
dup6 dup6
swap3 swap4
dup2
dup5 dup5
mstore mstore
dup5 dup2
mload mload
swap2 swap2
dup3 dup3
dup2 dup3
dup7 dup7
add add
mstore mstore
dup2 0x00
swap6
tag_11: tag_11:
dup4 dup4
dup8 dup2
lt lt
tag_12 tag_12
jumpi jumpi
pop pop
pop pop
0x00
dup5
dup4 dup4
swap5
pop
dup6
dup3
0x1f
swap5
swap6
add add
dup7
add add
mstore mstore
pop
0x1f
add add
and and
dup2 dup2
@ -216,35 +210,30 @@ sub_0: assembly {
swap1 swap1
return return
tag_12: tag_12:
dup7 dup2
dup2 dup2
add add
dup3 dup4
add add
mload mload
dup10
dup9 dup9
dup3
add add
dup10 dup9
add add
mstore mstore
swap6 dup8
dup2
add
swap6
dup9
swap6 swap6
pop pop
dup3
add
jump(tag_11) jump(tag_11)
tag_9: tag_9:
shl(0xe0, 0x4e487b71) mstore(0x00, shl(0xe0, 0x4e487b71))
dup2
mstore
mstore(0x04, 0x41) mstore(0x04, 0x41)
0x24 revert(0x00, 0x24)
swap1
revert
tag_7: tag_7:
0x00
dup1 dup1
revert revert
stop stop
@ -252,6 +241,9 @@ sub_0: assembly {
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
dup1
0x40
mstore
jumpi(tag_7, callvalue) jumpi(tag_7, callvalue)
0x1f 0x1f
bytecodeSize bytecodeSize
@ -309,8 +301,8 @@ sub_0: assembly {
return return
/* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */ /* "viair_subobject_optimization/input.sol":616:661 if (x == 0xFFFFFFFFFFFFFFFF42)... */
tag_7: tag_7:
0x00
/* "viair_subobject_optimization/input.sol":653:661 revert() */ /* "viair_subobject_optimization/input.sol":653:661 revert() */
0x00
dup1 dup1
revert revert
/* "viair_subobject_optimization/input.sol":61:668 contract C {... */ /* "viair_subobject_optimization/input.sol":61:668 contract C {... */
@ -322,6 +314,7 @@ sub_0: assembly {
sub_0: assembly { sub_0: assembly {
/* "viair_subobject_optimization/input.sol":61:668 contract C {... */ /* "viair_subobject_optimization/input.sol":61:668 contract C {... */
mstore(0x40, 0x80)
0x00 0x00
dup1 dup1
revert revert

View File

@ -23,6 +23,7 @@ object "C_3" {
code { code {
{ {
/// @src 0:82:95 "contract C {}" /// @src 0:82:95 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0) revert(0, 0)
} }
} }
@ -59,31 +60,30 @@ object "D_16" {
mstore(64, _1) mstore(64, _1)
if iszero(lt(calldatasize(), 4)) if iszero(lt(calldatasize(), 4))
{ {
let _2 := 0 if eq(0x26121ff0, shr(224, calldataload(0)))
if eq(0x26121ff0, shr(224, calldataload(_2)))
{ {
if callvalue() { revert(_2, _2) } if callvalue() { revert(0, 0) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) } if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
/// @src 0:149:156 "new C()" /// @src 0:149:156 "new C()"
let _3 := datasize("C_3") let _2 := datasize("C_3")
let _4 := add(_1, _3) let _3 := add(_1, _2)
if or(gt(_4, 0xffffffffffffffff), lt(_4, _1)) if or(gt(_3, 0xffffffffffffffff), lt(_3, _1))
{ {
/// @src 0:96:165 "contract D {..." /// @src 0:96:165 "contract D {..."
mstore(_2, shl(224, 0x4e487b71)) mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41) mstore(4, 0x41)
revert(_2, 0x24) revert(0, 0x24)
} }
/// @src 0:149:156 "new C()" /// @src 0:149:156 "new C()"
datacopy(_1, dataoffset("C_3"), _3) datacopy(_1, dataoffset("C_3"), _2)
if iszero(create(/** @src 0:96:165 "contract D {..." */ _2, /** @src 0:149:156 "new C()" */ _1, sub(_4, _1))) if iszero(create(0, _1, sub(_3, _1)))
{ {
/// @src 0:96:165 "contract D {..." /// @src 0:96:165 "contract D {..."
let pos := mload(64) let pos := mload(64)
returndatacopy(pos, _2, returndatasize()) returndatacopy(pos, 0, returndatasize())
revert(pos, returndatasize()) revert(pos, returndatasize())
} }
return(_2, _2) return(0, 0)
} }
} }
revert(0, 0) revert(0, 0)
@ -107,6 +107,7 @@ object "D_16" {
code { code {
{ {
/// @src 0:82:95 "contract C {}" /// @src 0:82:95 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0) revert(0, 0)
} }
} }

View File

@ -33,7 +33,7 @@ Text representation:
0x00 0x00
/* "yul_optimize_runs/input.yul":71:144 */ /* "yul_optimize_runs/input.yul":71:144 */
codecopy codecopy
/* "yul_optimize_runs/input.yul":80:81 */ /* "yul_optimize_runs/input.yul":160:161 */
0x00 0x00
/* "yul_optimize_runs/input.yul":153:192 */ /* "yul_optimize_runs/input.yul":153:192 */
return return

View File

@ -7,7 +7,7 @@ object "C_8" {
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 let usr$a := 0
revert(usr$a, usr$a) revert(0, 0)
} }
} }
/// @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: 640600 // codeDepositCost: 638600
// executionCost: 674 // executionCost: 668
// totalCost: 641274 // totalCost: 639268
// external: // external:
// a(): 2283 // a(): 2283
// b(uint256): 4649 // b(uint256): 4649

View File

@ -21,6 +21,6 @@ contract C {
} }
// ---- // ----
// f() -> 0x20, 0x8, 0x40, 0x3, 0x9, 0xa, 0xb // f() -> 0x20, 0x8, 0x40, 0x3, 0x9, 0xa, 0xb
// gas irOptimized: 203166 // gas irOptimized: 203228
// gas legacy: 206263 // gas legacy: 206263
// gas legacyOptimized: 203151 // gas legacyOptimized: 203156

View File

@ -59,10 +59,10 @@ contract C {
// EVMVersion: >homestead // EVMVersion: >homestead
// ---- // ----
// test_bytes() -> // test_bytes() ->
// gas irOptimized: 361321 // gas irOptimized: 360863
// gas legacy: 411269 // gas legacy: 411269
// gas legacyOptimized: 317754 // gas legacyOptimized: 317754
// test_uint256() -> // test_uint256() ->
// gas irOptimized: 509988 // gas irOptimized: 509569
// gas legacy: 577469 // gas legacy: 577469
// gas legacyOptimized: 440931 // gas legacyOptimized: 440931

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: 166506 // gas irOptimized: 166723
// 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: 361321 // gas irOptimized: 360863
// gas legacy: 411269 // gas legacy: 411269
// gas legacyOptimized: 317754 // gas legacyOptimized: 317754
// test_uint256() -> // test_uint256() ->
// gas irOptimized: 509988 // gas irOptimized: 509569
// gas legacy: 577469 // gas legacy: 577469
// gas legacyOptimized: 440931 // gas legacyOptimized: 440931

View File

@ -50,6 +50,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: 112641 // gas irOptimized: 112740
// gas legacy: 114794 // gas legacy: 114794
// gas legacyOptimized: 112572 // gas legacyOptimized: 112572

View File

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

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: 127012 // gas irOptimized: 126851
// gas legacy: 139800 // gas legacy: 139800
// gas legacyOptimized: 119092 // gas legacyOptimized: 119092

View File

@ -33,7 +33,7 @@ contract C {
// f_which(uint256[],uint256[2],uint256): 0x40, 1, 2, 1, 5, 6 -> 0x20, 0x40, 5, 2 // f_which(uint256[],uint256[2],uint256): 0x40, 1, 2, 1, 5, 6 -> 0x20, 0x40, 5, 2
// f_which(uint256[],uint256[2],uint256): 0x40, 1, 2, 1 -> FAILURE // f_which(uint256[],uint256[2],uint256): 0x40, 1, 2, 1 -> FAILURE
// f_storage(uint256[],uint256[2]): 0x20, 1, 2 -> 0x20, 0x60, 0x20, 1, 2 // f_storage(uint256[],uint256[2]): 0x20, 1, 2 -> 0x20, 0x60, 0x20, 1, 2
// gas irOptimized: 111650 // gas irOptimized: 111732
// gas legacy: 112944 // gas legacy: 112944
// gas legacyOptimized: 112092 // gas legacyOptimized: 112092
// f_storage(uint256[],uint256[2]): 0x40, 1, 2, 5, 6 -> 0x20, 0x80, 0x20, 2, 5, 6 // f_storage(uint256[],uint256[2]): 0x40, 1, 2, 5, 6 -> 0x20, 0x80, 0x20, 2, 5, 6

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: 180823 // gas irOptimized: 180889
// 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
// gas irOptimized: 112459 // gas irOptimized: 112425
// gas legacy: 115398 // gas legacy: 115398
// gas legacyOptimized: 112982 // gas legacyOptimized: 112982

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: 135693 // gas irOptimized: 135738
// gas legacy: 137278 // gas legacy: 137278
// gas legacyOptimized: 136043 // 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: 135073 // gas irOptimized: 135060
// 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

@ -16,38 +16,38 @@ contract C {
// ---- // ----
// test_indices(uint256): 1 -> // test_indices(uint256): 1 ->
// test_indices(uint256): 129 -> // test_indices(uint256): 129 ->
// gas irOptimized: 3019936 // gas irOptimized: 3043899
// gas legacy: 3069098 // gas legacy: 3069098
// gas legacyOptimized: 3013250 // gas legacyOptimized: 3013250
// test_indices(uint256): 5 -> // test_indices(uint256): 5 ->
// gas irOptimized: 577789 // gas irOptimized: 590601
// gas legacy: 574754 // gas legacy: 574754
// gas legacyOptimized: 572383 // gas legacyOptimized: 572383
// test_indices(uint256): 10 -> // test_indices(uint256): 10 ->
// gas irOptimized: 158291 // gas irOptimized: 159493
// gas legacy: 162468 // gas legacy: 162468
// gas legacyOptimized: 158336 // gas legacyOptimized: 158336
// test_indices(uint256): 15 -> // test_indices(uint256): 15 ->
// gas irOptimized: 173296 // gas irOptimized: 174798
// gas legacy: 179513 // gas legacy: 179513
// gas legacyOptimized: 173606 // gas legacyOptimized: 173606
// test_indices(uint256): 0xFF -> // test_indices(uint256): 0xFF ->
// gas irOptimized: 5678606 // gas irOptimized: 5724353
// gas legacy: 5775928 // gas legacy: 5775928
// gas legacyOptimized: 5666726 // gas legacyOptimized: 5666726
// test_indices(uint256): 1000 -> // test_indices(uint256): 1000 ->
// gas irOptimized: 18197173 // gas irOptimized: 18351755
// gas legacy: 18583810 // gas legacy: 18583810
// gas legacyOptimized: 18171248 // gas legacyOptimized: 18171248
// test_indices(uint256): 129 -> // test_indices(uint256): 129 ->
// gas irOptimized: 4156312 // gas irOptimized: 4250972
// gas legacy: 4164468 // gas legacy: 4164468
// gas legacyOptimized: 4122100 // gas legacyOptimized: 4122100
// test_indices(uint256): 128 -> // test_indices(uint256): 128 ->
// gas irOptimized: 411289 // gas irOptimized: 419063
// gas legacy: 463706 // gas legacy: 463706
// gas legacyOptimized: 418061 // gas legacyOptimized: 418061
// test_indices(uint256): 1 -> // test_indices(uint256): 1 ->
// gas irOptimized: 581362 // gas irOptimized: 594287
// gas legacy: 576904 // gas legacy: 576904
// gas legacyOptimized: 575649 // gas legacyOptimized: 575649

View File

@ -16,11 +16,11 @@ contract C {
// test_boundary_check(uint256,uint256): 1, 1 -> FAILURE, hex"4e487b71", 0x32 // test_boundary_check(uint256,uint256): 1, 1 -> FAILURE, hex"4e487b71", 0x32
// test_boundary_check(uint256,uint256): 10, 10 -> FAILURE, hex"4e487b71", 0x32 // test_boundary_check(uint256,uint256): 10, 10 -> FAILURE, hex"4e487b71", 0x32
// test_boundary_check(uint256,uint256): 256, 256 -> FAILURE, hex"4e487b71", 0x32 // test_boundary_check(uint256,uint256): 256, 256 -> FAILURE, hex"4e487b71", 0x32
// gas irOptimized: 140383 // gas irOptimized: 171594
// gas legacy: 133633 // gas legacy: 133633
// gas legacyOptimized: 114354 // gas legacyOptimized: 114354
// test_boundary_check(uint256,uint256): 256, 255 -> 0 // test_boundary_check(uint256,uint256): 256, 255 -> 0
// gas irOptimized: 142515 // gas irOptimized: 173767
// gas legacy: 135949 // gas legacy: 135949
// gas legacyOptimized: 116533 // gas legacyOptimized: 116533
// test_boundary_check(uint256,uint256): 256, 0xFFFF -> FAILURE, hex"4e487b71", 0x32 // test_boundary_check(uint256,uint256): 256, 0xFFFF -> FAILURE, hex"4e487b71", 0x32

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: 131925 // gas irOptimized: 134360
// gas legacy: 132804 // gas legacy: 132804
// gas legacyOptimized: 130649 // gas legacyOptimized: 130649
// test_zeroed_indicies(uint256): 10 -> // test_zeroed_indicies(uint256): 10 ->
// gas irOptimized: 225874 // gas irOptimized: 229960
// gas legacy: 227786 // gas legacy: 227786
// gas legacyOptimized: 223830 // gas legacyOptimized: 223830
// test_zeroed_indicies(uint256): 15 -> // test_zeroed_indicies(uint256): 15 ->
// gas irOptimized: 323938 // gas irOptimized: 329572
// gas legacy: 326902 // gas legacy: 326902
// gas legacyOptimized: 321206 // gas legacyOptimized: 321206
// test_zeroed_indicies(uint256): 0xFF -> // test_zeroed_indicies(uint256): 0xFF ->
// gas irOptimized: 5116738 // gas irOptimized: 5221116
// gas legacy: 5165874 // gas legacy: 5165874
// gas legacyOptimized: 5062182 // gas legacyOptimized: 5062182

View File

@ -12,11 +12,11 @@ contract C {
// set_get_length(uint256): 10 -> 10 // set_get_length(uint256): 10 -> 10
// set_get_length(uint256): 20 -> 20 // set_get_length(uint256): 20 -> 20
// set_get_length(uint256): 0xFF -> 0xFF // set_get_length(uint256): 0xFF -> 0xFF
// gas irOptimized: 96690 // gas irOptimized: 144589
// gas legacy: 128571 // gas legacy: 128571
// gas legacyOptimized: 110143 // gas legacyOptimized: 110143
// set_get_length(uint256): 0xFFF -> 0xFFF // set_get_length(uint256): 0xFFF -> 0xFFF
// gas irOptimized: 1220647 // gas irOptimized: 1957916
// gas legacy: 1689548 // gas legacy: 1689548
// gas legacyOptimized: 1393535 // gas legacyOptimized: 1393535
// set_get_length(uint256): 0xFFFFF -> FAILURE # Out-of-gas # // set_get_length(uint256): 0xFFFFF -> FAILURE # Out-of-gas #

View File

@ -12,11 +12,11 @@ contract C {
// EVMVersion: >=petersburg // EVMVersion: >=petersburg
// ---- // ----
// pushEmpty(uint256): 128 // pushEmpty(uint256): 128
// gas irOptimized: 406413 // gas irOptimized: 426490
// gas legacy: 415744 // gas legacy: 415744
// gas legacyOptimized: 397380 // gas legacyOptimized: 397380
// pushEmpty(uint256): 256 // pushEmpty(uint256): 256
// gas irOptimized: 693185 // gas irOptimized: 717102
// gas legacy: 715316 // gas legacy: 715316
// gas legacyOptimized: 688632 // gas legacyOptimized: 688632
// pushEmpty(uint256): 38869 -> FAILURE # out-of-gas # // pushEmpty(uint256): 38869 -> FAILURE # out-of-gas #

View File

@ -21,11 +21,11 @@ contract C {
// gas legacy: 77730 // gas legacy: 77730
// gas legacyOptimized: 77162 // gas legacyOptimized: 77162
// set_get_length(uint256): 0xFF -> 0xFF // set_get_length(uint256): 0xFF -> 0xFF
// gas irOptimized: 161440 // gas irOptimized: 193804
// gas legacy: 696850 // gas legacy: 696850
// gas legacyOptimized: 134488 // gas legacyOptimized: 134488
// set_get_length(uint256): 0xFFF -> 0xFFF // set_get_length(uint256): 0xFFF -> 0xFFF
// gas irOptimized: 1800622 // gas irOptimized: 2288281
// gas legacy: 9857362 // gas legacy: 9857362
// gas legacyOptimized: 1393660 // gas legacyOptimized: 1393660
// set_get_length(uint256): 0xFFFFF -> FAILURE # Out-of-gas # // set_get_length(uint256): 0xFFFFF -> FAILURE # Out-of-gas #

View File

@ -17,11 +17,11 @@ contract C {
// gas legacy: 105722 // gas legacy: 105722
// gas legacyOptimized: 103508 // gas legacyOptimized: 103508
// set_get_length(uint256): 0xFF -> 0 // set_get_length(uint256): 0xFF -> 0
// gas irOptimized: 821106 // gas irOptimized: 890706
// gas legacy: 808020 // gas legacy: 808020
// gas legacyOptimized: 784467 // gas legacyOptimized: 784467
// set_get_length(uint256): 0xFFF -> 0 // set_get_length(uint256): 0xFFF -> 0
// gas irOptimized: 12828798 // gas irOptimized: 13946718
// gas legacy: 12612192 // gas legacy: 12612192
// gas legacyOptimized: 12239199 // gas legacyOptimized: 12239199
// set_get_length(uint256): 0xFFFF -> FAILURE # Out-of-gas # // set_get_length(uint256): 0xFFFF -> FAILURE # Out-of-gas #

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: 186537 // gas irOptimized: 186560
// 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

@ -17,6 +17,6 @@ contract c {
} }
// ---- // ----
// test() -> 0 // test() -> 0
// gas irOptimized: 125584 // gas irOptimized: 125104
// gas legacy: 150372 // gas legacy: 150372
// gas legacyOptimized: 146391 // gas legacyOptimized: 146391

View File

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

View File

@ -8,7 +8,7 @@ contract C {
} }
// ---- // ----
// constructor(): 1, 2, 3 -> // constructor(): 1, 2, 3 ->
// gas irOptimized: 140952 // gas irOptimized: 139729
// gas legacy: 180517 // gas legacy: 180517
// gas legacyOptimized: 150462 // gas legacyOptimized: 150462
// 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: 648323 // gas irOptimized: 648352
// 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: 117369 // gas irOptimized: 122796
// gas legacy: 124660 // gas legacy: 124660
// gas legacyOptimized: 122801 // gas legacyOptimized: 122801

View File

@ -13,6 +13,6 @@ contract C {
} }
// ---- // ----
// f() -> 0 // f() -> 0
// gas irOptimized: 107488 // gas irOptimized: 108354
// gas legacy: 108218 // gas legacy: 108218
// gas legacyOptimized: 107625 // gas legacyOptimized: 107625

View File

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

View File

@ -35,12 +35,12 @@ contract c {
} }
// ---- // ----
// test() -> 0x02000202 // test() -> 0x02000202
// gas irOptimized: 4548245 // gas irOptimized: 4549147
// gas legacy: 4476222 // gas legacy: 4476222
// gas legacyOptimized: 4448113 // gas legacyOptimized: 4448113
// storageEmpty -> 1 // storageEmpty -> 1
// clear() -> 0, 0 // clear() -> 0, 0
// gas irOptimized: 4475224 // gas irOptimized: 4477925
// gas legacy: 4408014 // gas legacy: 4408014
// gas legacyOptimized: 4381784 // gas legacyOptimized: 4381784
// storageEmpty -> 1 // storageEmpty -> 1

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: 689714 // gas irOptimized: 689898
// 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: 205062 // gas irOptimized: 205329
// 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: 169602 // gas irOptimized: 169620
// gas legacy: 175424 // gas legacy: 175424
// gas legacyOptimized: 172535 // gas legacyOptimized: 172535

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: 111366 // gas irOptimized: 111370
// gas legacy: 109272 // gas legacy: 109272
// gas legacyOptimized: 109262 // gas legacyOptimized: 109262
// getData2(uint256): 5 -> 10, 4 // getData2(uint256): 5 -> 10, 4

View File

@ -17,6 +17,6 @@ contract c {
} }
// ---- // ----
// test() -> 5, 4 // test() -> 5, 4
// gas irOptimized: 252986 // gas irOptimized: 253389
// gas legacy: 250892 // gas legacy: 250892
// gas legacyOptimized: 250046 // gas legacyOptimized: 250046

View File

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

View File

@ -14,6 +14,6 @@ contract c {
} }
// ---- // ----
// test() -> 8, 0 // test() -> 8, 0
// gas irOptimized: 196278 // gas irOptimized: 196259
// gas legacy: 194843 // gas legacy: 194843
// gas legacyOptimized: 194281 // gas legacyOptimized: 194281

View File

@ -17,7 +17,7 @@ contract c {
} }
// ---- // ----
// test() -> 4, 5 // test() -> 4, 5
// gas irOptimized: 190870 // gas irOptimized: 192450
// gas legacy: 190852 // gas legacy: 190852
// gas legacyOptimized: 189658 // gas legacyOptimized: 189658
// 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: 161715 // gas irOptimized: 161939
// gas legacy: 162203 // gas legacy: 162203
// gas legacyOptimized: 159941 // gas legacyOptimized: 159934

View File

@ -17,6 +17,6 @@ contract c {
} }
// ---- // ----
// test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000 // test() -> 0xffffffff, 0x0000000000000000000000000a00090008000700060005000400030002000100, 0x0000000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 104665 // 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: 273576 // gas irOptimized: 273564
// 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: 233285 // gas irOptimized: 233271
// gas legacy: 236523 // gas legacy: 236523
// gas legacyOptimized: 235592 // gas legacyOptimized: 235592

View File

@ -52,9 +52,9 @@ contract C {
} }
// ---- // ----
// from_storage() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14 // from_storage() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14
// gas irOptimized: 150061 // gas irOptimized: 150006
// gas legacy: 150745 // gas legacy: 150745
// gas legacyOptimized: 148685 // gas legacyOptimized: 148678
// from_storage_ptr() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14 // from_storage_ptr() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14
// from_memory() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14 // from_memory() -> 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 // 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

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: 180759 // gas irOptimized: 181047
// test2(uint256[][2]): 0x20, 0x40, 0x40, 2, 23, 42 -> 2, 65 // test2(uint256[][2]): 0x20, 0x40, 0x40, 2, 23, 42 -> 2, 65
// gas irOptimized: 157562 // gas irOptimized: 157637
// test3(uint256[2][]): 0x20, 2, 23, 42, 23, 42 -> 2, 65 // test3(uint256[2][]): 0x20, 2, 23, 42, 23, 42 -> 2, 65
// gas irOptimized: 134637 // gas irOptimized: 134723
// test4(uint256[2][2]): 23, 42, 23, 42 -> 65 // test4(uint256[2][2]): 23, 42, 23, 42 -> 65
// gas irOptimized: 111270 // gas irOptimized: 111252

View File

@ -38,12 +38,12 @@ contract Test {
} }
// ---- // ----
// test() -> 24 // test() -> 24
// gas irOptimized: 226687 // gas irOptimized: 226652
// gas legacy: 227084 // gas legacy: 227084
// gas legacyOptimized: 226529 // gas legacyOptimized: 226529
// test1() -> 3 // test1() -> 3
// test2() -> 6 // test2() -> 6
// test3() -> 24 // test3() -> 24
// gas irOptimized: 141244 // gas irOptimized: 141338
// gas legacy: 142238 // gas legacy: 142238
// gas legacyOptimized: 141365 // gas legacyOptimized: 141365

View File

@ -45,7 +45,7 @@ contract C {
} }
// ---- // ----
// copyExternalStorageArrayOfFunctionType() -> true // copyExternalStorageArrayOfFunctionType() -> true
// gas irOptimized: 104606 // gas irOptimized: 104770
// gas legacy: 108554 // gas legacy: 108554
// gas legacyOptimized: 102413 // gas legacyOptimized: 102413
// copyInternalArrayOfFunctionType() -> true // copyInternalArrayOfFunctionType() -> true

View File

@ -48,7 +48,7 @@ contract C {
} }
// ---- // ----
// copyExternalStorageArraysOfFunctionType() -> true // copyExternalStorageArraysOfFunctionType() -> true
// gas irOptimized: 104279 // gas irOptimized: 104427
// gas legacy: 108295 // gas legacy: 108295
// gas legacyOptimized: 102146 // gas legacyOptimized: 102146
// 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: 119736 // gas irOptimized: 119937

View File

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

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: 327759 // gas irOptimized: 328430

View File

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

View File

@ -12,6 +12,6 @@ contract C {
} }
// ---- // ----
// f() -> 1, 2, 3 // f() -> 1, 2, 3
// gas irOptimized: 131932 // gas irOptimized: 131921
// gas legacy: 134606 // gas legacy: 134606
// gas legacyOptimized: 131938 // gas legacyOptimized: 131938

View File

@ -37,8 +37,8 @@ contract C {
} }
// ---- // ----
// from_storage() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14 // from_storage() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14
// gas irOptimized: 147892 // gas irOptimized: 147915
// gas legacy: 148896 // gas legacy: 148896
// gas legacyOptimized: 146908 // gas legacyOptimized: 146901
// from_storage_ptr() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14 // from_storage_ptr() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14
// from_memory() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14 // from_memory() -> 0x20, 2, 0x40, 0xa0, 2, 10, 11, 3, 12, 13, 14

View File

@ -5,13 +5,13 @@ contract c {
} }
// ---- // ----
// set(uint256): 1, 2 -> true // set(uint256): 1, 2 -> true
// gas irOptimized: 110574 // 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: 177525 // 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: 109255 // gas irOptimized: 109275
// 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: 123936 // gas irOptimized: 124380
// 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: 130543 // gas irOptimized: 130982
// gas legacy: 147916 // gas legacy: 147916
// gas legacyOptimized: 142290 // gas legacyOptimized: 142276
// f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992 // f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992
// gas irOptimized: 139333 // gas irOptimized: 140042
// gas legacy: 171136 // gas legacy: 171136
// gas legacyOptimized: 161550 // 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: 441985 // gas irOptimized: 443206
// 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: 110970 // gas irOptimized: 111049
// 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: 139905 // gas irOptimized: 139683

View File

@ -16,7 +16,7 @@ contract C {
} }
// ---- // ----
// constructor() // constructor()
// gas irOptimized: 234419 // gas irOptimized: 210785
// gas legacy: 215757 // gas legacy: 215757
// gas legacyOptimized: 181760 // gas legacyOptimized: 181760
// f() -> 0 // f() -> 0

View File

@ -35,12 +35,12 @@ contract C {
} }
// ---- // ----
// f() -> 0x40, 0x80, 6, 0x6162636465660000000000000000000000000000000000000000000000000000, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000 // f() -> 0x40, 0x80, 6, 0x6162636465660000000000000000000000000000000000000000000000000000, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000
// gas irOptimized: 179752 // gas irOptimized: 179696
// gas legacy: 181001 // gas legacy: 181001
// gas legacyOptimized: 180014 // gas legacyOptimized: 180018
// g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000 // g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000
// gas irOptimized: 106682 // gas irOptimized: 106631
// gas legacy: 109720 // gas legacy: 109720
// gas legacyOptimized: 106937 // gas legacyOptimized: 106932
// h() -> 0x40, 0x60, 0x00, 0x00 // h() -> 0x40, 0x60, 0x00, 0x00
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -46,6 +46,6 @@ contract C {
} }
// ---- // ----
// f() -> 0xff // f() -> 0xff
// gas irOptimized: 143426 // gas irOptimized: 144270
// gas legacy: 153395 // gas legacy: 153395
// gas legacyOptimized: 146722 // gas legacyOptimized: 146720

View File

@ -15,6 +15,6 @@ contract C {
} }
// ---- // ----
// test() -> 7 // test() -> 7
// gas irOptimized: 122477 // gas irOptimized: 122662
// 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: 177383 // gas irOptimized: 177368
// gas legacy: 177954 // gas legacy: 177954
// gas legacyOptimized: 177554 // gas legacyOptimized: 177550
// storageEmpty -> 0 // storageEmpty -> 0
// reset() -> true // reset() -> true
// storageEmpty -> 1 // storageEmpty -> 1

View File

@ -18,9 +18,9 @@ contract sender {
} }
// ---- // ----
// (): 7 -> // (): 7 ->
// gas irOptimized: 110820 // gas irOptimized: 110901
// gas legacy: 111388 // gas legacy: 111388
// gas legacyOptimized: 111071 // 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: 327821 // gas irOptimized: 327934
// 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: 140867 // gas irOptimized: 140870
// 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: 188473 // gas irOptimized: 188553

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: 332527 // gas irOptimized: 332777
// 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: 145155 // gas irOptimized: 145161
// 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: 192476 // gas irOptimized: 192680

View File

@ -46,11 +46,11 @@ contract C {
} }
// ---- // ----
// test() -> 0x20, 0x14, "[a called][b called]" // test() -> 0x20, 0x14, "[a called][b called]"
// gas irOptimized: 116638 // gas irOptimized: 116438
// 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: 103241 // gas irOptimized: 103292
// 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: 128116 // gas irOptimized: 129339
// gas legacy: 130584 // gas legacy: 130584
// gas legacyOptimized: 129031 // gas legacyOptimized: 129028

View File

@ -70,15 +70,15 @@ contract C {
} }
// ---- // ----
// test1() -> // test1() ->
// gas irOptimized: 150508 // gas irOptimized: 150502
// gas legacy: 150949 // gas legacy: 150949
// gas legacyOptimized: 150906 // gas legacyOptimized: 150906
// test2() -> FAILURE // test2() -> FAILURE
// gas irOptimized: 150385 // gas irOptimized: 150429
// gas legacy: 150673 // gas legacy: 150673
// gas legacyOptimized: 150576 // gas legacyOptimized: 150576
// test3() -> // test3() ->
// gas irOptimized: 123776 // gas irOptimized: 124005
// gas legacy: 125333 // gas legacy: 125333
// gas legacyOptimized: 125127 // gas legacyOptimized: 125127
// test4() -> FAILURE // test4() -> 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: 304714 // gas irOptimized: 304746
// 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: 116454 // gas irOptimized: 116447
// 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: 187962 // gas irOptimized: 188042

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: 309068 // gas irOptimized: 309070
// 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: 118167 // gas irOptimized: 118262
// 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: 190961 // gas irOptimized: 191041

View File

@ -63,7 +63,7 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// test1() // test1()
// gas irOptimized: 123237 // gas irOptimized: 123207
// test2() // test2()
// gas irOptimized: 123043 // gas irOptimized: 123042
// test3() // test3()

View File

@ -30,7 +30,7 @@ contract C {
// compileViaYul: true // compileViaYul: true
// ---- // ----
// 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: 138054 // gas irOptimized: 138063
// test2(uint8[][]): 0x20, 2, 0x40, 0x80, 1, 7, 2, 8, 9 // test2(uint8[][]): 0x20, 2, 0x40, 0x80, 1, 7, 2, 8, 9
// gas irOptimized: 164232 // gas irOptimized: 164291
// 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: 205974 // gas irOptimized: 206351
// 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: 202805 // gas irOptimized: 202852
// gas legacy: 204798 // gas legacy: 204798
// gas legacyOptimized: 203368 // 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: 205974 // gas irOptimized: 206351
// gas legacy: 212242 // gas legacy: 212242
// gas legacyOptimized: 211430 // gas legacyOptimized: 211430

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