diff options
author | Alon Zakai <azakai@google.com> | 2019-05-03 11:26:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-03 11:26:41 -0700 |
commit | 909ac3410093c0b35b3181abcd44b9fb9ceb4781 (patch) | |
tree | 99b75f23843e1a435231e76f8e39835999ca9ee9 /test/wasm2js/f32.2asm.js | |
parent | 80b509cfb8fa35d229643f35e423e6d049ab8849 (diff) | |
download | binaryen-909ac3410093c0b35b3181abcd44b9fb9ceb4781.tar.gz binaryen-909ac3410093c0b35b3181abcd44b9fb9ceb4781.tar.bz2 binaryen-909ac3410093c0b35b3181abcd44b9fb9ceb4781.zip |
wasm2js: avoid some slow operations when not optimizing (#2082)
Without this PR, wasm2js0.test_printf in emscripten took an extremely long time to compile.
Diffstat (limited to 'test/wasm2js/f32.2asm.js')
-rw-r--r-- | test/wasm2js/f32.2asm.js | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/test/wasm2js/f32.2asm.js b/test/wasm2js/f32.2asm.js index 107c3ea2d..ccd67a000 100644 --- a/test/wasm2js/f32.2asm.js +++ b/test/wasm2js/f32.2asm.js @@ -126,12 +126,14 @@ function asmFunc(global, env, buffer) { var$1 = Math_fround(Math_floor(var$0)); var$2 = Math_fround(var$0 - var$1); if (!(var$2 < Math_fround(.5))) { - var$0 = Math_fround(Math_ceil(var$0)); - if (var$2 > Math_fround(.5)) { - return Math_fround(var$0) + block : { + var$0 = Math_fround(Math_ceil(var$0)); + if (var$2 > Math_fround(.5)) { + return Math_fround(var$0) + } + var$2 = Math_fround(var$1 * Math_fround(.5)); + var$1 = Math_fround(var$2 - Math_fround(Math_floor(var$2))) == Math_fround(0.0) ? var$1 : var$0; } - var$2 = Math_fround(var$1 * Math_fround(.5)); - var$1 = Math_fround(var$2 - Math_fround(Math_floor(var$2))) == Math_fround(0.0) ? var$1 : var$0; } return Math_fround(var$1); } |