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,7 +25,7 @@ contract c {
// compileViaYul: also
// ----
// test() -> 1, 2, 3
// gas irOptimized: 2271482
// gas legacy: 2273722
// gas legacyOptimized: 2262396
// gas irOptimized: 2271050
// gas legacy: 2273434
// gas legacyOptimized: 2261820
// storageEmpty -> 1
@@ -21,6 +21,6 @@ contract c {
// ----
// test() -> 38, 28, 18
// gas irOptimized: 188649
// gas legacy: 189780
// gas legacyOptimized: 178870
// gas legacy: 189492
// gas legacyOptimized: 178294
// storageEmpty -> 1
@@ -21,6 +21,6 @@ contract c {
// ----
// test() -> 20, 10
// gas irOptimized: 159175
// gas legacy: 159459
// gas legacyOptimized: 153281
// gas legacy: 159279
// gas legacyOptimized: 152921
// storageEmpty -> 1
@@ -13,5 +13,5 @@ contract c {
// ----
// test() -> 0x20, 29, 0x0303030303030303030303030303030303030303030303030303030303000000
// gas irOptimized: 109503
// gas legacy: 127309
// gas legacyOptimized: 124136
// gas legacy: 126728
// gas legacyOptimized: 123444
@@ -19,6 +19,6 @@ contract c {
// ----
// test() -> true
// gas irOptimized: 196545
// gas legacy: 229864
// gas legacyOptimized: 210964
// gas legacy: 228685
// gas legacyOptimized: 209662
// storageEmpty -> 1
@@ -18,6 +18,6 @@ contract c {
// ----
// test() ->
// gas irOptimized: 142640
// gas legacy: 165363
// gas legacyOptimized: 159446
// gas legacy: 164430
// gas legacyOptimized: 158513
// storageEmpty -> 1
@@ -13,5 +13,5 @@ contract c {
// ----
// test() -> 0x20, 33, 0x303030303030303030303030303030303030303030303030303030303030303, 0x0300000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 108493
// gas legacy: 126187
// gas legacyOptimized: 123261
// gas legacy: 125610
// gas legacyOptimized: 122582