Extract portable AS to its own definition and polyfill; Try running flatten/ssa before default optimizations, see WebAssembly/binaryen#1331

This commit is contained in:
dcodeIO
2017-12-08 19:08:03 +01:00
parent d6b94d4c33
commit 0ebb99a33c
23 changed files with 1515 additions and 1231 deletions

View File

@ -44,46 +44,48 @@
)
(unreachable)
)
(if
(tee_local $0
(i32.const 1)
)
(set_local $0
(i32.const 2)
)
)
(if
(i32.eqz
(if (result i32)
(tee_local $0
(i32.const 1)
)
(tee_local $0
(i32.const 2)
)
(get_local $0)
)
(get_local $0)
)
(unreachable)
)
(if
(f64.eq
(if (result f64)
(f64.ne
(tee_local $1
(f64.const 1)
)
(f64.const 0)
)
(tee_local $1
(f64.const 2)
)
(get_local $1)
(f64.ne
(tee_local $1
(f64.const 1)
)
(f64.const 0)
)
(set_local $1
(f64.const 2)
)
)
(if
(f64.eq
(get_local $1)
(f64.const 0)
)
(unreachable)
)
(set_global $logical/i
(if (result i32)
(tee_local $0
(i32.const 1)
)
(i32.const 2)
(get_local $0)
(if
(tee_local $0
(i32.const 1)
)
(set_local $0
(i32.const 2)
)
)
(set_global $logical/i
(get_local $0)
)
(if
(i32.ne
@ -92,15 +94,19 @@
)
(unreachable)
)
(set_global $logical/i
(if (result i32)
(if
(i32.eqz
(tee_local $0
(i32.const 0)
)
(get_local $0)
)
(set_local $0
(i32.const 1)
)
)
(set_global $logical/i
(get_local $0)
)
(if
(i32.ne
(get_global $logical/i)
@ -108,17 +114,19 @@
)
(unreachable)
)
(set_global $logical/I
(if (result i64)
(i64.ne
(tee_local $2
(i64.const 1)
)
(i64.const 0)
(if
(i64.ne
(tee_local $2
(i64.const 1)
)
(i64.const 2)
(get_local $2)
(i64.const 0)
)
(set_local $2
(i64.const 2)
)
)
(set_global $logical/I
(get_local $2)
)
(if
(i64.ne
@ -127,18 +135,20 @@
)
(unreachable)
)
(set_global $logical/I
(if (result i64)
(i64.ne
(tee_local $2
(i64.const 0)
)
(if
(i64.eq
(tee_local $2
(i64.const 0)
)
(get_local $2)
(i64.const 0)
)
(set_local $2
(i64.const 1)
)
)
(set_global $logical/I
(get_local $2)
)
(if
(i64.ne
(get_global $logical/I)
@ -146,17 +156,19 @@
)
(unreachable)
)
(set_global $logical/f
(if (result f32)
(f32.ne
(tee_local $3
(f32.const 1)
)
(f32.const 0)
(if
(f32.ne
(tee_local $3
(f32.const 1)
)
(f32.const 2)
(get_local $3)
(f32.const 0)
)
(set_local $3
(f32.const 2)
)
)
(set_global $logical/f
(get_local $3)
)
(if
(f32.ne
@ -165,18 +177,20 @@
)
(unreachable)
)
(set_global $logical/f
(if (result f32)
(f32.ne
(tee_local $3
(f32.const 0)
)
(if
(f32.eq
(tee_local $3
(f32.const 0)
)
(get_local $3)
(f32.const 0)
)
(set_local $3
(f32.const 1)
)
)
(set_global $logical/f
(get_local $3)
)
(if
(f32.ne
(get_global $logical/f)
@ -184,17 +198,19 @@
)
(unreachable)
)
(if
(f64.ne
(tee_local $1
(f64.const 1)
)
(f64.const 0)
)
(set_local $1
(f64.const 2)
)
)
(set_global $logical/F
(if (result f64)
(f64.ne
(tee_local $1
(f64.const 1)
)
(f64.const 0)
)
(f64.const 2)
(get_local $1)
)
(get_local $1)
)
(if
(f64.ne
@ -203,18 +219,20 @@
)
(unreachable)
)
(set_global $logical/F
(if (result f64)
(f64.ne
(tee_local $1
(f64.const 0)
)
(if
(f64.eq
(tee_local $1
(f64.const 0)
)
(get_local $1)
(f64.const 0)
)
(set_local $1
(f64.const 1)
)
)
(set_global $logical/F
(get_local $1)
)
(if
(f64.ne
(get_global $logical/F)