mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-21 10:41:42 +00:00
Rework loop compilation / flows (#644)
This commit is contained in:
2
examples/mandelbrot/build/optimized.d.ts
vendored
2
examples/mandelbrot/build/optimized.d.ts
vendored
@ -8,6 +8,6 @@ declare module ASModule {
|
||||
type f32 = number;
|
||||
type f64 = number;
|
||||
type bool = any;
|
||||
function computeLine(y: u32, width: u32, height: u32, limit: u32): void;
|
||||
export function computeLine(y: u32, width: u32, height: u32, limit: u32): void;
|
||||
}
|
||||
export default ASModule;
|
||||
|
Binary file not shown.
@ -25,7 +25,6 @@
|
||||
local.tee $9
|
||||
f64.const 0.625
|
||||
f64.mul
|
||||
local.set $4
|
||||
local.get $0
|
||||
f64.convert_i32_u
|
||||
local.get $2
|
||||
@ -46,7 +45,6 @@
|
||||
local.tee $10
|
||||
f64.mul
|
||||
local.set $11
|
||||
local.get $4
|
||||
local.get $10
|
||||
f64.mul
|
||||
local.set $13
|
||||
@ -66,7 +64,7 @@
|
||||
local.get $6
|
||||
f64.min
|
||||
local.set $15
|
||||
loop $repeat|0
|
||||
loop $loop|0
|
||||
block $break|0
|
||||
local.get $8
|
||||
local.get $1
|
||||
@ -86,43 +84,43 @@
|
||||
i32.const 0
|
||||
local.set $7
|
||||
loop $continue|1
|
||||
local.get $4
|
||||
local.get $4
|
||||
f64.mul
|
||||
local.tee $9
|
||||
local.get $5
|
||||
local.get $5
|
||||
f64.mul
|
||||
local.tee $6
|
||||
f64.add
|
||||
f64.const 4
|
||||
f64.le
|
||||
if
|
||||
block $break|1
|
||||
f64.const 2
|
||||
local.get $4
|
||||
f64.mul
|
||||
local.get $5
|
||||
f64.mul
|
||||
local.get $11
|
||||
f64.add
|
||||
local.set $5
|
||||
local.get $9
|
||||
local.get $6
|
||||
f64.sub
|
||||
local.get $12
|
||||
f64.add
|
||||
local.set $4
|
||||
local.get $7
|
||||
local.get $3
|
||||
i32.ge_u
|
||||
br_if $break|1
|
||||
local.get $7
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $7
|
||||
br $continue|1
|
||||
end
|
||||
block $break|1
|
||||
local.get $4
|
||||
local.get $4
|
||||
f64.mul
|
||||
local.tee $9
|
||||
local.get $5
|
||||
local.get $5
|
||||
f64.mul
|
||||
local.tee $6
|
||||
f64.add
|
||||
f64.const 4
|
||||
f64.le
|
||||
i32.eqz
|
||||
br_if $break|1
|
||||
f64.const 2
|
||||
local.get $4
|
||||
f64.mul
|
||||
local.get $5
|
||||
f64.mul
|
||||
local.get $11
|
||||
f64.add
|
||||
local.set $5
|
||||
local.get $9
|
||||
local.get $6
|
||||
f64.sub
|
||||
local.get $12
|
||||
f64.add
|
||||
local.set $4
|
||||
local.get $7
|
||||
local.get $3
|
||||
i32.ge_u
|
||||
br_if $break|1
|
||||
local.get $7
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $7
|
||||
br $continue|1
|
||||
end
|
||||
end
|
||||
loop $continue|2
|
||||
@ -140,7 +138,6 @@
|
||||
f64.sub
|
||||
local.get $12
|
||||
f64.add
|
||||
local.set $6
|
||||
f64.const 2
|
||||
local.get $4
|
||||
f64.mul
|
||||
@ -149,7 +146,6 @@
|
||||
local.get $11
|
||||
f64.add
|
||||
local.set $5
|
||||
local.get $6
|
||||
local.set $4
|
||||
local.get $7
|
||||
i32.const 1
|
||||
@ -203,7 +199,7 @@
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $8
|
||||
br $repeat|0
|
||||
br $loop|0
|
||||
end
|
||||
end
|
||||
)
|
||||
|
@ -88,7 +88,7 @@
|
||||
block $break|0
|
||||
i32.const 0
|
||||
local.set $12
|
||||
loop $repeat|0
|
||||
loop $loop|0
|
||||
local.get $12
|
||||
local.get $1
|
||||
i32.lt_u
|
||||
@ -120,34 +120,35 @@
|
||||
f64.add
|
||||
f64.const 4
|
||||
f64.le
|
||||
i32.eqz
|
||||
br_if $break|1
|
||||
f64.const 2
|
||||
local.get $14
|
||||
f64.mul
|
||||
local.get $15
|
||||
f64.mul
|
||||
local.get $7
|
||||
f64.add
|
||||
local.set $15
|
||||
local.get $16
|
||||
local.get $17
|
||||
f64.sub
|
||||
local.get $13
|
||||
f64.add
|
||||
local.set $14
|
||||
local.get $18
|
||||
local.get $3
|
||||
i32.ge_u
|
||||
if
|
||||
f64.const 2
|
||||
local.get $14
|
||||
f64.mul
|
||||
local.get $15
|
||||
f64.mul
|
||||
local.get $7
|
||||
f64.add
|
||||
local.set $15
|
||||
local.get $16
|
||||
local.get $17
|
||||
f64.sub
|
||||
local.get $13
|
||||
f64.add
|
||||
local.set $14
|
||||
local.get $18
|
||||
local.get $3
|
||||
i32.ge_u
|
||||
if
|
||||
br $break|1
|
||||
end
|
||||
local.get $18
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $18
|
||||
br $continue|1
|
||||
br $break|1
|
||||
end
|
||||
local.get $18
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $18
|
||||
br $continue|1
|
||||
end
|
||||
unreachable
|
||||
end
|
||||
block $break|2
|
||||
loop $continue|2
|
||||
@ -155,34 +156,35 @@
|
||||
f64.convert_i32_u
|
||||
local.get $11
|
||||
f64.lt
|
||||
if
|
||||
local.get $14
|
||||
local.get $14
|
||||
f64.mul
|
||||
local.get $15
|
||||
local.get $15
|
||||
f64.mul
|
||||
f64.sub
|
||||
local.get $13
|
||||
f64.add
|
||||
local.set $19
|
||||
f64.const 2
|
||||
local.get $14
|
||||
f64.mul
|
||||
local.get $15
|
||||
f64.mul
|
||||
local.get $7
|
||||
f64.add
|
||||
local.set $15
|
||||
local.get $19
|
||||
local.set $14
|
||||
local.get $18
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $18
|
||||
br $continue|2
|
||||
end
|
||||
i32.eqz
|
||||
br_if $break|2
|
||||
local.get $14
|
||||
local.get $14
|
||||
f64.mul
|
||||
local.get $15
|
||||
local.get $15
|
||||
f64.mul
|
||||
f64.sub
|
||||
local.get $13
|
||||
f64.add
|
||||
local.set $19
|
||||
f64.const 2
|
||||
local.get $14
|
||||
f64.mul
|
||||
local.get $15
|
||||
f64.mul
|
||||
local.get $7
|
||||
f64.add
|
||||
local.set $15
|
||||
local.get $19
|
||||
local.set $14
|
||||
local.get $18
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $18
|
||||
br $continue|2
|
||||
end
|
||||
unreachable
|
||||
end
|
||||
global.get $assembly/index/NUM_COLORS
|
||||
i32.const 1
|
||||
@ -210,26 +212,24 @@
|
||||
i32.const 1
|
||||
i32.sub
|
||||
f64.convert_i32_s
|
||||
block $assembly/index/clamp<f64>|inlined.0 (result f64)
|
||||
local.get $18
|
||||
i32.const 1
|
||||
i32.add
|
||||
f64.convert_i32_u
|
||||
local.get $21
|
||||
f64.sub
|
||||
local.get $10
|
||||
f64.mul
|
||||
local.set $24
|
||||
f64.const 0
|
||||
local.set $23
|
||||
f64.const 1
|
||||
local.set $22
|
||||
local.get $24
|
||||
local.get $23
|
||||
f64.max
|
||||
local.get $22
|
||||
f64.min
|
||||
end
|
||||
local.get $18
|
||||
i32.const 1
|
||||
i32.add
|
||||
f64.convert_i32_u
|
||||
local.get $21
|
||||
f64.sub
|
||||
local.get $10
|
||||
f64.mul
|
||||
local.set $24
|
||||
f64.const 0
|
||||
local.set $23
|
||||
f64.const 1
|
||||
local.set $22
|
||||
local.get $24
|
||||
local.get $23
|
||||
f64.max
|
||||
local.get $22
|
||||
f64.min
|
||||
f64.mul
|
||||
i32.trunc_f64_u
|
||||
local.set $20
|
||||
@ -245,8 +245,7 @@
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $12
|
||||
br $repeat|0
|
||||
unreachable
|
||||
br $loop|0
|
||||
end
|
||||
unreachable
|
||||
end
|
||||
|
Reference in New Issue
Block a user