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
@@ -26,6 +26,6 @@ contract Creator {
// compileViaYul: also
// ----
// f(uint256,address[]): 7, 0x40, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 -> 7, 8
// gas irOptimized: 443989
// gas irOptimized: 443720
// gas legacy: 590683
// gas legacyOptimized: 448326
@@ -26,6 +26,6 @@ contract Creator {
// compileViaYul: also
// ----
// f(uint256,bytes): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" -> 7, "h"
// gas irOptimized: 300837
// gas legacy: 428917
// gas legacyOptimized: 298128
// gas irOptimized: 300834
// gas legacy: 428711
// gas legacyOptimized: 297922
@@ -11,7 +11,7 @@ contract Test {
// ----
// constructor(): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" ->
// gas irOptimized: 291443
// gas legacy: 309842
// gas legacyOptimized: 260801
// gas legacy: 309607
// gas legacyOptimized: 260566
// m_x() -> 7
// m_s() -> 0x20, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz"
@@ -19,7 +19,7 @@ contract Main {
// compileViaYul: also
// ----
// constructor(): "abc", true
// gas irOptimized: 107175
// gas irOptimized: 106267
// gas legacy: 145838
// gas legacyOptimized: 104017
// getFlag() -> true
@@ -12,7 +12,7 @@ contract C {
// compileViaYul: also
// ----
// constructor(): 1, 2, 3, 4 ->
// gas irOptimized: 174905
// gas irOptimized: 174041
// gas legacy: 221377
// gas legacyOptimized: 177671
// a() -> 1
@@ -19,6 +19,6 @@ contract C {
// compileViaYul: also
// ----
// f(), 2000 ether -> true
// gas irOptimized: 123037
// gas irOptimized: 123036
// gas legacy: 123226
// gas legacyOptimized: 123092