Skip to content

Commit 3228f1e

Browse files
committed
use early precompute-propagate instead precompute
1 parent a67e7cd commit 3228f1e

File tree

2 files changed

+65
-81
lines changed

2 files changed

+65
-81
lines changed

src/module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1526,7 +1526,7 @@ export class Module {
15261526
passes.push("remove-unused-brs");
15271527
passes.push("remove-unused-names");
15281528
passes.push("merge-blocks");
1529-
passes.push("precompute");
1529+
passes.push("precompute-propagate");
15301530
}
15311531
if (optimizeLevel >= 3) {
15321532
passes.push("flatten");

tests/compiler/std/math.optimized.wat

Lines changed: 64 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -3758,55 +3758,47 @@
37583758
end
37593759
local.set $6
37603760
global.get $~lib/math/rempio2_y0
3761-
local.set $0
3761+
local.set $3
37623762
global.get $~lib/math/rempio2_y1
37633763
local.set $4
37643764
local.get $6
37653765
i32.const 1
37663766
i32.and
37673767
if (result f64)
3768-
local.get $0
3769-
local.get $0
3770-
f64.mul
3771-
local.tee $3
3772-
local.get $0
3773-
f64.mul
3774-
local.tee $1
37753768
local.get $3
37763769
local.get $3
3770+
f64.mul
3771+
local.tee $0
3772+
local.get $3
3773+
f64.mul
3774+
local.set $1
37773775
local.get $3
3776+
local.get $0
3777+
local.get $4
3778+
f64.const 0.5
3779+
f64.mul
3780+
local.get $1
3781+
local.get $0
3782+
local.get $0
37783783
f64.const 2.7557313707070068e-06
37793784
f64.mul
37803785
f64.const -1.984126982985795e-04
37813786
f64.add
37823787
f64.mul
37833788
f64.const 0.00833333333332249
37843789
f64.add
3785-
local.get $3
3786-
local.get $3
3787-
local.get $3
3790+
local.get $0
3791+
local.get $0
3792+
local.get $0
37883793
f64.mul
37893794
f64.mul
3790-
local.get $3
3795+
local.get $0
37913796
f64.const 1.58969099521155e-10
37923797
f64.mul
37933798
f64.const -2.5050760253406863e-08
37943799
f64.add
37953800
f64.mul
37963801
f64.add
3797-
local.tee $7
3798-
f64.mul
3799-
f64.const -0.16666666666666632
3800-
f64.add
3801-
f64.mul
3802-
drop
3803-
local.get $0
3804-
local.get $3
3805-
local.get $4
3806-
f64.const 0.5
3807-
f64.mul
3808-
local.get $1
3809-
local.get $7
38103802
f64.mul
38113803
f64.sub
38123804
f64.mul
@@ -3819,10 +3811,10 @@
38193811
f64.sub
38203812
else
38213813
f64.const 1
3822-
local.get $0
3823-
local.get $0
3814+
local.get $3
3815+
local.get $3
38243816
f64.mul
3825-
local.tee $3
3817+
local.tee $0
38263818
f64.const 0.5
38273819
f64.mul
38283820
local.tee $1
@@ -3833,10 +3825,10 @@
38333825
f64.sub
38343826
local.get $1
38353827
f64.sub
3836-
local.get $3
3837-
local.get $3
3838-
local.get $3
3839-
local.get $3
3828+
local.get $0
3829+
local.get $0
3830+
local.get $0
3831+
local.get $0
38403832
f64.const 2.480158728947673e-05
38413833
f64.mul
38423834
f64.const -0.001388888888887411
@@ -3845,14 +3837,14 @@
38453837
f64.const 0.0416666666666666
38463838
f64.add
38473839
f64.mul
3848-
local.get $3
3849-
local.get $3
3840+
local.get $0
3841+
local.get $0
38503842
f64.mul
38513843
local.tee $1
38523844
local.get $1
38533845
f64.mul
3854-
local.get $3
3855-
local.get $3
3846+
local.get $0
3847+
local.get $0
38563848
f64.const -1.1359647557788195e-11
38573849
f64.mul
38583850
f64.const 2.087572321298175e-09
@@ -3863,7 +3855,7 @@
38633855
f64.mul
38643856
f64.add
38653857
f64.mul
3866-
local.get $0
3858+
local.get $3
38673859
local.get $4
38683860
f64.mul
38693861
f64.sub
@@ -9184,18 +9176,18 @@
91849176
end
91859177
local.set $6
91869178
global.get $~lib/math/rempio2_y0
9187-
local.set $0
9179+
local.set $3
91889180
global.get $~lib/math/rempio2_y1
91899181
local.set $4
91909182
local.get $6
91919183
i32.const 1
91929184
i32.and
91939185
if (result f64)
91949186
f64.const 1
9195-
local.get $0
9196-
local.get $0
9187+
local.get $3
9188+
local.get $3
91979189
f64.mul
9198-
local.tee $3
9190+
local.tee $0
91999191
f64.const 0.5
92009192
f64.mul
92019193
local.tee $1
@@ -9206,10 +9198,10 @@
92069198
f64.sub
92079199
local.get $1
92089200
f64.sub
9209-
local.get $3
9210-
local.get $3
9211-
local.get $3
9212-
local.get $3
9201+
local.get $0
9202+
local.get $0
9203+
local.get $0
9204+
local.get $0
92139205
f64.const 2.480158728947673e-05
92149206
f64.mul
92159207
f64.const -0.001388888888887411
@@ -9218,14 +9210,14 @@
92189210
f64.const 0.0416666666666666
92199211
f64.add
92209212
f64.mul
9221-
local.get $3
9222-
local.get $3
9213+
local.get $0
9214+
local.get $0
92239215
f64.mul
92249216
local.tee $1
92259217
local.get $1
92269218
f64.mul
9227-
local.get $3
9228-
local.get $3
9219+
local.get $0
9220+
local.get $0
92299221
f64.const -1.1359647557788195e-11
92309222
f64.mul
92319223
f64.const 2.087572321298175e-09
@@ -9236,55 +9228,47 @@
92369228
f64.mul
92379229
f64.add
92389230
f64.mul
9239-
local.get $0
9231+
local.get $3
92409232
local.get $4
92419233
f64.mul
92429234
f64.sub
92439235
f64.add
92449236
f64.add
92459237
else
9246-
local.get $0
9247-
local.get $0
9248-
f64.mul
9249-
local.tee $3
9250-
local.get $0
9251-
f64.mul
9252-
local.tee $1
92539238
local.get $3
92549239
local.get $3
9240+
f64.mul
9241+
local.tee $0
9242+
local.get $3
9243+
f64.mul
9244+
local.set $1
92559245
local.get $3
9246+
local.get $0
9247+
local.get $4
9248+
f64.const 0.5
9249+
f64.mul
9250+
local.get $1
9251+
local.get $0
9252+
local.get $0
92569253
f64.const 2.7557313707070068e-06
92579254
f64.mul
92589255
f64.const -1.984126982985795e-04
92599256
f64.add
92609257
f64.mul
92619258
f64.const 0.00833333333332249
92629259
f64.add
9263-
local.get $3
9264-
local.get $3
9265-
local.get $3
9260+
local.get $0
9261+
local.get $0
9262+
local.get $0
92669263
f64.mul
92679264
f64.mul
9268-
local.get $3
9265+
local.get $0
92699266
f64.const 1.58969099521155e-10
92709267
f64.mul
92719268
f64.const -2.5050760253406863e-08
92729269
f64.add
92739270
f64.mul
92749271
f64.add
9275-
local.tee $7
9276-
f64.mul
9277-
f64.const -0.16666666666666632
9278-
f64.add
9279-
f64.mul
9280-
drop
9281-
local.get $0
9282-
local.get $3
9283-
local.get $4
9284-
f64.const 0.5
9285-
f64.mul
9286-
local.get $1
9287-
local.get $7
92889272
f64.mul
92899273
f64.sub
92909274
f64.mul
@@ -10882,7 +10866,7 @@
1088210866
local.get $4
1088310867
local.get $2
1088410868
global.get $~lib/math/rempio2_y1
10885-
local.tee $7
10869+
local.tee $1
1088610870
f64.const 0.5
1088710871
f64.mul
1088810872
local.get $0
@@ -10899,7 +10883,7 @@
1089910883
local.get $2
1090010884
local.get $2
1090110885
f64.mul
10902-
local.tee $1
10886+
local.tee $7
1090310887
f64.mul
1090410888
local.get $2
1090510889
f64.const 1.58969099521155e-10
@@ -10911,7 +10895,7 @@
1091110895
f64.mul
1091210896
f64.sub
1091310897
f64.mul
10914-
local.get $7
10898+
local.get $1
1091510899
f64.sub
1091610900
local.get $0
1091710901
f64.const -0.16666666666666632
@@ -10944,8 +10928,8 @@
1094410928
f64.const 0.0416666666666666
1094510929
f64.add
1094610930
f64.mul
10947-
local.get $1
10948-
local.get $1
10931+
local.get $7
10932+
local.get $7
1094910933
f64.mul
1095010934
local.get $2
1095110935
local.get $2
@@ -10960,7 +10944,7 @@
1096010944
f64.add
1096110945
f64.mul
1096210946
local.get $4
10963-
local.get $7
10947+
local.get $1
1096410948
f64.mul
1096510949
f64.sub
1096610950
f64.add

0 commit comments

Comments
 (0)