mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Add inlining for old optimizer.
This commit is contained in:
@@ -0,0 +1,198 @@
|
||||
|
||||
======= optimizer_inliner_dynamic_reference/input.sol:C =======
|
||||
EVM assembly:
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":60:367 contract C {... */
|
||||
mstore(0x40, 0x80)
|
||||
callvalue
|
||||
dup1
|
||||
iszero
|
||||
tag_1
|
||||
jumpi
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_1:
|
||||
pop
|
||||
dataSize(sub_0)
|
||||
dup1
|
||||
dataOffset(sub_0)
|
||||
0x00
|
||||
codecopy
|
||||
0x00
|
||||
return
|
||||
stop
|
||||
|
||||
sub_0: assembly {
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":60:367 contract C {... */
|
||||
mstore(0x40, 0x80)
|
||||
callvalue
|
||||
dup1
|
||||
iszero
|
||||
tag_1
|
||||
jumpi
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_1:
|
||||
pop
|
||||
jumpi(tag_2, lt(calldatasize, 0x04))
|
||||
shr(0xe0, calldataload(0x00))
|
||||
dup1
|
||||
0x0dbe671f
|
||||
eq
|
||||
tag_3
|
||||
jumpi
|
||||
dup1
|
||||
0xb8c9d365
|
||||
eq
|
||||
tag_4
|
||||
jumpi
|
||||
dup1
|
||||
0xe2179b8e
|
||||
eq
|
||||
tag_5
|
||||
jumpi
|
||||
tag_2:
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":160:215 function a() public pure returns (uint) { return f(); } */
|
||||
tag_3:
|
||||
tag_6
|
||||
tag_7
|
||||
jump // in
|
||||
tag_6:
|
||||
mload(0x40)
|
||||
/* "#utility.yul":160:185 */
|
||||
swap1
|
||||
dup2
|
||||
mstore
|
||||
/* "#utility.yul":148:150 */
|
||||
0x20
|
||||
/* "#utility.yul":133:151 */
|
||||
add
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":160:215 function a() public pure returns (uint) { return f(); } */
|
||||
mload(0x40)
|
||||
dup1
|
||||
swap2
|
||||
sub
|
||||
swap1
|
||||
return
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":246:305 function h() public view returns (uint) { return x() + 1; } */
|
||||
tag_4:
|
||||
tag_6
|
||||
tag_11
|
||||
jump // in
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":125:155 function g() public { x = f; } */
|
||||
tag_5:
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":147:148 x */
|
||||
0x00
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":147:152 x = f */
|
||||
dup1
|
||||
sload
|
||||
not(0xffffffffffffffff)
|
||||
and
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":151:152 f */
|
||||
tag_17
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":147:152 x = f */
|
||||
or
|
||||
swap1
|
||||
sstore
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":125:155 function g() public { x = f; } */
|
||||
stop
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":160:215 function a() public pure returns (uint) { return f(); } */
|
||||
tag_7:
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":194:198 uint */
|
||||
0x00
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":361:362 6 */
|
||||
0x06
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":209:212 f() */
|
||||
tag_16:
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":202:212 return f() */
|
||||
swap1
|
||||
pop
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":160:215 function a() public pure returns (uint) { return f(); } */
|
||||
swap1
|
||||
jump // out
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":246:305 function h() public view returns (uint) { return x() + 1; } */
|
||||
tag_11:
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":280:284 uint */
|
||||
0x00
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":295:296 x */
|
||||
dup1
|
||||
sload
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":295:298 x() */
|
||||
tag_19
|
||||
swap1
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":295:296 x */
|
||||
dup1
|
||||
iszero
|
||||
tag_20
|
||||
mul
|
||||
or
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":295:298 x() */
|
||||
0xffffffff
|
||||
and
|
||||
jump // in
|
||||
tag_19:
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":295:302 x() + 1 */
|
||||
tag_16
|
||||
swap1
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":301:302 1 */
|
||||
0x01
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":295:302 x() + 1 */
|
||||
tag_22
|
||||
jump // in
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":310:365 function f() internal pure returns (uint) { return 6; } */
|
||||
tag_17:
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":361:362 6 */
|
||||
0x06
|
||||
/* "optimizer_inliner_dynamic_reference/input.sol":310:365 function f() internal pure returns (uint) { return 6; } */
|
||||
swap1
|
||||
jump // out
|
||||
tag_20:
|
||||
mstore(0x00, shl(0xe0, 0x4e487b71))
|
||||
mstore(0x04, 0x51)
|
||||
revert(0x00, 0x24)
|
||||
/* "#utility.yul":196:425 */
|
||||
tag_22:
|
||||
0x00
|
||||
/* "#utility.yul":267:268 */
|
||||
dup3
|
||||
/* "#utility.yul":263:269 */
|
||||
not
|
||||
/* "#utility.yul":260:261 */
|
||||
dup3
|
||||
/* "#utility.yul":257:270 */
|
||||
gt
|
||||
/* "#utility.yul":254:256 */
|
||||
iszero
|
||||
tag_28
|
||||
jumpi
|
||||
shl(0xe0, 0x4e487b71)
|
||||
/* "#utility.yul":293:326 */
|
||||
dup2
|
||||
mstore
|
||||
/* "#utility.yul":349:353 */
|
||||
0x11
|
||||
/* "#utility.yul":346:347 */
|
||||
0x04
|
||||
/* "#utility.yul":339:354 */
|
||||
mstore
|
||||
/* "#utility.yul":379:383 */
|
||||
0x24
|
||||
/* "#utility.yul":300:303 */
|
||||
dup2
|
||||
/* "#utility.yul":367:384 */
|
||||
revert
|
||||
/* "#utility.yul":254:256 */
|
||||
tag_28:
|
||||
pop
|
||||
/* "#utility.yul":410:419 */
|
||||
add
|
||||
swap1
|
||||
/* "#utility.yul":244:425 */
|
||||
jump // out
|
||||
|
||||
auxdata: <AUXDATA REMOVED>
|
||||
}
|
||||
Reference in New Issue
Block a user