mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #11963 from ethereum/slightABIDecodeImprovement
Improve abi decoding functions for arrays.
This commit is contained in:
@@ -14,9 +14,9 @@ contract C {
|
||||
}
|
||||
// ----
|
||||
// creation:
|
||||
// codeDepositCost: 1259800
|
||||
// executionCost: 1308
|
||||
// totalCost: 1261108
|
||||
// codeDepositCost: 1243000
|
||||
// executionCost: 1295
|
||||
// totalCost: 1244295
|
||||
// external:
|
||||
// a(): 2430
|
||||
// b(uint256): infinite
|
||||
|
||||
@@ -17,9 +17,9 @@ contract C {
|
||||
// optimize-yul: true
|
||||
// ----
|
||||
// creation:
|
||||
// codeDepositCost: 680600
|
||||
// executionCost: 715
|
||||
// totalCost: 681315
|
||||
// codeDepositCost: 660800
|
||||
// executionCost: 696
|
||||
// totalCost: 661496
|
||||
// external:
|
||||
// a(): 2285
|
||||
// b(uint256): 4652
|
||||
|
||||
@@ -24,6 +24,6 @@ contract C {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// f() -> 0x20, 0x8, 0x40, 0x3, 0x9, 0xa, 0xb
|
||||
// gas irOptimized: 203556
|
||||
// gas legacy: 206126
|
||||
// gas legacyOptimized: 203105
|
||||
// gas irOptimized: 203522
|
||||
// gas legacy: 206084
|
||||
// gas legacyOptimized: 203068
|
||||
|
||||
+3
-3
@@ -32,6 +32,6 @@ contract C is B {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// test() -> 77
|
||||
// gas irOptimized: 121752
|
||||
// gas legacy: 155249
|
||||
// gas legacyOptimized: 111743
|
||||
// gas irOptimized: 121699
|
||||
// gas legacy: 155221
|
||||
// gas legacyOptimized: 111678
|
||||
|
||||
@@ -21,6 +21,6 @@ contract C {
|
||||
// f(uint256[][1]): 32, 32, 0 -> true
|
||||
// f(uint256[][1]): 32, 32, 1, 42 -> true
|
||||
// f(uint256[][1]): 32, 32, 8, 421, 422, 423, 424, 425, 426, 427, 428 -> true
|
||||
// gas irOptimized: 177719
|
||||
// gas irOptimized: 177581
|
||||
// gas legacy: 141900
|
||||
// gas legacyOptimized: 121788
|
||||
|
||||
@@ -14,9 +14,9 @@ contract Test {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// set(uint24[3][]): 0x20, 0x06, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12 -> 0x06
|
||||
// gas irOptimized: 189567
|
||||
// gas legacy: 211485
|
||||
// gas legacyOptimized: 206394
|
||||
// gas irOptimized: 189239
|
||||
// gas legacy: 211149
|
||||
// gas legacyOptimized: 206054
|
||||
// data(uint256,uint256): 0x02, 0x02 -> 0x09
|
||||
// data(uint256,uint256): 0x05, 0x01 -> 0x11
|
||||
// data(uint256,uint256): 0x06, 0x00 -> FAILURE
|
||||
|
||||
@@ -12,9 +12,9 @@ contract Test {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// set(uint24[]): 0x20, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 -> 18
|
||||
// gas irOptimized: 100066
|
||||
// gas legacy: 103815
|
||||
// gas legacyOptimized: 101614
|
||||
// gas irOptimized: 99873
|
||||
// gas legacy: 103563
|
||||
// gas legacyOptimized: 101397
|
||||
// data(uint256): 7 -> 8
|
||||
// data(uint256): 15 -> 16
|
||||
// data(uint256): 18 -> FAILURE
|
||||
|
||||
@@ -21,6 +21,6 @@ contract B {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// f() -> 2, 3, 4, 5, 6, 1000, 1001, 1002, 1003, 1004
|
||||
// gas irOptimized: 121038
|
||||
// gas legacy: 235339
|
||||
// gas legacyOptimized: 133299
|
||||
// gas irOptimized: 120848
|
||||
// gas legacy: 235199
|
||||
// gas legacyOptimized: 133119
|
||||
|
||||
@@ -45,6 +45,6 @@ contract C {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// test() -> 5, 6, 7
|
||||
// gas irOptimized: 299965
|
||||
// gas legacy: 463662
|
||||
// gas legacyOptimized: 296513
|
||||
// gas irOptimized: 297690
|
||||
// gas legacy: 462080
|
||||
// gas legacyOptimized: 294938
|
||||
|
||||
@@ -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: 459815
|
||||
// gas legacy: 592626
|
||||
// gas legacyOptimized: 450224
|
||||
// gas irOptimized: 458295
|
||||
// gas legacy: 590939
|
||||
// gas legacyOptimized: 448582
|
||||
|
||||
+3
-3
@@ -25,6 +25,6 @@ contract B {
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// g() -> 42
|
||||
// gas irOptimized: 110833
|
||||
// gas legacy: 186609
|
||||
// gas legacyOptimized: 116151
|
||||
// gas irOptimized: 105784
|
||||
// gas legacy: 185181
|
||||
// gas legacyOptimized: 114726
|
||||
|
||||
@@ -55,9 +55,9 @@ contract C {
|
||||
// gas legacy: 125037
|
||||
// gas legacyOptimized: 122605
|
||||
// test_g() -> true
|
||||
// gas irOptimized: 95969
|
||||
// gas legacy: 100656
|
||||
// gas legacyOptimized: 96057
|
||||
// gas irOptimized: 95908
|
||||
// gas legacy: 100586
|
||||
// gas legacyOptimized: 95996
|
||||
// addresses(uint256): 0 -> 0x18
|
||||
// addresses(uint256): 1 -> 0x19
|
||||
// addresses(uint256): 3 -> 0x1b
|
||||
|
||||
Reference in New Issue
Block a user