mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Remove swap after dup.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
--asm
|
||||
@@ -0,0 +1,5 @@
|
||||
Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.
|
||||
--> dup_opt_peephole/input.sol
|
||||
|
||||
Warning: Source file does not specify required compiler version!
|
||||
--> dup_opt_peephole/input.sol
|
||||
@@ -0,0 +1,9 @@
|
||||
contract C {
|
||||
fallback() external {
|
||||
assembly {
|
||||
let x := calldataload(0)
|
||||
x := x
|
||||
sstore(0, x)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
======= dup_opt_peephole/input.sol:C =======
|
||||
EVM assembly:
|
||||
/* "dup_opt_peephole/input.sol":0:111 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 {
|
||||
/* "dup_opt_peephole/input.sol":0:111 contract C {... */
|
||||
mstore(0x40, 0x80)
|
||||
callvalue
|
||||
dup1
|
||||
iszero
|
||||
tag_3
|
||||
jumpi
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_3:
|
||||
pop
|
||||
/* "dup_opt_peephole/input.sol":74:75 0 */
|
||||
0x00
|
||||
/* "dup_opt_peephole/input.sol":61:76 calldataload(0) */
|
||||
calldataload
|
||||
/* "dup_opt_peephole/input.sol":100:101 x */
|
||||
dup1
|
||||
/* "dup_opt_peephole/input.sol":97:98 0 */
|
||||
0x00
|
||||
/* "dup_opt_peephole/input.sol":90:102 sstore(0, x) */
|
||||
sstore
|
||||
/* "dup_opt_peephole/input.sol":47:106 {... */
|
||||
pop
|
||||
/* "dup_opt_peephole/input.sol":0:111 contract C {... */
|
||||
stop
|
||||
|
||||
auxdata: AUXDATA REMOVED
|
||||
}
|
||||
Reference in New Issue
Block a user