Skip to content

Commit a67e7cd

Browse files
committed
revert inline position
1 parent 4fdef72 commit a67e7cd

20 files changed

+356
-387
lines changed

src/module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1548,11 +1548,11 @@ export class Module {
15481548
passes.push("optimize-instructions");
15491549
if (optimizeLevel >= 3 || shrinkLevel >= 1) {
15501550
passes.push("dce");
1551-
passes.push("inlining");
15521551
}
15531552
passes.push("remove-unused-brs");
15541553
passes.push("remove-unused-names");
15551554
if (optimizeLevel >= 3 || shrinkLevel >= 2) {
1555+
passes.push("inlining");
15561556
passes.push("precompute-propagate");
15571557
} else {
15581558
passes.push("precompute");

tests/compiler/assert-nonnull.optimized.wat

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,18 @@
136136
local.get $0
137137
)
138138
(func $assert-nonnull/testAll (param $0 i32) (result i32)
139+
(local $1 i32)
139140
block $folding-inner0
140141
local.get $0
142+
local.tee $1
141143
i32.eqz
142144
br_if $folding-inner0
143-
local.get $0
145+
local.get $1
144146
call $~lib/array/Array<assert-nonnull/Foo|null>#__get
145147
local.tee $0
148+
local.get $0
146149
i32.eqz
147150
br_if $folding-inner0
148-
local.get $0
149151
i32.load
150152
local.tee $0
151153
i32.eqz
@@ -161,16 +163,18 @@
161163
unreachable
162164
)
163165
(func $assert-nonnull/testAll2 (param $0 i32) (result i32)
166+
(local $1 i32)
164167
block $folding-inner0
165168
local.get $0
169+
local.tee $1
166170
i32.eqz
167171
br_if $folding-inner0
168-
local.get $0
172+
local.get $1
169173
call $~lib/array/Array<assert-nonnull/Foo|null>#__get
170174
local.tee $0
175+
local.get $0
171176
i32.eqz
172177
br_if $folding-inner0
173-
local.get $0
174178
i32.load
175179
local.tee $0
176180
i32.eqz

tests/compiler/builtins.optimized.wat

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,16 @@
107107
local.set $2
108108
local.get $3
109109
if
110-
local.get $1
110+
local.get $0
111111
i32.load16_u
112112
local.tee $3
113-
local.get $0
113+
local.get $1
114114
i32.load16_u
115115
local.tee $4
116116
i32.ne
117117
if
118-
local.get $4
119118
local.get $3
119+
local.get $4
120120
i32.sub
121121
return
122122
end

tests/compiler/class-overloading.optimized.wat

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,16 +163,16 @@
163163
local.set $2
164164
local.get $3
165165
if
166-
local.get $1
166+
local.get $0
167167
i32.load16_u
168168
local.tee $3
169-
local.get $0
169+
local.get $1
170170
i32.load16_u
171171
local.tee $4
172172
i32.ne
173173
if
174-
local.get $4
175174
local.get $3
175+
local.get $4
176176
i32.sub
177177
return
178178
end

tests/compiler/class.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,9 @@
140140
i32.const 0
141141
i32.const 0
142142
call $~lib/rt/stub/__alloc
143-
local.tee $1
143+
local.set $1
144144
local.get $0
145145
i32.load
146-
i32.ne
147146
drop
148147
local.get $0
149148
local.get $1

tests/compiler/field-initialization.optimized.wat

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,16 +193,16 @@
193193
local.set $2
194194
local.get $3
195195
if
196-
local.get $1
196+
local.get $0
197197
i32.load16_u
198198
local.tee $3
199-
local.get $0
199+
local.get $1
200200
i32.load16_u
201201
local.tee $4
202202
i32.ne
203203
if
204-
local.get $4
205204
local.get $3
205+
local.get $4
206206
i32.sub
207207
return
208208
end

tests/compiler/function-expression.optimized.wat

Lines changed: 66 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
(data (i32.const 1600) "\08\00\00\00\01\00\00\00\07\00\00\00\08\00\00\00\11")
2727
(table $0 18 funcref)
2828
(elem (i32.const 1) $start:function-expression~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~someName $start:function-expression~anonymous|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|2 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testGlobal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testLocal~anonymous|0 $function-expression/testGlobal~anonymous|0~anonymous|0 $function-expression/testField~anonymous|0)
29-
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
3029
(export "memory" (memory $0))
3130
(start $~start)
3231
(func $start:function-expression~anonymous|0 (param $0 i32) (result i32)
@@ -70,92 +69,9 @@
7069
(func $function-expression/testField~anonymous|0 (result i32)
7170
i32.const 1584
7271
)
73-
(func $function-expression/testField
72+
(func $start:function-expression
7473
(local $0 i32)
7574
(local $1 i32)
76-
(local $2 i32)
77-
(local $3 i32)
78-
global.get $~lib/rt/stub/offset
79-
i32.const 16
80-
i32.add
81-
local.tee $2
82-
i32.const 16
83-
i32.add
84-
local.tee $0
85-
memory.size
86-
local.tee $3
87-
i32.const 16
88-
i32.shl
89-
local.tee $1
90-
i32.gt_u
91-
if
92-
local.get $3
93-
local.get $0
94-
local.get $1
95-
i32.sub
96-
i32.const 65535
97-
i32.add
98-
i32.const -65536
99-
i32.and
100-
i32.const 16
101-
i32.shr_u
102-
local.tee $1
103-
local.get $3
104-
local.get $1
105-
i32.gt_s
106-
select
107-
memory.grow
108-
i32.const 0
109-
i32.lt_s
110-
if
111-
local.get $1
112-
memory.grow
113-
i32.const 0
114-
i32.lt_s
115-
if
116-
unreachable
117-
end
118-
end
119-
end
120-
local.get $0
121-
global.set $~lib/rt/stub/offset
122-
local.get $2
123-
i32.const 16
124-
i32.sub
125-
local.tee $0
126-
i32.const 16
127-
i32.store
128-
local.get $0
129-
i32.const 1
130-
i32.store offset=4
131-
local.get $0
132-
i32.const 8
133-
i32.store offset=8
134-
local.get $0
135-
i32.const 4
136-
i32.store offset=12
137-
local.get $2
138-
i32.const 1616
139-
i32.store
140-
i32.const 1
141-
local.get $2
142-
i32.load
143-
i32.load
144-
call_indirect (type $none_=>_i32)
145-
i32.load
146-
call_indirect (type $i32_=>_i32)
147-
i32.const 25
148-
i32.ne
149-
if
150-
i32.const 0
151-
i32.const 1072
152-
i32.const 82
153-
i32.const 3
154-
call $~lib/builtins/abort
155-
unreachable
156-
end
157-
)
158-
(func $start:function-expression
15975
i32.const 1
16076
i32.const 1040
16177
i32.load
@@ -313,9 +229,72 @@
313229
call $~lib/builtins/abort
314230
unreachable
315231
end
232+
i32.const 1664
233+
memory.size
234+
local.tee $1
235+
i32.const 16
236+
i32.shl
237+
local.tee $0
238+
i32.gt_u
239+
if
240+
local.get $1
241+
i32.const 67199
242+
local.get $0
243+
i32.sub
244+
i32.const -65536
245+
i32.and
246+
i32.const 16
247+
i32.shr_u
248+
local.tee $0
249+
local.get $1
250+
local.get $0
251+
i32.gt_s
252+
select
253+
memory.grow
254+
i32.const 0
255+
i32.lt_s
256+
if
257+
local.get $0
258+
memory.grow
259+
i32.const 0
260+
i32.lt_s
261+
if
262+
unreachable
263+
end
264+
end
265+
end
316266
i32.const 1632
317-
global.set $~lib/rt/stub/offset
318-
call $function-expression/testField
267+
i32.const 16
268+
i32.store
269+
i32.const 1636
270+
i32.const 1
271+
i32.store
272+
i32.const 1640
273+
i32.const 8
274+
i32.store
275+
i32.const 1644
276+
i32.const 4
277+
i32.store
278+
i32.const 1648
279+
i32.const 1616
280+
i32.store
281+
i32.const 1
282+
i32.const 1648
283+
i32.load
284+
i32.load
285+
call_indirect (type $none_=>_i32)
286+
i32.load
287+
call_indirect (type $i32_=>_i32)
288+
i32.const 25
289+
i32.ne
290+
if
291+
i32.const 0
292+
i32.const 1072
293+
i32.const 82
294+
i32.const 3
295+
call $~lib/builtins/abort
296+
unreachable
297+
end
319298
)
320299
(func $~start
321300
call $start:function-expression

tests/compiler/infer-array.optimized.wat

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -288,34 +288,34 @@
288288
(func $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
289289
(local $4 i32)
290290
(local $5 i32)
291-
(local $6 i32)
292291
i32.const 16
293292
local.get $2
294293
call $~lib/rt/stub/__alloc
295294
local.tee $2
296295
local.get $0
297296
local.get $1
298297
i32.shl
299-
local.tee $4
300-
local.set $6
301-
local.get $4
298+
local.tee $1
299+
local.set $5
300+
local.get $1
302301
i32.const 0
303302
call $~lib/rt/stub/__alloc
304-
local.set $1
303+
local.set $4
305304
local.get $3
306305
if
307-
local.get $1
306+
local.get $4
308307
local.get $3
309-
local.get $6
308+
local.get $5
310309
call $~lib/memory/memory.copy
311310
end
312-
local.get $1
311+
local.get $4
312+
local.tee $3
313313
i32.store
314314
local.get $2
315-
local.get $1
315+
local.get $3
316316
i32.store offset=4
317317
local.get $2
318-
local.get $4
318+
local.get $1
319319
i32.store offset=8
320320
local.get $2
321321
local.get $0
@@ -340,20 +340,18 @@
340340
i32.const 1184
341341
call $~lib/rt/__allocArray
342342
drop
343-
i32.const 2
344-
i32.const 2
345-
i32.const 5
346-
i32.const 1232
347-
call $~lib/rt/__allocArray
348-
local.tee $0
349-
local.set $1
350343
block $folding-inner0
351344
i32.const 1
352-
local.get $0
345+
i32.const 2
346+
i32.const 2
347+
i32.const 5
348+
i32.const 1232
349+
call $~lib/rt/__allocArray
350+
local.tee $0
353351
i32.load offset=12
354352
i32.ge_u
355353
br_if $folding-inner0
356-
local.get $1
354+
local.get $0
357355
i32.load offset=4
358356
i32.load offset=4
359357
i32.const -1
@@ -372,17 +370,17 @@
372370
i32.const 1312
373371
call $~lib/rt/__allocArray
374372
drop
373+
i32.const 1
375374
i32.const 3
376375
i32.const 2
377376
i32.const 6
378377
i32.const 1360
379378
call $~lib/rt/__allocArray
380379
local.tee $0
381-
i32.const 1
382-
local.get $0
383380
i32.load offset=12
384381
i32.ge_u
385382
br_if $folding-inner0
383+
local.get $0
386384
i32.load offset=4
387385
f32.load offset=4
388386
drop

0 commit comments

Comments
 (0)