mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-18 01:11:32 +00:00
Utilize Binaryen's -O4
When specifying -O3 or -Oz, asc now automatically increases the optimize level to 4, then including costly non-LLVM optimizations for blocky code, in turn achieving similar results as an LLVM-based generator.
This commit is contained in:
@ -20,125 +20,17 @@
|
||||
(get_local $0)
|
||||
)
|
||||
(func $inlining/test_funcs (; 3 ;) (type $v)
|
||||
(local $0 i32)
|
||||
(if
|
||||
(i32.ne
|
||||
(block $inlining/func_ii|inlined.0 (result i32)
|
||||
(drop
|
||||
(br_if $inlining/func_ii|inlined.0
|
||||
(i32.const 1)
|
||||
(i32.eq
|
||||
(tee_local $0
|
||||
(i32.const 42)
|
||||
)
|
||||
(i32.const 42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(select
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
(i32.lt_s
|
||||
(get_local $0)
|
||||
(i32.const 42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(i32.const 1)
|
||||
)
|
||||
(block
|
||||
(call $~lib/env/abort
|
||||
(i32.const 0)
|
||||
(i32.const 8)
|
||||
(i32.const 60)
|
||||
(i32.const 2)
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(set_global $~argc
|
||||
(i32.const 1)
|
||||
)
|
||||
(if
|
||||
(i32.ne
|
||||
(block $inlining/func_ii|inlined.1 (result i32)
|
||||
(drop
|
||||
(br_if $inlining/func_ii|inlined.1
|
||||
(i32.const 1)
|
||||
(i32.eq
|
||||
(tee_local $0
|
||||
(i32.const 41)
|
||||
)
|
||||
(i32.const 42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(select
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
(i32.lt_s
|
||||
(get_local $0)
|
||||
(i32.const 42)
|
||||
)
|
||||
)
|
||||
(call_indirect (type $ii)
|
||||
(i32.const 2)
|
||||
(i32.const 0)
|
||||
)
|
||||
(i32.const 2)
|
||||
)
|
||||
(block
|
||||
(call $~lib/env/abort
|
||||
(i32.const 0)
|
||||
(i32.const 8)
|
||||
(i32.const 61)
|
||||
(i32.const 2)
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(i32.ne
|
||||
(block $inlining/func_ii|inlined.2 (result i32)
|
||||
(drop
|
||||
(br_if $inlining/func_ii|inlined.2
|
||||
(i32.const 1)
|
||||
(i32.eq
|
||||
(tee_local $0
|
||||
(i32.const 43)
|
||||
)
|
||||
(i32.const 42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(select
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
(i32.lt_s
|
||||
(get_local $0)
|
||||
(i32.const 42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(i32.const 3)
|
||||
)
|
||||
(block
|
||||
(call $~lib/env/abort
|
||||
(i32.const 0)
|
||||
(i32.const 8)
|
||||
(i32.const 62)
|
||||
(i32.const 2)
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(block (result i32)
|
||||
(set_global $~argc
|
||||
(i32.const 1)
|
||||
)
|
||||
(i32.ne
|
||||
(call_indirect (type $ii)
|
||||
(i32.const 2)
|
||||
(i32.const 0)
|
||||
)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(block
|
||||
(call $~lib/env/abort
|
||||
(i32.const 0)
|
||||
|
Reference in New Issue
Block a user