Optimize eq iszero jumpi to xor jumpi and remove double jump.

This commit is contained in:
chriseth
2022-03-10 14:41:41 +01:00
parent 2b201f21a1
commit b3fe042884
101 changed files with 312 additions and 253 deletions
@@ -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
@@ -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