Skip to content

Commit 087372b

Browse files
committed
add merge-locals
1 parent b40f77e commit 087372b

25 files changed

+122
-146
lines changed

cli/asc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,7 @@ exports.main = function main(argv, options, callback) {
834834
add("dae-optimizing");
835835
add("precompute-propagate");
836836
add("vacuum");
837+
add("merge-locals");
837838
add("coalesce-locals");
838839
add("merge-locals");
839840
add("simplify-locals-nostructure");

tests/compiler/do.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1429,13 +1429,12 @@
14291429
block $switch$1$default
14301430
block $switch$1$case$4
14311431
local.get $0
1432-
local.tee $1
14331432
i32.const 8
14341433
i32.add
14351434
i32.load
14361435
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$default
14371436
end
1438-
local.get $1
1437+
local.get $0
14391438
i32.load offset=16
14401439
local.tee $1
14411440
if

tests/compiler/for.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1438,13 +1438,12 @@
14381438
block $switch$1$default
14391439
block $switch$1$case$4
14401440
local.get $0
1441-
local.tee $1
14421441
i32.const 8
14431442
i32.add
14441443
i32.load
14451444
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$default
14461445
end
1447-
local.get $1
1446+
local.get $0
14481447
i32.load offset=16
14491448
local.tee $1
14501449
if

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,13 +1211,12 @@
12111211
block $switch$1$default
12121212
block $switch$1$case$4
12131213
local.get $0
1214-
local.tee $1
12151214
i32.const 8
12161215
i32.add
12171216
i32.load
12181217
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $switch$1$default
12191218
end
1220-
local.get $1
1219+
local.get $0
12211220
i32.load offset=16
12221221
local.tee $1
12231222
if

tests/compiler/issues/1095.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,13 +1028,12 @@
10281028
block $switch$1$default
10291029
block $switch$1$case$4
10301030
local.get $0
1031-
local.tee $1
10321031
i32.const 8
10331032
i32.add
10341033
i32.load
10351034
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $switch$1$case$4 $switch$1$default
10361035
end
1037-
local.get $1
1036+
local.get $0
10381037
i32.load offset=16
10391038
local.tee $1
10401039
if

tests/compiler/managed-cast.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1146,13 +1146,12 @@
11461146
block $switch$1$default
11471147
block $switch$1$case$4
11481148
local.get $0
1149-
local.tee $1
11501149
i32.const 8
11511150
i32.add
11521151
i32.load
11531152
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$default
11541153
end
1155-
local.get $1
1154+
local.get $0
11561155
i32.load offset=16
11571156
local.tee $1
11581157
if

tests/compiler/rc/local-init.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -986,13 +986,12 @@
986986
block $switch$1$default
987987
block $switch$1$case$4
988988
local.get $0
989-
local.tee $1
990989
i32.const 8
991990
i32.add
992991
i32.load
993992
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$default
994993
end
995-
local.get $1
994+
local.get $0
996995
i32.load offset=16
997996
local.tee $1
998997
if

tests/compiler/rc/logical-and-mismatch.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,13 +1028,12 @@
10281028
block $switch$1$default
10291029
block $switch$1$case$4
10301030
local.get $0
1031-
local.tee $1
10321031
i32.const 8
10331032
i32.add
10341033
i32.load
10351034
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$default
10361035
end
1037-
local.get $1
1036+
local.get $0
10381037
i32.load offset=16
10391038
local.tee $1
10401039
if

tests/compiler/rc/logical-or-mismatch.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,13 +1030,12 @@
10301030
block $switch$1$default
10311031
block $switch$1$case$4
10321032
local.get $0
1033-
local.tee $1
10341033
i32.const 8
10351034
i32.add
10361035
i32.load
10371036
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$default
10381037
end
1039-
local.get $1
1038+
local.get $0
10401039
i32.load offset=16
10411040
local.tee $1
10421041
if

tests/compiler/rc/optimize.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,13 +1081,12 @@
10811081
block $switch$1$default
10821082
block $switch$1$case$4
10831083
local.get $0
1084-
local.tee $1
10851084
i32.const 8
10861085
i32.add
10871086
i32.load
10881087
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$default
10891088
end
1090-
local.get $1
1089+
local.get $0
10911090
i32.load offset=16
10921091
local.tee $1
10931092
if

tests/compiler/rc/rereturn.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,13 +1127,12 @@
11271127
block $switch$1$default
11281128
block $switch$1$case$4
11291129
local.get $0
1130-
local.tee $1
11311130
i32.const 8
11321131
i32.add
11331132
i32.load
11341133
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$default
11351134
end
1136-
local.get $1
1135+
local.get $0
11371136
i32.load offset=16
11381137
local.tee $1
11391138
if

tests/compiler/rc/ternary-mismatch.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,13 +1029,12 @@
10291029
block $switch$1$default
10301030
block $switch$1$case$4
10311031
local.get $0
1032-
local.tee $1
10331032
i32.const 8
10341033
i32.add
10351034
i32.load
10361035
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$default
10371036
end
1038-
local.get $1
1037+
local.get $0
10391038
i32.load offset=16
10401039
local.tee $1
10411040
if

tests/compiler/resolve-ternary.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2454,13 +2454,12 @@
24542454
block $switch$1$default
24552455
block $switch$1$case$4
24562456
local.get $0
2457-
local.tee $1
24582457
i32.const 8
24592458
i32.add
24602459
i32.load
24612460
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$default
24622461
end
2463-
local.get $1
2462+
local.get $0
24642463
i32.load offset=16
24652464
local.tee $1
24662465
if

tests/compiler/retain-return.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,13 +1026,12 @@
10261026
block $switch$1$default
10271027
block $switch$1$case$4
10281028
local.get $0
1029-
local.tee $1
10301029
i32.const 8
10311030
i32.add
10321031
i32.load
10331032
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $__inlined_func$~lib/rt/__visit_members $switch$1$default
10341033
end
1035-
local.get $1
1034+
local.get $0
10361035
i32.load offset=16
10371036
local.tee $1
10381037
if

tests/compiler/runtime-full.optimized.wat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,13 +1127,12 @@
11271127
block $switch$1$default
11281128
block $switch$1$case$4
11291129
local.get $0
1130-
local.tee $1
11311130
i32.const 8
11321131
i32.add
11331132
i32.load
11341133
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $switch$1$default
11351134
end
1136-
local.get $1
1135+
local.get $0
11371136
i32.load offset=16
11381137
local.tee $1
11391138
if

tests/compiler/std/array.optimized.wat

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16086,10 +16086,9 @@
1608616086
(local $2 i32)
1608716087
(local $3 i32)
1608816088
(local $4 i32)
16089-
(local $5 i32)
1609016089
local.get $0
1609116090
i32.load offset=4
16092-
local.tee $3
16091+
local.tee $2
1609316092
i32.const 268435455
1609416093
i32.and
1609516094
local.set $1
@@ -16117,13 +16116,12 @@
1611716116
block $switch$1$default
1611816117
block $switch$1$case$4
1611916118
local.get $0
16120-
local.tee $1
1612116119
i32.const 8
1612216120
i32.add
1612316121
i32.load
1612416122
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $__inlined_func$~lib/rt/__visit_members $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $switch$1$default
1612516123
end
16126-
local.get $1
16124+
local.get $0
1612716125
i32.load offset=16
1612816126
local.tee $1
1612916127
if
@@ -16134,44 +16132,44 @@
1613416132
end
1613516133
unreachable
1613616134
end
16137-
local.get $1
16135+
local.get $0
1613816136
i32.load offset=16
1613916137
call $~lib/rt/pure/__visit
1614016138
br $__inlined_func$~lib/rt/__visit_members
1614116139
end
16142-
local.get $1
16140+
local.get $0
1614316141
i32.load offset=20
16144-
local.tee $2
16145-
local.get $1
16142+
local.tee $1
16143+
local.get $0
1614616144
i32.load offset=28
1614716145
i32.const 2
1614816146
i32.shl
1614916147
i32.add
16150-
local.set $4
16148+
local.set $3
1615116149
loop $while-continue|0
16152-
local.get $2
16153-
local.get $4
16150+
local.get $1
16151+
local.get $3
1615416152
i32.lt_u
1615516153
if
16156-
local.get $2
16154+
local.get $1
1615716155
i32.load
16158-
local.tee $5
16156+
local.tee $4
1615916157
if
16160-
local.get $5
16158+
local.get $4
1616116159
call $~lib/rt/pure/__visit
1616216160
end
16163-
local.get $2
16161+
local.get $1
1616416162
i32.const 4
1616516163
i32.add
16166-
local.set $2
16164+
local.set $1
1616716165
br $while-continue|0
1616816166
end
1616916167
end
16170-
local.get $1
16168+
local.get $0
1617116169
i32.load offset=16
1617216170
call $~lib/rt/pure/__visit
1617316171
end
16174-
local.get $3
16172+
local.get $2
1617516173
i32.const -2147483648
1617616174
i32.and
1617716175
if
@@ -16201,7 +16199,7 @@
1620116199
local.get $1
1620216200
i32.const 1
1620316201
i32.sub
16204-
local.get $3
16202+
local.get $2
1620516203
i32.const -268435456
1620616204
i32.and
1620716205
i32.or

tests/compiler/std/arraybuffer.optimized.wat

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1936,13 +1936,12 @@
19361936
block $switch$1$case$5
19371937
block $switch$1$case$4
19381938
local.get $0
1939-
local.tee $1
19401939
i32.const 8
19411940
i32.add
19421941
i32.load
19431942
br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $switch$1$case$5 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$default
19441943
end
1945-
local.get $1
1944+
local.get $0
19461945
i32.load offset=16
19471946
local.tee $1
19481947
if
@@ -1951,7 +1950,7 @@
19511950
end
19521951
br $__inlined_func$~lib/rt/__visit_members
19531952
end
1954-
local.get $1
1953+
local.get $0
19551954
i32.load offset=16
19561955
call $~lib/rt/pure/__visit
19571956
br $__inlined_func$~lib/rt/__visit_members

0 commit comments

Comments
 (0)