Skip to content

Commit e071f74

Browse files
committed
Bump even further.
1 parent cb658ac commit e071f74

File tree

5 files changed

+183
-7
lines changed

5 files changed

+183
-7
lines changed

Diff for: libyul/backends/evm/StackLayoutGenerator.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ Stack StackLayoutGenerator::propagateStackThroughOperation(Stack _exitStack, CFG
306306
{
307307
// *offset == n requires, after popping the topmost slot, a DUP<n+1> to recover it.
308308
// So if *offset + 1 is within stack reach, we can pop.
309-
if (*offset + 1 < 16)
309+
if (*offset + 1 <= 16)
310310
stack.pop_back();
311311
else
312312
break;

Diff for: test/libsolidity/semanticTests/externalContracts/base64.sol

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ contract test {
3333
// EVMVersion: >=constantinople
3434
// ----
3535
// constructor()
36-
// gas irOptimized: 79060
37-
// gas irOptimized code: 321800
36+
// gas irOptimized: 78830
37+
// gas irOptimized code: 319000
3838
// gas legacy: 102214
3939
// gas legacy code: 629800
4040
// gas legacyOptimized: 87926
@@ -58,6 +58,6 @@ contract test {
5858
// gas legacy: 1554038
5959
// gas legacyOptimized: 1132031
6060
// encode_no_asm_large()
61-
// gas irOptimized: 3509081
61+
// gas irOptimized: 3497081
6262
// gas legacy: 4600082
6363
// gas legacyOptimized: 2813075

Diff for: test/libsolidity/semanticTests/externalContracts/deposit_contract.sol

+2-2
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@ contract DepositContract is IDepositContract, ERC165 {
176176
}
177177
// ----
178178
// constructor()
179-
// gas irOptimized: 809324
180-
// gas irOptimized code: 555000
179+
// gas irOptimized: 809356
180+
// gas irOptimized code: 555400
181181
// gas legacy: 920228
182182
// gas legacy code: 1438800
183183
// gas legacyOptimized: 848699

Diff for: test/libsolidity/semanticTests/types/mapping/copy_from_mapping_to_mapping.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ contract C {
2929
}
3030
// ----
3131
// f() -> 0x20, 7, 8, 9, 0xa0, 13, 2, 0x40, 0xa0, 2, 3, 4, 2, 3, 4
32-
// gas irOptimized: 197102
32+
// gas irOptimized: 197092
3333
// gas legacy: 199887
3434
// gas legacyOptimized: 196845

Diff for: test/libyul/evmCodeTransform/dup16_limit.yul

+176
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
object "main" {
2+
code {
3+
let v0 := calldataload(0)
4+
let v1 := calldataload(1)
5+
let v2 := calldataload(2)
6+
let v3 := calldataload(3)
7+
let v4 := calldataload(4)
8+
let v5 := calldataload(5)
9+
let v6 := calldataload(6)
10+
let v7 := calldataload(7)
11+
let v8 := calldataload(8)
12+
let v9 := calldataload(9)
13+
let v10 := calldataload(10)
14+
let v11 := calldataload(11)
15+
let v12 := calldataload(12)
16+
let v13 := calldataload(13)
17+
let v14 := calldataload(14)
18+
let v15 := calldataload(15)
19+
sstore(16, v0)
20+
sstore(15, v15)
21+
sstore(14, v14)
22+
sstore(13, v13)
23+
sstore(12, v12)
24+
sstore(11, v11)
25+
sstore(10, v10)
26+
sstore(9, v9)
27+
sstore(8, v8)
28+
sstore(7, v7)
29+
sstore(6, v6)
30+
sstore(5, v5)
31+
sstore(4, v4)
32+
sstore(3, v3)
33+
sstore(2, v2)
34+
sstore(1, v1)
35+
sstore(0, v0)
36+
}
37+
}
38+
// ====
39+
// stackOptimization: true
40+
// ----
41+
// /* "":58:59 */
42+
// 0x00
43+
// /* "":45:60 */
44+
// calldataload
45+
// /* "":92:93 */
46+
// 0x01
47+
// /* "":79:94 */
48+
// calldataload
49+
// /* "":126:127 */
50+
// 0x02
51+
// /* "":113:128 */
52+
// calldataload
53+
// /* "":160:161 */
54+
// 0x03
55+
// /* "":147:162 */
56+
// calldataload
57+
// /* "":194:195 */
58+
// 0x04
59+
// /* "":181:196 */
60+
// calldataload
61+
// /* "":228:229 */
62+
// 0x05
63+
// /* "":215:230 */
64+
// calldataload
65+
// /* "":262:263 */
66+
// 0x06
67+
// /* "":249:264 */
68+
// calldataload
69+
// /* "":296:297 */
70+
// 0x07
71+
// /* "":283:298 */
72+
// calldataload
73+
// /* "":330:331 */
74+
// 0x08
75+
// /* "":317:332 */
76+
// calldataload
77+
// /* "":364:365 */
78+
// 0x09
79+
// /* "":351:366 */
80+
// calldataload
81+
// /* "":399:401 */
82+
// 0x0a
83+
// /* "":386:402 */
84+
// calldataload
85+
// /* "":435:437 */
86+
// 0x0b
87+
// /* "":422:438 */
88+
// calldataload
89+
// /* "":471:473 */
90+
// 0x0c
91+
// /* "":458:474 */
92+
// calldataload
93+
// /* "":507:509 */
94+
// 0x0d
95+
// /* "":494:510 */
96+
// calldataload
97+
// /* "":543:545 */
98+
// 0x0e
99+
// /* "":530:546 */
100+
// calldataload
101+
// /* "":579:581 */
102+
// 0x0f
103+
// /* "":566:582 */
104+
// calldataload
105+
// /* "":591:605 */
106+
// dup16
107+
// /* "":598:600 */
108+
// 0x10
109+
// /* "":591:605 */
110+
// sstore
111+
// /* "":621:623 */
112+
// 0x0f
113+
// /* "":614:629 */
114+
// sstore
115+
// /* "":645:647 */
116+
// 0x0e
117+
// /* "":638:653 */
118+
// sstore
119+
// /* "":669:671 */
120+
// 0x0d
121+
// /* "":662:677 */
122+
// sstore
123+
// /* "":693:695 */
124+
// 0x0c
125+
// /* "":686:701 */
126+
// sstore
127+
// /* "":717:719 */
128+
// 0x0b
129+
// /* "":710:725 */
130+
// sstore
131+
// /* "":741:743 */
132+
// 0x0a
133+
// /* "":734:749 */
134+
// sstore
135+
// /* "":765:766 */
136+
// 0x09
137+
// /* "":758:771 */
138+
// sstore
139+
// /* "":787:788 */
140+
// 0x08
141+
// /* "":780:793 */
142+
// sstore
143+
// /* "":809:810 */
144+
// 0x07
145+
// /* "":802:815 */
146+
// sstore
147+
// /* "":831:832 */
148+
// 0x06
149+
// /* "":824:837 */
150+
// sstore
151+
// /* "":853:854 */
152+
// 0x05
153+
// /* "":846:859 */
154+
// sstore
155+
// /* "":875:876 */
156+
// 0x04
157+
// /* "":868:881 */
158+
// sstore
159+
// /* "":897:898 */
160+
// 0x03
161+
// /* "":890:903 */
162+
// sstore
163+
// /* "":919:920 */
164+
// 0x02
165+
// /* "":912:925 */
166+
// sstore
167+
// /* "":941:942 */
168+
// 0x01
169+
// /* "":934:947 */
170+
// sstore
171+
// /* "":963:964 */
172+
// 0x00
173+
// /* "":956:969 */
174+
// sstore
175+
// /* "":25:975 */
176+
// stop

0 commit comments

Comments
 (0)