test: Properly clear storage dirty flag

Clear storage dirty flag between transactions in EVMHost. The EIP-2200
dirty flag should be persisted only in a single transaction.
This commit is contained in:
Paweł Bylica
2022-11-08 18:13:17 +01:00
committed by Paweł Bylica
parent d472c94ff6
commit c4b6f5f00b
26 changed files with 132 additions and 106 deletions
@@ -46,8 +46,8 @@ contract c {
// storageEmpty -> 0
// test_long() -> 67
// gas irOptimized: 89148
// gas legacy: 103039
// gas legacyOptimized: 100493
// gas legacy: 105839
// gas legacyOptimized: 103293
// storageEmpty -> 0
// test_pop() -> 1780731860627700044960722568376592200742329637303199754547598369979433020
// gas legacy: 61930
@@ -40,7 +40,7 @@ contract c {
// gas legacyOptimized: 4548309
// storageEmpty -> 1
// clear() -> 0, 0
// gas irOptimized: 4477223
// gas legacy: 4410748
// gas legacyOptimized: 4382489
// gas irOptimized: 4517023
// gas legacy: 4450548
// gas legacyOptimized: 4422289
// storageEmpty -> 1
@@ -44,6 +44,6 @@ contract Test {
// test1() -> 3
// test2() -> 6
// test3() -> 24
// gas irOptimized: 133260
// gas legacy: 134283
// gas legacyOptimized: 133393
// gas irOptimized: 155660
// gas legacy: 156683
// gas legacyOptimized: 155793
@@ -21,21 +21,21 @@ contract c {
// gas legacy: 124296
// gas legacyOptimized: 119119
// f(uint256): 32 -> 0x20, 0x20, 1780731860627700044960722568376592200742329637303199754547598369979440671
// gas irOptimized: 118565
// gas legacy: 135251
// gas legacyOptimized: 130091
// gas irOptimized: 124165
// gas legacy: 140851
// gas legacyOptimized: 135691
// f(uint256): 33 -> 0x20, 33, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x2000000000000000000000000000000000000000000000000000000000000000
// gas irOptimized: 125184
// gas legacy: 142835
// gas legacyOptimized: 137008
// gas irOptimized: 130784
// gas legacy: 148435
// gas legacyOptimized: 142608
// f(uint256): 63 -> 0x20, 0x3f, 1780731860627700044960722568376592200742329637303199754547598369979440671, 14532552714582660066924456880521368950258152170031413196862950297402215316992
// gas irOptimized: 128584
// gas legacy: 160875
// gas legacyOptimized: 150938
// gas irOptimized: 139784
// gas legacy: 172075
// gas legacyOptimized: 162138
// f(uint256): 12 -> 0x20, 0x0c, 0x0102030405060708090a0b0000000000000000000000000000000000000000
// gas legacy: 59345
// gas legacyOptimized: 57279
// f(uint256): 129 -> 0x20, 0x81, 1780731860627700044960722568376592200742329637303199754547598369979440671, 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f, 29063324697304692433803953038474361308315562010425523193971352996434451193439, 0x606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f, -57896044618658097711785492504343953926634992332820282019728792003956564819968
// gas irOptimized: 357699
// gas legacy: 421674
// gas legacyOptimized: 402977
// gas irOptimized: 442899
// gas legacy: 506874
// gas legacyOptimized: 488177
@@ -39,8 +39,8 @@ contract C {
// gas legacy: 181047
// gas legacyOptimized: 180029
// g() -> 0x40, 0xc0, 0x49, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738393031323334353637383930313233343536373839303120, 0x3132333435363738390000000000000000000000000000000000000000000000, 0x11, 0x3132333435363738393233343536373839000000000000000000000000000000
// gas irOptimized: 107097
// gas legacy: 110201
// gas legacyOptimized: 107353
// gas irOptimized: 121097
// gas legacy: 124201
// gas legacyOptimized: 121353
// h() -> 0x40, 0x60, 0x00, 0x00
// storageEmpty -> 1
@@ -51,6 +51,6 @@ contract C {
// gas legacyOptimized: 117021
// test2() -> 0x20, 0x14, "[b called][a called]"
// test3() -> 0x20, 0x14, "[b called][a called]"
// gas irOptimized: 103256
// gas legacy: 102814
// gas legacyOptimized: 101706
// gas irOptimized: 106056
// gas legacy: 105614
// gas legacyOptimized: 104506
@@ -19,6 +19,9 @@ contract c {
// gas legacyOptimized: 517027
// storageEmpty -> 0
// halfClear() ->
// gas irOptimized: 113961
// gas legacy: 113257
// gas legacyOptimized: 113120
// storageEmpty -> 0
// fullClear() ->
// storageEmpty -> 1
@@ -17,4 +17,7 @@ contract c {
// gas legacyOptimized: 467500
// storageEmpty -> 0
// clear() ->
// gas irOptimized: 122148
// gas legacy: 122440
// gas legacyOptimized: 122259
// storageEmpty -> 1
@@ -40,6 +40,9 @@ contract C {
// copyFromStorageShort()
// x() -> 0x20, 3, 0x6162630000000000000000000000000000000000000000000000000000000000
// copyFromStorageLong()
// gas irOptimized: 121130
// gas legacy: 121930
// gas legacyOptimized: 121408
// x() -> 0x20, 0x25, 0x3132333435363738393031323334353637383930313233343536373839303132, 0x3334353637000000000000000000000000000000000000000000000000000000
// copyToStorage()
// x() -> 0x20, 0x25, 0x3132333435363738393031323334353637383930313233343536373839303132, 0x3334353637000000000000000000000000000000000000000000000000000000
@@ -23,7 +23,7 @@ contract c {
}
// ----
// test() -> 1, 2, 3
// gas irOptimized: 2280147
// gas legacy: 2273434
// gas legacyOptimized: 2261844
// gas irOptimized: 2285747
// gas legacy: 2279034
// gas legacyOptimized: 2267444
// storageEmpty -> 1
@@ -34,8 +34,8 @@ contract C {
// ll(uint256): 0 -> 43
// a(uint256,uint256): 0, 42 -> 64
// f(uint256,uint256): 84, 128 ->
// gas irOptimized: 116264
// gas legacy: 107525
// gas irOptimized: 119064
// gas legacy: 110325
// gas legacyOptimized: 96331
// l() -> 2
// ll(uint256): 1 -> 85