test stage

This commit is contained in:
hrkrshnn 2022-01-12 21:34:07 +05:30 committed by Kamil Śliwak
parent 1bc1f8bdbb
commit 95d52a2b7b
23 changed files with 102 additions and 111 deletions

View File

@ -100,16 +100,7 @@ string YulUtilFunctions::copyToMemoryFunction(bool _fromCalldata)
{
return Whiskers(R"(
function <functionName>(src, dst, length) {
let i := 0
for { } lt(i, length) { i := add(i, 32) }
{
mstore(add(dst, i), mload(add(src, i)))
}
if gt(i, length)
{
// clear end
mstore(add(dst, length), 0)
}
pop(staticcall(gas(), 4, src, length, dst, length))
}
)")
("functionName", functionName)

View File

@ -60,10 +60,10 @@ contract C {
// compileViaYul: also
// ----
// test_bytes() ->
// gas irOptimized: 371912
// gas legacy: 416585
// gas legacyOptimized: 322043
// gas irOptimized: 361280
// gas legacy: 410573
// gas legacyOptimized: 313067
// test_uint256() ->
// gas irOptimized: 523016
// gas legacy: 583100
// gas legacyOptimized: 444161
// gas irOptimized: 512448
// gas legacy: 576092
// gas legacyOptimized: 435561

View File

@ -61,10 +61,10 @@ contract C {
// compileViaYul: also
// ----
// test_bytes() ->
// gas irOptimized: 371912
// gas legacy: 416585
// gas legacyOptimized: 322043
// gas irOptimized: 361280
// gas legacy: 410573
// gas legacyOptimized: 313067
// test_uint256() ->
// gas irOptimized: 523016
// gas legacy: 583100
// gas legacyOptimized: 444161
// gas irOptimized: 512448
// gas legacy: 576092
// gas legacyOptimized: 435561

View File

@ -53,6 +53,6 @@ contract C {
// f2() -> 0x20, 0xa0, 0x1, 0x60, 0x2, 0x3, "abc"
// f3() -> 0x20, 0xa0, 0x1, 0x60, 0x2, 0x3, "abc"
// f4() -> 0x20, 0x160, 0x1, 0x80, 0xc0, 0x2, 0x3, "abc", 0x7, 0x40, 0x2, 0x2, 0x3
// gas irOptimized: 113277
// gas legacy: 114900
// gas legacyOptimized: 112606
// gas irOptimized: 112318
// gas legacy: 114107
// gas legacyOptimized: 111783

View File

@ -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: 171829
// gas legacy: 140672
// gas legacyOptimized: 119588
// gas irOptimized: 168403
// gas legacy: 137550
// gas legacyOptimized: 116662

View File

@ -19,10 +19,10 @@ contract C {
// compileViaYul: also
// ----
// h(uint256[2][]): 0x20, 3, 123, 124, 223, 224, 323, 324 -> 32, 256, 0x20, 3, 123, 124, 223, 224, 323, 324
// gas irOptimized: 180924
// gas legacy: 184929
// gas legacyOptimized: 181504
// gas irOptimized: 180323
// gas legacy: 184390
// gas legacyOptimized: 180940
// i(uint256[2][2]): 123, 124, 223, 224 -> 32, 128, 123, 124, 223, 224
// gas irOptimized: 112520
// gas legacy: 115468
// gas legacyOptimized: 112988
// gas irOptimized: 112251
// gas legacy: 115229
// gas legacyOptimized: 112740

View File

@ -11,6 +11,6 @@ contract C {
// compileViaYul: also
// ----
// f(bytes): 0x20, 0x80, 0x21, 0x40, 0x7, "abcdefg" -> 0x21, 0x40, 0x7, "abcdefg"
// gas irOptimized: 135918
// gas legacy: 137181
// gas legacyOptimized: 136073
// gas irOptimized: 135785
// gas legacy: 137120
// gas legacyOptimized: 135950

View File

@ -19,25 +19,25 @@ contract c {
// ----
// f(uint256): 0 -> 0x20, 0x00
// f(uint256): 31 -> 0x20, 0x1f, 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e00
// gas irOptimized: 121735
// gas legacy: 123884
// gas legacyOptimized: 119139
// gas irOptimized: 121679
// gas legacy: 123852
// gas legacyOptimized: 119104
// f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671
// gas irOptimized: 130727
// gas legacy: 134936
// gas legacyOptimized: 130046
// gas irOptimized: 130707
// gas legacy: 134922
// gas legacyOptimized: 130035
// f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 137726
// gas legacy: 141728
// gas legacyOptimized: 136711
// gas irOptimized: 137587
// gas legacy: 141621
// gas legacyOptimized: 136597
// f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992
// gas irOptimized: 152346
// gas legacy: 159768
// gas legacyOptimized: 150641
// gas irOptimized: 152207
// gas legacy: 159661
// gas legacyOptimized: 150527
// f(uint256): 12 -> 0x20, 0x0c, 0x0102030405060708090a0b0000000000000000000000000000000000000000
// gas legacy: 59345
// gas legacyOptimized: 57279
// f(uint256): 129 -> 0x20, 0x81, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f, 29063324697304692433803953038474361308315562010425523193971352996434451193439, 0x606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f, -57896044618658097711785492504343953926634992332820282019728792003956564819968
// gas irOptimized: 406083
// gas legacy: 421067
// gas legacyOptimized: 402910
// gas irOptimized: 405695
// gas legacy: 420735
// gas legacyOptimized: 402559

View File

@ -37,12 +37,12 @@ contract C {
// compileViaYul: also
// ----
// f() -> 0x40, 0x80, 6, 0x6162636465660000000000000000000000000000000000000000000000000000, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000
// gas irOptimized: 179895
// gas legacy: 180676
// gas legacyOptimized: 180070
// gas irOptimized: 179612
// gas legacy: 180465
// gas legacyOptimized: 179855
// g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000
// gas irOptimized: 107274
// gas legacy: 107877
// gas legacyOptimized: 107236
// gas irOptimized: 106991
// gas legacy: 107666
// gas legacyOptimized: 107021
// h() -> 0x40, 0x60, 0x00, 0x00
// storageEmpty -> 1

View File

@ -13,6 +13,6 @@ contract C {
// compileViaYul: also
// ----
// f() -> 0x20, 0x02, 0x40, 0x80, 3, 0x6162630000000000000000000000000000000000000000000000000000000000, 0x99, 44048183304486788312148433451363384677562265908331949128489393215789685032262, 32241931068525137014058842823026578386641954854143559838526554899205067598957, 49951309422467613961193228765530489307475214998374779756599339590522149884499, 0x54555658595a6162636465666768696a6b6c6d6e6f707172737475767778797a, 0x4142434445464748494a4b4c4d4e4f5051525354555658595a00000000000000
// gas irOptimized: 202840
// gas legacy: 204441
// gas legacyOptimized: 203419
// gas irOptimized: 202350
// gas legacy: 204080
// gas legacyOptimized: 203041

View File

@ -12,6 +12,6 @@ contract c {
// compileViaYul: also
// ----
// test() -> 0x20, 29, 0x0303030303030303030303030303030303030303030303030303030303000000
// gas irOptimized: 109499
// gas legacy: 126728
// gas legacyOptimized: 123444
// gas irOptimized: 109443
// gas legacy: 126696
// gas legacyOptimized: 123409

View File

@ -12,6 +12,6 @@ contract c {
// compileViaYul: also
// ----
// test() -> 0x20, 33, 0x303030303030303030303030303030303030303030303030303030303030303, 0x0300000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 108487
// gas legacy: 125610
// gas legacyOptimized: 122582
// gas irOptimized: 108348
// gas legacy: 125503
// gas legacyOptimized: 122468

View File

@ -26,6 +26,6 @@ contract Creator {
// compileViaYul: also
// ----
// f(uint256,bytes): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" -> 7, "h"
// gas irOptimized: 293203
// gas legacy: 428711
// gas legacyOptimized: 297922
// gas irOptimized: 283738
// gas legacy: 420930
// gas legacyOptimized: 290303

View File

@ -10,8 +10,8 @@ contract Test {
// compileViaYul: also
// ----
// constructor(): 7, 0x40, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz" ->
// gas irOptimized: 283829
// gas legacy: 309607
// gas legacyOptimized: 260566
// gas irOptimized: 273220
// gas legacy: 300898
// gas legacyOptimized: 252010
// m_x() -> 7
// m_s() -> 0x20, 78, "abcdefghijklmnopqrstuvwxyzabcdef", "ghijklmnopqrstuvwxyzabcdefghijkl", "mnopqrstuvwxyz"

View File

@ -76,9 +76,9 @@ contract FixedFeeRegistrar is Registrar {
// compileViaYul: also
// ----
// constructor()
// gas irOptimized: 402812
// gas legacy: 935817
// gas legacyOptimized: 489951
// gas irOptimized: 394622
// gas legacy: 927836
// gas legacyOptimized: 482840
// reserve(string), 69 ether: 0x20, 3, "abc" ->
// ~ emit Changed(string): #0x4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45
// gas irOptimized: 45967

View File

@ -34,9 +34,9 @@ contract test {
// compileViaYul: also
// ----
// constructor()
// gas irOptimized: 443542
// gas legacy: 765640
// gas legacyOptimized: 541810
// gas irOptimized: 433840
// gas legacy: 757665
// gas legacyOptimized: 534052
// encode_inline_asm(bytes): 0x20, 0 -> 0x20, 0
// encode_inline_asm(bytes): 0x20, 1, "f" -> 0x20, 4, "Zg=="
// encode_inline_asm(bytes): 0x20, 2, "fo" -> 0x20, 4, "Zm8="

View File

@ -178,35 +178,35 @@ contract DepositContract is IDepositContract, ERC165 {
// compileViaYul: also
// ----
// constructor()
// gas irOptimized: 1529797
// gas legacy: 2435803
// gas legacyOptimized: 1775425
// gas irOptimized: 1510591
// gas legacy: 2424501
// gas legacyOptimized: 1757759
// supportsInterface(bytes4): 0x0 -> 0
// supportsInterface(bytes4): 0xffffffff00000000000000000000000000000000000000000000000000000000 -> false # defined to be false by ERC-165 #
// supportsInterface(bytes4): 0x01ffc9a700000000000000000000000000000000000000000000000000000000 -> true # ERC-165 id #
// supportsInterface(bytes4): 0x8564090700000000000000000000000000000000000000000000000000000000 -> true # the deposit interface id #
// get_deposit_root() -> 0xd70a234731285c6804c2a4f56711ddb8c82c99740f207854891028af34e27e5e
// gas irOptimized: 122134
// gas legacy: 150273
// gas legacyOptimized: 122510
// gas irOptimized: 117647
// gas legacy: 147307
// gas legacyOptimized: 120269
// get_deposit_count() -> 0x20, 8, 0 # TODO: check balance and logs after each deposit #
// deposit(bytes,bytes,bytes,bytes32), 32 ether: 0 -> FAILURE # Empty input #
// get_deposit_root() -> 0xd70a234731285c6804c2a4f56711ddb8c82c99740f207854891028af34e27e5e
// gas irOptimized: 122134
// gas legacy: 150273
// gas legacyOptimized: 122510
// gas irOptimized: 117647
// gas legacy: 147307
// gas legacyOptimized: 120269
// get_deposit_count() -> 0x20, 8, 0
// deposit(bytes,bytes,bytes,bytes32), 1 ether: 0x80, 0xe0, 0x120, 0xaa4a8d0b7d9077248630f1a4701ae9764e42271d7f22b7838778411857fd349e, 0x30, 0x933ad9491b62059dd065b560d256d8957a8c402cc6e8d8ee7290ae11e8f73292, 0x67a8811c397529dac52ae1342ba58c9500000000000000000000000000000000, 0x20, 0x00f50428677c60f997aadeab24aabf7fceaef491c96a52b463ae91f95611cf71, 0x60, 0xa29d01cc8c6296a8150e515b5995390ef841dc18948aa3e79be6d7c1851b4cbb, 0x5d6ff49fa70b9c782399506a22a85193151b9b691245cebafd2063012443c132, 0x4b6c36debaedefb7b2d71b0503ffdc00150aaffd42e63358238ec888901738b8 -> # txhash: 0x7085c586686d666e8bb6e9477a0f0b09565b2060a11f1c4209d3a52295033832 #
// ~ emit DepositEvent(bytes,bytes,bytes,bytes,bytes): 0xa0, 0x0100, 0x0140, 0x0180, 0x0200, 0x30, 0x933ad9491b62059dd065b560d256d8957a8c402cc6e8d8ee7290ae11e8f73292, 0x67a8811c397529dac52ae1342ba58c9500000000000000000000000000000000, 0x20, 0xf50428677c60f997aadeab24aabf7fceaef491c96a52b463ae91f95611cf71, 0x08, 0xca9a3b00000000000000000000000000000000000000000000000000000000, 0x60, 0xa29d01cc8c6296a8150e515b5995390ef841dc18948aa3e79be6d7c1851b4cbb, 0x5d6ff49fa70b9c782399506a22a85193151b9b691245cebafd2063012443c132, 0x4b6c36debaedefb7b2d71b0503ffdc00150aaffd42e63358238ec888901738b8, 0x08, 0x00
// get_deposit_root() -> 0x2089653123d9c721215120b6db6738ba273bbc5228ac093b1f983badcdc8a438
// gas irOptimized: 122113
// gas legacy: 150283
// gas legacyOptimized: 122523
// gas irOptimized: 117626
// gas legacy: 147317
// gas legacyOptimized: 120282
// get_deposit_count() -> 0x20, 8, 0x0100000000000000000000000000000000000000000000000000000000000000
// deposit(bytes,bytes,bytes,bytes32), 32 ether: 0x80, 0xe0, 0x120, 0xdbd986dc85ceb382708cf90a3500f500f0a393c5ece76963ac3ed72eccd2c301, 0x30, 0xb2ce0f79f90e7b3a113ca5783c65756f96c4b4673c2b5c1eb4efc22280259441, 0x06d601211e8866dc5b50dc48a244dd7c00000000000000000000000000000000, 0x20, 0x00344b6c73f71b11c56aba0d01b7d8ad83559f209d0a4101a515f6ad54c89771, 0x60, 0x945caaf82d18e78c033927d51f452ebcd76524497b91d7a11219cb3db6a1d369, 0x7595fc095ce489e46b2ef129591f2f6d079be4faaf345a02c5eb133c072e7c56, 0x0c6c3617eee66b4b878165c502357d49485326bc6b31bc96873f308c8f19c09d -> # txhash: 0x404d8e109822ce448e68f45216c12cb051b784d068fbe98317ab8e50c58304ac #
// ~ emit DepositEvent(bytes,bytes,bytes,bytes,bytes): 0xa0, 0x0100, 0x0140, 0x0180, 0x0200, 0x30, 0xb2ce0f79f90e7b3a113ca5783c65756f96c4b4673c2b5c1eb4efc22280259441, 0x06d601211e8866dc5b50dc48a244dd7c00000000000000000000000000000000, 0x20, 0x344b6c73f71b11c56aba0d01b7d8ad83559f209d0a4101a515f6ad54c89771, 0x08, 0x40597307000000000000000000000000000000000000000000000000000000, 0x60, 0x945caaf82d18e78c033927d51f452ebcd76524497b91d7a11219cb3db6a1d369, 0x7595fc095ce489e46b2ef129591f2f6d079be4faaf345a02c5eb133c072e7c56, 0x0c6c3617eee66b4b878165c502357d49485326bc6b31bc96873f308c8f19c09d, 0x08, 0x0100000000000000000000000000000000000000000000000000000000000000
// get_deposit_root() -> 0x40255975859377d912c53aa853245ebd939bdd2b33a28e084babdcc1ed8238ee
// gas irOptimized: 122113
// gas legacy: 150283
// gas legacyOptimized: 122523
// gas irOptimized: 117626
// gas legacy: 147317
// gas legacyOptimized: 120282
// get_deposit_count() -> 0x20, 8, 0x0200000000000000000000000000000000000000000000000000000000000000

View File

@ -51,9 +51,9 @@ contract test {
// compileViaYul: also
// ----
// constructor()
// gas irOptimized: 691317
// gas legacy: 1127730
// gas legacyOptimized: 753807
// gas irOptimized: 681608
// gas legacy: 1119755
// gas legacyOptimized: 746048
// toSlice(string): 0x20, 11, "hello world" -> 11, 0xa0
// gas irOptimized: 22660
// gas legacy: 23190

View File

@ -25,9 +25,9 @@ contract C {
// compileViaYul: also
// ----
// constructor(), 1 ether ->
// gas irOptimized: 303935
// gas legacy: 464030
// gas legacyOptimized: 304049
// gas irOptimized: 294659
// gas legacy: 456056
// gas legacyOptimized: 296069
// f(uint256): 0 -> FAILURE
// f(uint256): 1 -> FAILURE
// f(uint256): 2 -> FAILURE

View File

@ -27,9 +27,9 @@ contract C {
// revertStrings: debug
// ----
// constructor(), 1 ether ->
// gas irOptimized: 446871
// gas legacy: 832976
// gas legacyOptimized: 509560
// gas irOptimized: 437385
// gas legacy: 825001
// gas legacyOptimized: 502234
// f(uint256): 0 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code"
// f(uint256): 1 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code"
// f(uint256): 2 -> FAILURE, hex"08c379a0", 0x20, 37, "Target contract does not contain", " code"

View File

@ -29,5 +29,5 @@ contract C {
// EVMVersion: >=byzantium
// compileViaYul: also
// ----
// f() -> 0, 0, 96, 13, "test message."
// g() -> 0xf01f7809444bd9a93a854361c6fae3f23d9e23db, 0, 96, 7, "success"
// f() -> 0, 0, 0x60, 13, 52647538820800208530922410608562059381415374016670515336697209233794224095232
// g() -> 1370859564726510389319704988634906228201275401179, 0, 0x60, 7, 0x7375636365737300000000000000000000000000000000000000000000000000

View File

@ -17,9 +17,9 @@ contract C {
// compileViaYul: also
// ----
// constructor() ->
// gas irOptimized: 192317
// gas legacy: 240889
// gas legacyOptimized: 155314
// gas irOptimized: 182615
// gas legacy: 232903
// gas legacyOptimized: 147556
// initCode() -> 0x20, 0
// f() -> true
// g() -> 0

View File

@ -22,6 +22,6 @@ contract C {
// compileViaYul: also
// ----
// g() -> 2, 6
// gas irOptimized: 178805
// gas legacy: 180753
// gas legacyOptimized: 179472
// gas irOptimized: 178672
// gas legacy: 180692
// gas legacyOptimized: 179349