Skip to content

Commit 176e932

Browse files
authored
Minor pass pipeline improvements (#1424)
1 parent 5b910e3 commit 176e932

Some content is hidden

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

50 files changed

+7380
-7710
lines changed

src/module.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1506,7 +1506,14 @@ export class Module {
15061506
// --- PassRunner::addDefaultFunctionOptimizationPasses ---
15071507

15081508
if (optimizeLevel >= 3 || shrinkLevel >= 1) {
1509+
passes.push("simplify-locals-notee-nostructure");
1510+
passes.push("rse");
1511+
passes.push("vacuum");
15091512
passes.push("ssa-nomerge");
1513+
passes.push("simplify-globals-optimizing");
1514+
passes.push("remove-unused-brs");
1515+
passes.push("remove-unused-names");
1516+
passes.push("merge-blocks");
15101517
}
15111518
if (optimizeLevel >= 3) {
15121519
passes.push("flatten");
@@ -1518,10 +1525,6 @@ export class Module {
15181525
passes.push("local-cse");
15191526
passes.push("reorder-locals");
15201527
}
1521-
if (optimizeLevel >= 2 || shrinkLevel >= 1) {
1522-
passes.push("rse");
1523-
passes.push("vacuum");
1524-
}
15251528
// FIXME: see issue #1288
15261529
// if (usesARC) {
15271530
// if (optimizeLevel < 3) {
@@ -1537,16 +1540,16 @@ export class Module {
15371540
passes.push("remove-unused-brs");
15381541
passes.push("remove-unused-names");
15391542
passes.push("inlining-optimizing");
1540-
if (optimizeLevel >= 2 || shrinkLevel >= 1) {
1541-
passes.push("pick-load-signs");
1542-
passes.push("simplify-globals-optimizing");
1543-
}
15441543
if (optimizeLevel >= 3 || shrinkLevel >= 2) {
15451544
passes.push("precompute-propagate");
15461545
} else {
15471546
passes.push("precompute");
15481547
}
15491548
passes.push("vacuum");
1549+
if (optimizeLevel >= 2 || shrinkLevel >= 1) {
1550+
passes.push("pick-load-signs");
1551+
passes.push("simplify-globals-optimizing");
1552+
}
15501553
if (optimizeLevel >= 3 && shrinkLevel <= 1) {
15511554
passes.push("licm");
15521555
}

tests/compiler/binary.optimized.wat

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@
5050
local.get $0
5151
i32.reinterpret_f32
5252
local.tee $1
53+
i32.const -2147483648
54+
i32.and
55+
local.set $4
56+
local.get $1
5357
i32.const 23
5458
i32.shr_u
5559
i32.const 255
@@ -63,10 +67,6 @@
6367
f32.div
6468
return
6569
end
66-
local.get $1
67-
i32.const -2147483648
68-
i32.and
69-
local.set $4
7070
block $folding-inner0
7171
local.get $1
7272
i32.const 1
@@ -191,6 +191,10 @@
191191
local.get $0
192192
i64.reinterpret_f64
193193
local.tee $1
194+
i64.const 63
195+
i64.shr_u
196+
local.set $4
197+
local.get $1
194198
i64.const 52
195199
i64.shr_u
196200
i64.const 2047
@@ -204,10 +208,6 @@
204208
f64.div
205209
return
206210
end
207-
local.get $1
208-
i64.const 63
209-
i64.shr_u
210-
local.set $4
211211
block $folding-inner0
212212
local.get $1
213213
i64.const 1

tests/compiler/comma.optimized.wat

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,6 @@
8080
global.set $comma/b
8181
i32.const 2
8282
global.set $comma/a
83-
global.get $comma/b
84-
i32.const 2
85-
i32.ne
86-
if
87-
i32.const 0
88-
i32.const 1040
89-
i32.const 19
90-
i32.const 1
91-
call $~lib/builtins/abort
92-
unreachable
93-
end
9483
loop $for-loop|0
9584
local.get $0
9685
global.get $comma/a

0 commit comments

Comments
 (0)