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 @@
|
||||
--optimize --asm --metadata-hash none
|
||||
@@ -0,0 +1,17 @@
|
||||
// SPDX-License-Identifier: GPL-3.0
|
||||
pragma solidity >=0.0;
|
||||
|
||||
function unsafe_inc(uint x) pure returns (uint)
|
||||
{
|
||||
unchecked {
|
||||
return x + 1;
|
||||
}
|
||||
}
|
||||
|
||||
contract C {
|
||||
function f() public pure {
|
||||
for(uint x = 0; x < 10; x = unsafe_inc(x))
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
|
||||
======= optimizer_inliner_inc/input.sol:C =======
|
||||
EVM assembly:
|
||||
/* "optimizer_inliner_inc/input.sol":157:279 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_inc/input.sol":157:279 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
|
||||
0x26121ff0
|
||||
eq
|
||||
tag_3
|
||||
jumpi
|
||||
tag_2:
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
/* "optimizer_inliner_inc/input.sol":174:277 function f() public pure {... */
|
||||
tag_3:
|
||||
tag_4
|
||||
tag_5
|
||||
jump // in
|
||||
tag_4:
|
||||
stop
|
||||
tag_5:
|
||||
/* "optimizer_inliner_inc/input.sol":213:219 uint x */
|
||||
0x00
|
||||
/* "optimizer_inliner_inc/input.sol":209:271 for(uint x = 0; x < 10; x = unsafe_inc(x))... */
|
||||
tag_7:
|
||||
/* "optimizer_inliner_inc/input.sol":229:231 10 */
|
||||
0x0a
|
||||
/* "optimizer_inliner_inc/input.sol":225:226 x */
|
||||
dup2
|
||||
/* "optimizer_inliner_inc/input.sol":225:231 x < 10 */
|
||||
lt
|
||||
/* "optimizer_inliner_inc/input.sol":209:271 for(uint x = 0; x < 10; x = unsafe_inc(x))... */
|
||||
iszero
|
||||
tag_8
|
||||
jumpi
|
||||
/* "optimizer_inliner_inc/input.sol":145:146 1 */
|
||||
0x01
|
||||
/* "optimizer_inliner_inc/input.sol":141:146 x + 1 */
|
||||
add
|
||||
/* "optimizer_inliner_inc/input.sol":209:271 for(uint x = 0; x < 10; x = unsafe_inc(x))... */
|
||||
jump(tag_7)
|
||||
tag_8:
|
||||
pop
|
||||
/* "optimizer_inliner_inc/input.sol":174:277 function f() public pure {... */
|
||||
jump // out
|
||||
|
||||
auxdata: <AUXDATA REMOVED>
|
||||
}
|
||||
Reference in New Issue
Block a user