Skip to content

Commit 4186f49

Browse files
committed
Revert "simplify-locals-nostructure -> simplify-locals-notee-nostructure"
This reverts commit 0be3cf6.
1 parent 0be3cf6 commit 4186f49

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+4493
-4546
lines changed

src/module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1549,7 +1549,7 @@ export class Module {
15491549
if (optimizeLevel >= 3 && shrinkLevel <= 1) {
15501550
passes.push("licm");
15511551
}
1552-
passes.push("simplify-locals-notee-nostructure");
1552+
passes.push("simplify-locals-nostructure");
15531553
passes.push("vacuum");
15541554

15551555
passes.push("reorder-locals");

tests/compiler/binary.optimized.wat

Lines changed: 49 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@
132132
br $while-continue|0
133133
end
134134
end
135-
local.get $4
136135
local.get $1
137136
i32.const 8388608
138137
i32.ge_u
@@ -151,27 +150,31 @@
151150
i32.const 8
152151
i32.shl
153152
i32.clz
154-
local.tee $1
155-
i32.shl
156153
local.tee $3
157-
i32.const 8388608
158-
i32.sub
159-
local.get $2
160-
local.get $1
161-
i32.sub
162-
local.tee $1
163-
i32.const 23
164154
i32.shl
165-
i32.or
155+
local.set $1
156+
local.get $2
166157
local.get $3
167-
i32.const 1
168-
local.get $1
169158
i32.sub
170-
i32.shr_u
171-
local.get $1
159+
local.tee $2
172160
i32.const 0
173161
i32.gt_s
174-
select
162+
if (result i32)
163+
local.get $1
164+
i32.const 8388608
165+
i32.sub
166+
local.get $2
167+
i32.const 23
168+
i32.shl
169+
i32.or
170+
else
171+
local.get $1
172+
i32.const 1
173+
local.get $2
174+
i32.sub
175+
i32.shr_u
176+
end
177+
local.get $4
175178
i32.or
176179
f32.reinterpret_i32
177180
return
@@ -192,12 +195,7 @@
192195
i64.shr_u
193196
i64.const 2047
194197
i64.and
195-
local.set $2
196-
local.get $1
197-
i64.const 63
198-
i64.shr_u
199-
local.set $3
200-
local.get $2
198+
local.tee $2
201199
i64.const 2047
202200
i64.eq
203201
if
@@ -206,15 +204,19 @@
206204
f64.div
207205
return
208206
end
207+
local.get $1
208+
i64.const 63
209+
i64.shr_u
210+
local.set $4
209211
block $folding-inner0
210212
local.get $1
211213
i64.const 1
212214
i64.shl
213-
local.tee $4
215+
local.tee $3
214216
i64.const 9214364837600034816
215217
i64.le_u
216218
if
217-
local.get $4
219+
local.get $3
218220
i64.const 9214364837600034816
219221
i64.eq
220222
br_if $folding-inner0
@@ -274,9 +276,6 @@
274276
br $while-continue|0
275277
end
276278
end
277-
local.get $3
278-
i64.const 63
279-
i64.shl
280279
local.get $1
281280
i64.const 4503599627370496
282281
i64.ge_u
@@ -295,29 +294,35 @@
295294
i64.const 11
296295
i64.shl
297296
i64.clz
298-
local.tee $1
299-
i64.shl
300297
local.tee $3
301-
i64.const 4503599627370496
302-
i64.sub
303-
local.get $2
304-
local.get $1
305-
i64.sub
306-
local.tee $1
307-
i64.const 52
308298
i64.shl
309-
i64.or
299+
local.set $1
300+
local.get $2
310301
local.get $3
311-
i64.const 0
312-
local.get $1
313302
i64.sub
314-
i64.const 1
315-
i64.add
316-
i64.shr_u
317-
local.get $1
303+
local.tee $2
318304
i64.const 0
319305
i64.gt_s
320-
select
306+
if (result i64)
307+
local.get $1
308+
i64.const 4503599627370496
309+
i64.sub
310+
local.get $2
311+
i64.const 52
312+
i64.shl
313+
i64.or
314+
else
315+
local.get $1
316+
i64.const 0
317+
local.get $2
318+
i64.sub
319+
i64.const 1
320+
i64.add
321+
i64.shr_u
322+
end
323+
local.get $4
324+
i64.const 63
325+
i64.shl
321326
i64.or
322327
f64.reinterpret_i64
323328
return

tests/compiler/do.optimized.wat

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,19 +238,19 @@
238238
i32.const 2
239239
i32.shl
240240
i32.add
241-
local.tee $1
241+
local.tee $4
242242
i32.load offset=4
243243
i32.const 1
244244
local.get $2
245245
i32.shl
246246
i32.const -1
247247
i32.xor
248248
i32.and
249-
local.set $2
249+
local.set $1
250+
local.get $4
250251
local.get $1
251-
local.get $2
252252
i32.store offset=4
253-
local.get $2
253+
local.get $1
254254
i32.eqz
255255
if
256256
local.get $0

tests/compiler/extends-baseaggregate.optimized.wat

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -163,19 +163,19 @@
163163
i32.const 2
164164
i32.shl
165165
i32.add
166-
local.tee $1
166+
local.tee $4
167167
i32.load offset=4
168168
i32.const 1
169169
local.get $2
170170
i32.shl
171171
i32.const -1
172172
i32.xor
173173
i32.and
174-
local.set $2
174+
local.set $1
175+
local.get $4
175176
local.get $1
176-
local.get $2
177177
i32.store offset=4
178-
local.get $2
178+
local.get $1
179179
i32.eqz
180180
if
181181
local.get $0
@@ -1820,26 +1820,26 @@
18201820
(local $5 i32)
18211821
global.get $~lib/rt/pure/ROOTS
18221822
local.tee $1
1823-
local.tee $2
1824-
local.set $0
1823+
local.tee $3
1824+
local.set $4
18251825
global.get $~lib/rt/pure/CUR
1826-
local.set $3
1826+
local.set $0
18271827
loop $for-loop|0
1828+
local.get $4
18281829
local.get $0
1829-
local.get $3
18301830
i32.lt_u
18311831
if
1832-
local.get $0
1832+
local.get $4
18331833
i32.load
1834-
local.tee $4
1835-
i32.load offset=4
18361834
local.tee $5
1835+
i32.load offset=4
1836+
local.tee $2
18371837
i32.const 1879048192
18381838
i32.and
18391839
i32.const 805306368
18401840
i32.eq
18411841
if (result i32)
1842-
local.get $5
1842+
local.get $2
18431843
i32.const 268435455
18441844
i32.and
18451845
i32.const 0
@@ -1848,51 +1848,51 @@
18481848
i32.const 0
18491849
end
18501850
if
1851-
local.get $4
1851+
local.get $5
18521852
call $~lib/rt/pure/markGray
1853-
local.get $2
1854-
local.get $4
1853+
local.get $3
1854+
local.get $5
18551855
i32.store
1856-
local.get $2
1856+
local.get $3
18571857
i32.const 4
18581858
i32.add
1859-
local.set $2
1859+
local.set $3
18601860
else
18611861
i32.const 0
1862-
local.get $5
1862+
local.get $2
18631863
i32.const 268435455
18641864
i32.and
18651865
i32.eqz
1866-
local.get $5
1866+
local.get $2
18671867
i32.const 1879048192
18681868
i32.and
18691869
select
18701870
if
18711871
global.get $~lib/rt/tlsf/ROOT
1872-
local.get $4
1872+
local.get $5
18731873
call $~lib/rt/tlsf/freeBlock
18741874
else
1875-
local.get $4
18761875
local.get $5
1876+
local.get $2
18771877
i32.const 2147483647
18781878
i32.and
18791879
i32.store offset=4
18801880
end
18811881
end
1882-
local.get $0
1882+
local.get $4
18831883
i32.const 4
18841884
i32.add
1885-
local.set $0
1885+
local.set $4
18861886
br $for-loop|0
18871887
end
18881888
end
1889-
local.get $2
1889+
local.get $3
18901890
global.set $~lib/rt/pure/CUR
18911891
local.get $1
18921892
local.set $0
18931893
loop $for-loop|1
18941894
local.get $0
1895-
local.get $2
1895+
local.get $3
18961896
i32.lt_u
18971897
if
18981898
local.get $0
@@ -1909,18 +1909,18 @@
19091909
local.set $0
19101910
loop $for-loop|2
19111911
local.get $0
1912-
local.get $2
1912+
local.get $3
19131913
i32.lt_u
19141914
if
19151915
local.get $0
19161916
i32.load
1917-
local.tee $3
1918-
local.get $3
1917+
local.tee $2
1918+
local.get $2
19191919
i32.load offset=4
19201920
i32.const 2147483647
19211921
i32.and
19221922
i32.store offset=4
1923-
local.get $3
1923+
local.get $2
19241924
call $~lib/rt/pure/collectWhite
19251925
local.get $0
19261926
i32.const 4

tests/compiler/for.optimized.wat

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,19 +235,19 @@
235235
i32.const 2
236236
i32.shl
237237
i32.add
238-
local.tee $1
238+
local.tee $4
239239
i32.load offset=4
240240
i32.const 1
241241
local.get $2
242242
i32.shl
243243
i32.const -1
244244
i32.xor
245245
i32.and
246-
local.set $2
246+
local.set $1
247+
local.get $4
247248
local.get $1
248-
local.get $2
249249
i32.store offset=4
250-
local.get $2
250+
local.get $1
251251
i32.eqz
252252
if
253253
local.get $0

tests/compiler/implicit-getter-setter.optimized.wat

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,19 +170,19 @@
170170
i32.const 2
171171
i32.shl
172172
i32.add
173-
local.tee $1
173+
local.tee $4
174174
i32.load offset=4
175175
i32.const 1
176176
local.get $2
177177
i32.shl
178178
i32.const -1
179179
i32.xor
180180
i32.and
181-
local.set $2
181+
local.set $1
182+
local.get $4
182183
local.get $1
183-
local.get $2
184184
i32.store offset=4
185-
local.get $2
185+
local.get $1
186186
i32.eqz
187187
if
188188
local.get $0

0 commit comments

Comments
 (0)