Skip extcodesize check if return data is expected.

This commit is contained in:
chriseth
2021-11-08 14:58:09 +01:00
parent ea3c34a082
commit a1aa9d2d90
35 changed files with 270 additions and 67 deletions
@@ -61,9 +61,9 @@ contract C {
// ----
// test_bytes() ->
// gas irOptimized: 377545
// gas legacy: 423563
// gas legacy: 418955
// gas legacyOptimized: 331391
// test_uint256() ->
// gas irOptimized: 528726
// gas legacy: 591392
// gas legacy: 586784
// gas legacyOptimized: 456137
@@ -27,5 +27,5 @@ contract C {
// library: L
// f() -> 8, 7, 1, 2, 7, 12
// gas irOptimized: 167580
// gas legacy: 169475
// gas legacy: 169347
// gas legacyOptimized: 167397
@@ -62,9 +62,9 @@ contract C {
// ----
// test_bytes() ->
// gas irOptimized: 377545
// gas legacy: 423563
// gas legacy: 418955
// gas legacyOptimized: 331391
// test_uint256() ->
// gas irOptimized: 528726
// gas legacy: 591392
// gas legacy: 586784
// gas legacyOptimized: 456137
@@ -33,5 +33,5 @@ contract C is B {
// ----
// test() -> 77
// gas irOptimized: 120044
// gas legacy: 155221
// gas legacy: 155093
// gas legacyOptimized: 111678
@@ -41,4 +41,4 @@ contract C is B {
// ----
// test() -> 5, 10
// gas irOptimized: 87578
// gas legacy: 99137
// gas legacy: 98881
@@ -22,5 +22,5 @@ contract C {
// 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: 172204
// gas legacy: 141900
// gas legacy: 141644
// gas legacyOptimized: 121788
@@ -18,4 +18,4 @@ contract D {
// ----
// f() -> FAILURE, hex"4e487b71", 0x11
// g(), 100 wei -> 1
// gas legacy: 101918
// gas legacy: 101790
@@ -22,5 +22,5 @@ contract B {
// ----
// f() -> 2, 3, 4, 5, 6, 1000, 1001, 1002, 1003, 1004
// gas irOptimized: 130328
// gas legacy: 235199
// gas legacy: 234943
// gas legacyOptimized: 133119
@@ -46,5 +46,5 @@ contract C {
// ----
// test() -> 5, 6, 7
// gas irOptimized: 302321
// gas legacy: 462080
// gas legacy: 452172
// gas legacyOptimized: 294938
@@ -27,5 +27,5 @@ contract Main {
// ----
// f(uint256): 0x34 -> 0x46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1
// gas irOptimized: 113776
// gas legacy: 126852
// gas legacy: 126596
// gas legacyOptimized: 114079
@@ -27,5 +27,5 @@ contract Creator {
// ----
// f(uint256,address[]): 7, 0x40, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 -> 7, 8
// gas irOptimized: 456873
// gas legacy: 590939
// gas legacy: 590683
// gas legacyOptimized: 448582
@@ -27,5 +27,5 @@ contract Creator {
// ----
// f(uint256,bytes): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" -> 7, "h"
// gas irOptimized: 308702
// gas legacy: 429173
// gas legacy: 428917
// gas legacyOptimized: 298384
@@ -19,4 +19,4 @@ contract C {
// compileViaYul: also
// ----
// f() -> 16
// gas legacy: 103744
// gas legacy: 103488
@@ -15,4 +15,4 @@ contract D {
// compileViaYul: also
// ----
// f() -> 2
// gas legacy: 101754
// gas legacy: 101626
@@ -13,4 +13,4 @@ contract D {
// compileViaYul: also
// ----
// f() -> 2
// gas legacy: 101727
// gas legacy: 101599
@@ -19,7 +19,7 @@ contract C {
// ----
// constructor(), 20 wei
// gas irOptimized: 220113
// gas legacy: 288299
// gas legacy: 294569
// gas legacyOptimized: 177933
// f(uint256): 20 -> 1370859564726510389319704988634906228201275401179
// x() -> 1
@@ -27,7 +27,7 @@ contract C {
// x() -> 1
// stack(uint256): 1023 -> FAILURE
// gas irOptimized: 345821
// gas legacy: 535367
// gas legacy: 483942
// gas legacyOptimized: 354656
// x() -> 1
// stack(uint256): 10 -> 693016686122178122849713379390321835634789309880
@@ -29,5 +29,5 @@ contract C {
// ----
// t() -> 9
// gas irOptimized: 99186
// gas legacy: 159083
// gas legacy: 158955
// gas legacyOptimized: 108916
@@ -30,7 +30,7 @@ contract C {
// ----
// f() -> 3, 7, 5
// gas irOptimized: 127592
// gas legacy: 151590
// gas legacy: 151334
// gas legacyOptimized: 125422
// x() -> 7
// y() -> 5
@@ -24,7 +24,7 @@ contract D {
// ----
// f() -> 1
// gas irOptimized: 77164
// gas legacy: 115012
// gas legacy: 114884
// g() -> 5
// gas irOptimized: 77231
// gas legacy: 115558
// gas legacy: 115430
@@ -26,4 +26,4 @@ contract B {
// ----
// g() -> 42
// gas irOptimized: 80945
// gas legacy: 125609
// gas legacy: 125481
@@ -26,5 +26,5 @@ contract B {
// ----
// g() -> 42
// gas irOptimized: 111913
// gas legacy: 185181
// gas legacy: 185053
// gas legacyOptimized: 114726
@@ -22,6 +22,6 @@ contract A {
// compileViaYul: also
// ----
// g(int256): -1 -> -1
// gas legacy: 103622
// gas legacy: 103494
// g(int256): 10 -> 10
// gas legacy: 103250
// gas legacy: 103122
@@ -40,7 +40,7 @@ contract C {
// gas irOptimized: 85640
// convertSubA() -> 1, 2
// gas irOptimized: 86395
// gas legacy: 99303
// gas legacy: 99047
// convertSubB() -> 1, 3
// gas irOptimized: 86338
// gas legacy: 99237
// gas legacy: 98981
@@ -23,5 +23,5 @@ contract A {
// ----
// f(), 10 ether -> 3007, 3008, 3009
// gas irOptimized: 273275
// gas legacy: 422885
// gas legacy: 422501
// gas legacyOptimized: 287856
@@ -27,5 +27,5 @@ contract D {
// stateDecimal() -> right(42)
// stateBytes() -> left(0x4200ef)
// internalStateDecimal() -> 0x20
// gas legacy: 101807
// gas legacy: 101679
// update(bool,uint256,bytes32): false, -23, left(0x2300ef) -> false, -23, left(0x2300ef)
@@ -42,4 +42,4 @@ contract C {
// testRuntime() -> true
// gas legacy: 101579
// testCreation() -> true
// gas legacy: 102137
// gas legacy: 102009
@@ -26,4 +26,4 @@ contract C {
// compileViaYul: also
// ----
// test() -> 7
// gas legacy: 102392
// gas legacy: 102264
@@ -27,5 +27,5 @@ contract C {
// compileViaYul: also
// ----
// test() -> 9, 7
// gas legacy: 130016
// gas legacy: 129760
// t2() -> 9
@@ -23,5 +23,5 @@ contract C {
// ----
// g() -> 2, 6
// gas irOptimized: 178953
// gas legacy: 180890
// gas legacy: 180762
// gas legacyOptimized: 179609
@@ -36,12 +36,12 @@ contract D {
// compileViaYul: also
// ----
// f() -> 0x1 # This should work, next should throw #
// gas legacy: 103844
// gas legacy: 103716
// fview() -> FAILURE
// gas irOptimized: 98438627
// gas legacy: 98438803
// gas legacy: 98438801
// gas legacyOptimized: 98438596
// fpure() -> FAILURE
// gas irOptimized: 98438627
// gas legacy: 98438803
// gas legacy: 98438801
// gas legacyOptimized: 98438597