mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-23 11:41:45 +00:00
optimize logical and/or, initial null checking in flows
This commit is contained in:
@ -190,44 +190,39 @@
|
||||
local.get $7
|
||||
i32.const 2146435072
|
||||
i32.gt_s
|
||||
local.tee $9
|
||||
if (result i32)
|
||||
local.get $9
|
||||
i32.const 1
|
||||
else
|
||||
local.get $7
|
||||
i32.const 2146435072
|
||||
i32.eq
|
||||
local.tee $9
|
||||
if (result i32)
|
||||
local.get $4
|
||||
i32.const 0
|
||||
i32.ne
|
||||
else
|
||||
local.get $9
|
||||
i32.const 0
|
||||
end
|
||||
end
|
||||
local.tee $9
|
||||
if (result i32)
|
||||
local.get $9
|
||||
i32.const 1
|
||||
else
|
||||
local.get $8
|
||||
i32.const 2146435072
|
||||
i32.gt_s
|
||||
end
|
||||
local.tee $9
|
||||
if (result i32)
|
||||
local.get $9
|
||||
i32.const 1
|
||||
else
|
||||
local.get $8
|
||||
i32.const 2146435072
|
||||
i32.eq
|
||||
local.tee $9
|
||||
if (result i32)
|
||||
local.get $6
|
||||
i32.const 0
|
||||
i32.ne
|
||||
else
|
||||
local.get $9
|
||||
i32.const 0
|
||||
end
|
||||
end
|
||||
if
|
||||
@ -237,7 +232,7 @@
|
||||
return
|
||||
end
|
||||
i32.const 0
|
||||
local.set $10
|
||||
local.set $9
|
||||
local.get $3
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
@ -247,7 +242,7 @@
|
||||
i32.ge_s
|
||||
if
|
||||
i32.const 2
|
||||
local.set $10
|
||||
local.set $9
|
||||
else
|
||||
local.get $8
|
||||
i32.const 1072693248
|
||||
@ -258,21 +253,21 @@
|
||||
i32.shr_s
|
||||
i32.const 1023
|
||||
i32.sub
|
||||
local.set $11
|
||||
local.get $11
|
||||
local.set $10
|
||||
local.get $10
|
||||
i32.const 20
|
||||
i32.gt_s
|
||||
local.set $9
|
||||
local.set $11
|
||||
i32.const 52
|
||||
i32.const 20
|
||||
local.get $9
|
||||
select
|
||||
local.get $11
|
||||
select
|
||||
local.get $10
|
||||
i32.sub
|
||||
local.set $12
|
||||
local.get $6
|
||||
local.get $8
|
||||
local.get $9
|
||||
local.get $11
|
||||
select
|
||||
local.set $13
|
||||
local.get $13
|
||||
@ -290,7 +285,7 @@
|
||||
i32.const 1
|
||||
i32.and
|
||||
i32.sub
|
||||
local.set $10
|
||||
local.set $9
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -393,17 +388,15 @@
|
||||
local.get $7
|
||||
i32.const 0
|
||||
i32.eq
|
||||
local.tee $14
|
||||
if (result i32)
|
||||
local.get $14
|
||||
i32.const 1
|
||||
else
|
||||
local.get $7
|
||||
i32.const 2146435072
|
||||
i32.eq
|
||||
end
|
||||
local.tee $14
|
||||
if (result i32)
|
||||
local.get $14
|
||||
i32.const 1
|
||||
else
|
||||
local.get $7
|
||||
i32.const 1072693248
|
||||
@ -428,7 +421,7 @@
|
||||
local.get $7
|
||||
i32.const 1072693248
|
||||
i32.sub
|
||||
local.get $10
|
||||
local.get $9
|
||||
i32.or
|
||||
i32.const 0
|
||||
i32.eq
|
||||
@ -442,7 +435,7 @@
|
||||
f64.div
|
||||
local.set $16
|
||||
else
|
||||
local.get $10
|
||||
local.get $9
|
||||
i32.const 1
|
||||
i32.eq
|
||||
if
|
||||
@ -462,7 +455,7 @@
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $10
|
||||
local.get $9
|
||||
i32.const 0
|
||||
i32.eq
|
||||
if
|
||||
@ -475,7 +468,7 @@
|
||||
f64.div
|
||||
return
|
||||
end
|
||||
local.get $10
|
||||
local.get $9
|
||||
i32.const 1
|
||||
i32.eq
|
||||
if
|
||||
@ -661,17 +654,17 @@
|
||||
i32.le_s
|
||||
if
|
||||
i32.const 0
|
||||
local.set $11
|
||||
local.set $10
|
||||
else
|
||||
local.get $28
|
||||
i32.const 767610
|
||||
i32.lt_s
|
||||
if
|
||||
i32.const 1
|
||||
local.set $11
|
||||
local.set $10
|
||||
else
|
||||
i32.const 0
|
||||
local.set $11
|
||||
local.set $10
|
||||
local.get $29
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -695,7 +688,7 @@
|
||||
local.set $15
|
||||
f64.const 1.5
|
||||
f64.const 1
|
||||
local.get $11
|
||||
local.get $10
|
||||
select
|
||||
local.set $35
|
||||
local.get $15
|
||||
@ -727,7 +720,7 @@
|
||||
i32.or
|
||||
i32.const 524288
|
||||
i32.add
|
||||
local.get $11
|
||||
local.get $10
|
||||
i32.const 18
|
||||
i32.shl
|
||||
i32.add
|
||||
@ -850,7 +843,7 @@
|
||||
local.set $36
|
||||
f64.const 1.350039202129749e-08
|
||||
f64.const 0
|
||||
local.get $11
|
||||
local.get $10
|
||||
select
|
||||
local.set $37
|
||||
f64.const -7.028461650952758e-09
|
||||
@ -868,7 +861,7 @@
|
||||
local.set $24
|
||||
f64.const 0.5849624872207642
|
||||
f64.const 0
|
||||
local.get $11
|
||||
local.get $10
|
||||
select
|
||||
local.set $39
|
||||
local.get $36
|
||||
@ -1013,7 +1006,7 @@
|
||||
i32.shr_s
|
||||
i32.const 1023
|
||||
i32.sub
|
||||
local.set $11
|
||||
local.set $10
|
||||
i32.const 0
|
||||
local.set $29
|
||||
local.get $41
|
||||
@ -1022,7 +1015,7 @@
|
||||
if
|
||||
local.get $28
|
||||
i32.const 1048576
|
||||
local.get $11
|
||||
local.get $10
|
||||
i32.const 1
|
||||
i32.add
|
||||
i32.shr_s
|
||||
@ -1035,12 +1028,12 @@
|
||||
i32.shr_s
|
||||
i32.const 1023
|
||||
i32.sub
|
||||
local.set $11
|
||||
local.set $10
|
||||
f64.const 0
|
||||
local.set $24
|
||||
local.get $29
|
||||
i32.const 1048575
|
||||
local.get $11
|
||||
local.get $10
|
||||
i32.shr_s
|
||||
i32.const -1
|
||||
i32.xor
|
||||
@ -1056,7 +1049,7 @@
|
||||
i32.const 1048576
|
||||
i32.or
|
||||
i32.const 20
|
||||
local.get $11
|
||||
local.get $10
|
||||
i32.sub
|
||||
i32.shr_s
|
||||
local.set $29
|
||||
@ -1207,10 +1200,9 @@
|
||||
(local $5 i32)
|
||||
(local $6 i32)
|
||||
(local $7 i32)
|
||||
(local $8 i32)
|
||||
(local $9 f32)
|
||||
(local $8 f32)
|
||||
(local $9 i32)
|
||||
(local $10 i32)
|
||||
(local $11 i32)
|
||||
local.get $0
|
||||
i32.reinterpret_f32
|
||||
local.set $2
|
||||
@ -1240,17 +1232,15 @@
|
||||
local.get $7
|
||||
i32.const 0
|
||||
i32.eq
|
||||
local.tee $8
|
||||
if (result i32)
|
||||
local.get $8
|
||||
i32.const 1
|
||||
else
|
||||
local.get $4
|
||||
i32.const 255
|
||||
i32.eq
|
||||
end
|
||||
local.tee $8
|
||||
if (result i32)
|
||||
local.get $8
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
@ -1259,21 +1249,21 @@
|
||||
local.get $0
|
||||
local.get $1
|
||||
f32.mul
|
||||
local.set $9
|
||||
local.get $9
|
||||
local.get $9
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.get $8
|
||||
f32.div
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
i32.const 1
|
||||
i32.shl
|
||||
local.set $10
|
||||
local.get $10
|
||||
local.set $9
|
||||
local.get $9
|
||||
local.get $7
|
||||
i32.le_u
|
||||
if
|
||||
local.get $10
|
||||
local.get $9
|
||||
local.get $7
|
||||
i32.eq
|
||||
if
|
||||
@ -1409,13 +1399,13 @@
|
||||
i32.const 8
|
||||
i32.shl
|
||||
i32.clz
|
||||
local.set $11
|
||||
local.set $10
|
||||
local.get $4
|
||||
local.get $11
|
||||
local.get $10
|
||||
i32.sub
|
||||
local.set $4
|
||||
local.get $2
|
||||
local.get $11
|
||||
local.get $10
|
||||
i32.shl
|
||||
local.set $2
|
||||
local.get $4
|
||||
@ -1601,9 +1591,8 @@
|
||||
local.get $4
|
||||
i32.const 2139095040
|
||||
i32.gt_s
|
||||
local.tee $6
|
||||
if (result i32)
|
||||
local.get $6
|
||||
i32.const 1
|
||||
else
|
||||
local.get $5
|
||||
i32.const 2139095040
|
||||
@ -1616,7 +1605,7 @@
|
||||
return
|
||||
end
|
||||
i32.const 0
|
||||
local.set $7
|
||||
local.set $6
|
||||
local.get $2
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
@ -1626,7 +1615,7 @@
|
||||
i32.ge_s
|
||||
if
|
||||
i32.const 2
|
||||
local.set $7
|
||||
local.set $6
|
||||
else
|
||||
local.get $5
|
||||
i32.const 1065353216
|
||||
@ -1637,27 +1626,27 @@
|
||||
i32.shr_s
|
||||
i32.const 127
|
||||
i32.sub
|
||||
local.set $9
|
||||
i32.const 23
|
||||
local.get $9
|
||||
i32.sub
|
||||
local.set $6
|
||||
local.get $5
|
||||
local.get $6
|
||||
i32.shr_s
|
||||
local.set $8
|
||||
i32.const 23
|
||||
local.get $8
|
||||
local.get $6
|
||||
i32.sub
|
||||
local.set $9
|
||||
local.get $5
|
||||
local.get $9
|
||||
i32.shr_s
|
||||
local.set $7
|
||||
local.get $7
|
||||
local.get $9
|
||||
i32.shl
|
||||
local.get $5
|
||||
i32.eq
|
||||
if
|
||||
i32.const 2
|
||||
local.get $8
|
||||
local.get $7
|
||||
i32.const 1
|
||||
i32.and
|
||||
i32.sub
|
||||
local.set $7
|
||||
local.set $6
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1747,17 +1736,15 @@
|
||||
local.get $4
|
||||
i32.const 2139095040
|
||||
i32.eq
|
||||
local.tee $6
|
||||
if (result i32)
|
||||
local.get $6
|
||||
i32.const 1
|
||||
else
|
||||
local.get $4
|
||||
i32.const 0
|
||||
i32.eq
|
||||
end
|
||||
local.tee $6
|
||||
if (result i32)
|
||||
local.get $6
|
||||
i32.const 1
|
||||
else
|
||||
local.get $4
|
||||
i32.const 1065353216
|
||||
@ -1782,7 +1769,7 @@
|
||||
local.get $4
|
||||
i32.const 1065353216
|
||||
i32.sub
|
||||
local.get $7
|
||||
local.get $6
|
||||
i32.or
|
||||
i32.const 0
|
||||
i32.eq
|
||||
@ -1796,7 +1783,7 @@
|
||||
f32.div
|
||||
local.set $11
|
||||
else
|
||||
local.get $7
|
||||
local.get $6
|
||||
i32.const 1
|
||||
i32.eq
|
||||
if
|
||||
@ -1815,7 +1802,7 @@
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $7
|
||||
local.get $6
|
||||
i32.const 0
|
||||
i32.eq
|
||||
if
|
||||
@ -1828,7 +1815,7 @@
|
||||
f32.div
|
||||
return
|
||||
end
|
||||
local.get $7
|
||||
local.get $6
|
||||
i32.const 1
|
||||
i32.eq
|
||||
if
|
||||
@ -1962,27 +1949,27 @@
|
||||
local.get $4
|
||||
i32.const 8388607
|
||||
i32.and
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.set $7
|
||||
local.get $7
|
||||
i32.const 1065353216
|
||||
i32.or
|
||||
local.set $4
|
||||
local.get $8
|
||||
local.get $7
|
||||
i32.const 1885297
|
||||
i32.le_s
|
||||
if
|
||||
i32.const 0
|
||||
local.set $9
|
||||
local.set $8
|
||||
else
|
||||
local.get $8
|
||||
local.get $7
|
||||
i32.const 6140887
|
||||
i32.lt_s
|
||||
if
|
||||
i32.const 1
|
||||
local.set $9
|
||||
local.set $8
|
||||
else
|
||||
i32.const 0
|
||||
local.set $9
|
||||
local.set $8
|
||||
local.get $24
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -1998,7 +1985,7 @@
|
||||
local.set $10
|
||||
f32.const 1.5
|
||||
f32.const 1
|
||||
local.get $9
|
||||
local.get $8
|
||||
select
|
||||
local.set $30
|
||||
local.get $10
|
||||
@ -2036,7 +2023,7 @@
|
||||
local.get $25
|
||||
i32.const 4194304
|
||||
i32.add
|
||||
local.get $9
|
||||
local.get $8
|
||||
i32.const 21
|
||||
i32.shl
|
||||
i32.add
|
||||
@ -2160,7 +2147,7 @@
|
||||
local.set $31
|
||||
f32.const 1.5632208487659227e-06
|
||||
f32.const 0
|
||||
local.get $9
|
||||
local.get $8
|
||||
select
|
||||
local.set $32
|
||||
f32.const -1.1736857413779944e-04
|
||||
@ -2178,7 +2165,7 @@
|
||||
local.set $18
|
||||
f32.const 0.5849609375
|
||||
f32.const 0
|
||||
local.get $9
|
||||
local.get $8
|
||||
select
|
||||
local.set $34
|
||||
local.get $31
|
||||
@ -2236,8 +2223,8 @@
|
||||
local.set $11
|
||||
local.get $11
|
||||
i32.reinterpret_f32
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.set $7
|
||||
local.get $7
|
||||
i32.const 1124073472
|
||||
i32.gt_s
|
||||
if
|
||||
@ -2248,7 +2235,7 @@
|
||||
f32.mul
|
||||
return
|
||||
else
|
||||
local.get $8
|
||||
local.get $7
|
||||
i32.const 1124073472
|
||||
i32.eq
|
||||
if
|
||||
@ -2268,7 +2255,7 @@
|
||||
return
|
||||
end
|
||||
else
|
||||
local.get $8
|
||||
local.get $7
|
||||
i32.const 2147483647
|
||||
i32.and
|
||||
i32.const 1125515264
|
||||
@ -2281,7 +2268,7 @@
|
||||
f32.mul
|
||||
return
|
||||
else
|
||||
local.get $8
|
||||
local.get $7
|
||||
i32.const -1021968384
|
||||
i32.eq
|
||||
if
|
||||
@ -2302,7 +2289,7 @@
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $8
|
||||
local.get $7
|
||||
i32.const 2147483647
|
||||
i32.and
|
||||
local.set $36
|
||||
@ -2311,16 +2298,16 @@
|
||||
i32.shr_s
|
||||
i32.const 127
|
||||
i32.sub
|
||||
local.set $9
|
||||
local.set $8
|
||||
i32.const 0
|
||||
local.set $24
|
||||
local.get $36
|
||||
i32.const 1056964608
|
||||
i32.gt_s
|
||||
if
|
||||
local.get $8
|
||||
local.get $7
|
||||
i32.const 8388608
|
||||
local.get $9
|
||||
local.get $8
|
||||
i32.const 1
|
||||
i32.add
|
||||
i32.shr_s
|
||||
@ -2333,10 +2320,10 @@
|
||||
i32.shr_s
|
||||
i32.const 127
|
||||
i32.sub
|
||||
local.set $9
|
||||
local.set $8
|
||||
local.get $24
|
||||
i32.const 8388607
|
||||
local.get $9
|
||||
local.get $8
|
||||
i32.shr_s
|
||||
i32.const -1
|
||||
i32.xor
|
||||
@ -2349,11 +2336,11 @@
|
||||
i32.const 8388608
|
||||
i32.or
|
||||
i32.const 23
|
||||
local.get $9
|
||||
local.get $8
|
||||
i32.sub
|
||||
i32.shr_s
|
||||
local.set $24
|
||||
local.get $8
|
||||
local.get $7
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
@ -2453,14 +2440,14 @@
|
||||
local.set $11
|
||||
local.get $11
|
||||
i32.reinterpret_f32
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.set $7
|
||||
local.get $7
|
||||
local.get $24
|
||||
i32.const 23
|
||||
i32.shl
|
||||
i32.add
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.set $7
|
||||
local.get $7
|
||||
i32.const 23
|
||||
i32.shr_s
|
||||
i32.const 0
|
||||
@ -2471,7 +2458,7 @@
|
||||
call $~lib/math/NativeMathf.scalbn
|
||||
local.set $11
|
||||
else
|
||||
local.get $8
|
||||
local.get $7
|
||||
f32.reinterpret_i32
|
||||
local.set $11
|
||||
end
|
||||
@ -2491,10 +2478,9 @@
|
||||
(local $5 i64)
|
||||
(local $6 i64)
|
||||
(local $7 i64)
|
||||
(local $8 i32)
|
||||
(local $9 f64)
|
||||
(local $8 f64)
|
||||
(local $9 i64)
|
||||
(local $10 i64)
|
||||
(local $11 i64)
|
||||
local.get $0
|
||||
i64.reinterpret_f64
|
||||
local.set $2
|
||||
@ -2524,17 +2510,15 @@
|
||||
local.get $7
|
||||
i64.const 0
|
||||
i64.eq
|
||||
local.tee $8
|
||||
if (result i32)
|
||||
local.get $8
|
||||
i32.const 1
|
||||
else
|
||||
local.get $4
|
||||
i64.const 2047
|
||||
i64.eq
|
||||
end
|
||||
local.tee $8
|
||||
if (result i32)
|
||||
local.get $8
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
@ -2543,21 +2527,21 @@
|
||||
local.get $0
|
||||
local.get $1
|
||||
f64.mul
|
||||
local.set $9
|
||||
local.get $9
|
||||
local.get $9
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.get $8
|
||||
f64.div
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
i64.const 1
|
||||
i64.shl
|
||||
local.set $10
|
||||
local.get $10
|
||||
local.set $9
|
||||
local.get $9
|
||||
local.get $7
|
||||
i64.le_u
|
||||
if
|
||||
local.get $10
|
||||
local.get $9
|
||||
local.get $7
|
||||
i64.eq
|
||||
if
|
||||
@ -2693,13 +2677,13 @@
|
||||
i64.const 11
|
||||
i64.shl
|
||||
i64.clz
|
||||
local.set $11
|
||||
local.set $10
|
||||
local.get $4
|
||||
local.get $11
|
||||
local.get $10
|
||||
i64.sub
|
||||
local.set $4
|
||||
local.get $2
|
||||
local.get $11
|
||||
local.get $10
|
||||
i64.shl
|
||||
local.set $2
|
||||
local.get $4
|
||||
|
Reference in New Issue
Block a user