Merge pull request #12132 from ethereum/userDefinedSideEffectsCodeTransform

Use side-effects of user defined functions in evm code transform.
This commit is contained in:
Daniel
2022-11-22 14:26:57 +01:00
committed by GitHub
20 changed files with 185 additions and 122 deletions
@@ -63,6 +63,6 @@ contract C {
// gas legacy: 414569
// gas legacyOptimized: 319271
// test_uint256() ->
// gas irOptimized: 511919
// gas irOptimized: 511451
// gas legacy: 581876
// gas legacyOptimized: 442757
@@ -64,6 +64,6 @@ contract C {
// gas legacy: 414569
// gas legacyOptimized: 319271
// test_uint256() ->
// gas irOptimized: 511919
// gas irOptimized: 511451
// gas legacy: 581876
// gas legacyOptimized: 442757
@@ -52,18 +52,18 @@ contract C {
// ----
// test_zeroed_indicies(uint256): 1 ->
// test_zeroed_indicies(uint256): 5 ->
// gas irOptimized: 132036
// gas irOptimized: 131998
// gas legacy: 132961
// gas legacyOptimized: 130752
// test_zeroed_indicies(uint256): 10 ->
// gas irOptimized: 226094
// gas irOptimized: 226012
// gas legacy: 228071
// gas legacyOptimized: 224010
// test_zeroed_indicies(uint256): 15 ->
// gas irOptimized: 324266
// gas irOptimized: 324140
// gas legacy: 327311
// gas legacyOptimized: 321462
// test_zeroed_indicies(uint256): 0xFF ->
// gas irOptimized: 5122626
// gas irOptimized: 5120200
// gas legacy: 5172987
// gas legacyOptimized: 5066462
@@ -15,7 +15,7 @@ contract c {
}
// ----
// test() ->
// gas irOptimized: 114023
// gas irOptimized: 113892
// gas legacy: 131544
// gas legacyOptimized: 126811
// storageEmpty -> 1
@@ -28,7 +28,7 @@ contract C {
// compileViaYul: also
// ----
// constructor() ->
// gas irOptimized: 464753
// gas irOptimized: 449704
// gas legacy: 729908
// gas legacyOptimized: 493347
// h() -> 0x20, 0x40, 0x00, 0
@@ -33,7 +33,7 @@ contract test {
// EVMVersion: >=constantinople
// ----
// constructor()
// gas irOptimized: 438376
// gas irOptimized: 414909
// gas legacy: 750723
// gas legacyOptimized: 536620
// encode_inline_asm(bytes): 0x20, 0 -> 0x20, 0
@@ -51,10 +51,10 @@ contract test {
// encode_no_asm(bytes): 0x20, 5, "fooba" -> 0x20, 8, "Zm9vYmE="
// encode_no_asm(bytes): 0x20, 6, "foobar" -> 0x20, 8, "Zm9vYmFy"
// encode_inline_asm_large()
// gas irOptimized: 1387039
// gas irOptimized: 1374039
// gas legacy: 1688033
// gas legacyOptimized: 1205033
// encode_no_asm_large()
// gas irOptimized: 3316107
// gas irOptimized: 3291100
// gas legacy: 4765077
// gas legacyOptimized: 2908077
@@ -294,11 +294,11 @@ contract Test {
// f() -> true
// g() -> true
// pair() -> true
// gas irOptimized: 270080
// gas irOptimized: 269938
// gas legacy: 275952
// gas legacyOptimized: 267239
// verifyTx() -> true
// ~ emit Verified(string): 0x20, 0x16, "Successfully verified."
// gas irOptimized: 784027
// gas irOptimized: 783501
// gas legacy: 805423
// gas legacyOptimized: 772571
@@ -49,7 +49,7 @@ contract test {
}
// ----
// constructor()
// gas irOptimized: 670586
// gas irOptimized: 642624
// gas legacy: 1096108
// gas legacyOptimized: 741962
// toSlice(string): 0x20, 11, "hello world" -> 11, 0xa0
@@ -69,6 +69,6 @@ contract test {
// gas legacy: 31621
// gas legacyOptimized: 27914
// benchmark(string,bytes32): 0x40, 0x0842021, 8, "solidity" -> 0x2020
// gas irOptimized: 2017770
// gas irOptimized: 1989966
// gas legacy: 4294552
// gas legacyOptimized: 2327981
@@ -26,7 +26,7 @@ contract C {
// revertStrings: debug
// ----
// constructor(), 1 ether ->
// gas irOptimized: 424088
// gas irOptimized: 391081
// gas legacy: 823681
// gas legacyOptimized: 505900
// f(uint256): 0 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code"