mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Optimize eq iszero jumpi to xor jumpi and remove double jump.
This commit is contained in:
@@ -25,9 +25,9 @@ contract C {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// constructor(), 1 ether ->
|
||||
// gas irOptimized: 315341
|
||||
// gas legacy: 465314
|
||||
// gas legacyOptimized: 304481
|
||||
// gas irOptimized: 314681
|
||||
// gas legacy: 464030
|
||||
// gas legacyOptimized: 304049
|
||||
// f(uint256): 0 -> FAILURE
|
||||
// f(uint256): 1 -> FAILURE
|
||||
// f(uint256): 2 -> FAILURE
|
||||
|
||||
+3
-3
@@ -27,9 +27,9 @@ contract C {
|
||||
// revertStrings: debug
|
||||
// ----
|
||||
// constructor(), 1 ether ->
|
||||
// gas irOptimized: 452673
|
||||
// gas legacy: 834272
|
||||
// gas legacyOptimized: 510004
|
||||
// gas irOptimized: 449901
|
||||
// gas legacy: 832976
|
||||
// gas legacyOptimized: 509560
|
||||
// f(uint256): 0 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code"
|
||||
// f(uint256): 1 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code"
|
||||
// f(uint256): 2 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code"
|
||||
|
||||
@@ -18,9 +18,9 @@ contract C {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// constructor(), 20 wei
|
||||
// gas irOptimized: 219285
|
||||
// gas legacy: 294569
|
||||
// gas legacyOptimized: 174699
|
||||
// gas irOptimized: 219069
|
||||
// gas legacy: 294335
|
||||
// gas legacyOptimized: 174279
|
||||
// f(uint256): 20 -> 1370859564726510389319704988634906228201275401179
|
||||
// x() -> 1
|
||||
// f(uint256): 20 -> FAILURE
|
||||
|
||||
@@ -41,7 +41,7 @@ contract test {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// constructor(), 20 wei ->
|
||||
// gas irOptimized: 283040
|
||||
// gas irOptimized: 282824
|
||||
// gas legacy: 402654
|
||||
// gas legacyOptimized: 274470
|
||||
// sendAmount(uint256): 5 -> 5
|
||||
|
||||
@@ -40,7 +40,7 @@ contract test {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// constructor(), 20 wei ->
|
||||
// gas irOptimized: 283040
|
||||
// gas irOptimized: 282824
|
||||
// gas legacy: 402654
|
||||
// gas legacyOptimized: 274470
|
||||
// sendAmount(uint256): 5 -> 5
|
||||
|
||||
@@ -20,7 +20,7 @@ contract test {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// set(uint8,uint8,uint8,uint8,uint8): 1, 21, 22, 42, 43 -> 0, 0, 0, 0
|
||||
// gas irOptimized: 111929
|
||||
// gas irOptimized: 111914
|
||||
// gas legacy: 113806
|
||||
// gas legacyOptimized: 111781
|
||||
// get(uint8): 1 -> 21, 22, 42, 43
|
||||
|
||||
Reference in New Issue
Block a user