diff options
author | Alon Zakai <azakai@google.com> | 2019-05-01 17:18:04 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-01 17:18:04 -0700 |
commit | af459403bc6e1bb99468ad05f351665143193082 (patch) | |
tree | fd6b0c2e0bd14822c3e3bb1e0f4a3b42c78bb56c /test/wasm2js/i64-add-sub.2asm.js | |
parent | 2bd3758a22131cfd6925b3fd995657b211095c90 (diff) | |
download | binaryen-af459403bc6e1bb99468ad05f351665143193082.tar.gz binaryen-af459403bc6e1bb99468ad05f351665143193082.tar.bz2 binaryen-af459403bc6e1bb99468ad05f351665143193082.zip |
wasm2js: don't run coalesce-locals if not optimizing (#2076)
That pass is very slow on unoptimized code (super-linear on the number of locals, which if unoptimized can be massive due to flatten).
Diffstat (limited to 'test/wasm2js/i64-add-sub.2asm.js')
-rw-r--r-- | test/wasm2js/i64-add-sub.2asm.js | 307 |
1 files changed, 172 insertions, 135 deletions
diff --git a/test/wasm2js/i64-add-sub.2asm.js b/test/wasm2js/i64-add-sub.2asm.js index f0fdcb6ac..d27bbe3e4 100644 --- a/test/wasm2js/i64-add-sub.2asm.js +++ b/test/wasm2js/i64-add-sub.2asm.js @@ -21,38 +21,49 @@ function asmFunc(global, env, buffer) { var abort = env.abort; var nan = global.NaN; var infinity = global.Infinity; - function $1($0, $1_1, $2_1, $3, $4, $5) { + function $1($0, $0$hi, $1_1, $1$hi, r, r$hi) { $0 = $0 | 0; + $0$hi = $0$hi | 0; $1_1 = $1_1 | 0; - $2_1 = $2_1 | 0; - $3 = $3 | 0; - $4 = $4 | 0; - $5 = $5 | 0; - var $6 = 0; - $6 = $0 + $2_1 | 0; - $0 = $1_1 + $3 | 0; - if ($6 >>> 0 < $2_1 >>> 0) { - $0 = $0 + 1 | 0 + $1$hi = $1$hi | 0; + r = r | 0; + r$hi = r$hi | 0; + var i64toi32_i32$5 = 0, i64toi32_i32$3 = 0, i64toi32_i32$4 = 0, $5$hi = 0; + i64toi32_i32$3 = $1_1; + i64toi32_i32$4 = $0 + i64toi32_i32$3 | 0; + i64toi32_i32$5 = $0$hi + $1$hi | 0; + if (i64toi32_i32$4 >>> 0 < i64toi32_i32$3 >>> 0) { + i64toi32_i32$5 = i64toi32_i32$5 + 1 | 0 } - $2_1 = $4; - return ($6 | 0) == ($2_1 | 0) & ($0 | 0) == ($5 | 0) | 0 | 0; + $5$hi = i64toi32_i32$5; + i64toi32_i32$5 = r$hi; + i64toi32_i32$5 = $5$hi; + i64toi32_i32$3 = r; + return (i64toi32_i32$4 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$5 | 0) == (r$hi | 0) | 0 | 0; } - function $2($0, $1_1, $2_1, $3, $4, $5) { + function $2($0, $0$hi, $1_1, $1$hi, r, r$hi) { $0 = $0 | 0; + $0$hi = $0$hi | 0; $1_1 = $1_1 | 0; - $2_1 = $2_1 | 0; - $3 = $3 | 0; - $4 = $4 | 0; - $5 = $5 | 0; - var $6 = 0; - $6 = $0; - $0 = ($6 >>> 0 < $2_1 >>> 0) + $3 | 0; - $0 = $1_1 - $0 | 0; - $1_1 = $6 - $2_1 | 0; - $6 = $5; - $2_1 = $4; - return ($1_1 | 0) == ($2_1 | 0) & ($0 | 0) == ($6 | 0) | 0 | 0; + $1$hi = $1$hi | 0; + r = r | 0; + r$hi = r$hi | 0; + var i64toi32_i32$5 = 0, i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$3 = 0, $5$hi = 0; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$0 = $1$hi; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$2 = $0; + i64toi32_i32$3 = $1_1; + i64toi32_i32$5 = (i64toi32_i32$2 >>> 0 < i64toi32_i32$3 >>> 0) + $1$hi | 0; + i64toi32_i32$5 = i64toi32_i32$0 - i64toi32_i32$5 | 0; + $5$hi = i64toi32_i32$5; + i64toi32_i32$5 = r$hi; + i64toi32_i32$5 = $5$hi; + i64toi32_i32$0 = i64toi32_i32$2 - i64toi32_i32$3 | 0; + i64toi32_i32$2 = r$hi; + i64toi32_i32$3 = r; + return (i64toi32_i32$0 | 0) == (i64toi32_i32$3 | 0) & (i64toi32_i32$5 | 0) == (i64toi32_i32$2 | 0) | 0 | 0; } function legalstub$1($0, $1_1, $2_1, $3, $4, $5) { @@ -62,79 +73,92 @@ function asmFunc(global, env, buffer) { $3 = $3 | 0; $4 = $4 | 0; $5 = $5 | 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0; - $6 = 0; - $10 = $0; - $9 = $6; - $6 = 0; - $7 = 32; - $8 = $7 & 31 | 0; - if (32 >>> 0 <= ($7 & 63 | 0) >>> 0) { + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $26 = 0, $27 = 0, $28 = 0, $7 = 0, $7$hi = 0, $10$hi = 0, $11 = 0, $11$hi = 0, $13 = 0, $13$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $19 = 0, $19$hi = 0, $22$hi = 0, $23 = 0, $23$hi = 0; + i64toi32_i32$0 = 0; + $7 = $0; + $7$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $1_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - $0 = $1_1 << $8 | 0; - $7 = 0; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $26 = 0; } } else { { - $0 = ((1 << $8 | 0) - 1 | 0) & ($1_1 >>> (32 - $8 | 0) | 0) | 0 | ($6 << $8 | 0) | 0; - $7 = $1_1 << $8 | 0; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $26 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $1_1 = $0; - $0 = $9; - $6 = $10; - $1_1 = $0 | $1_1 | 0; - $11 = $6 | $7 | 0; - $10 = $1_1; - $1_1 = 0; - $9 = $1_1; - $1_1 = 0; - $0 = $3; - $7 = 32; - $8 = $7 & 31 | 0; - if (32 >>> 0 <= ($7 & 63 | 0) >>> 0) { + $10$hi = i64toi32_i32$1; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$0 = $7; + i64toi32_i32$2 = $10$hi; + i64toi32_i32$3 = $26; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $11 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + $11$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $13 = $2_1; + $13$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = $3; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - $6 = $0 << $8 | 0; - $7 = 0; + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + $27 = 0; } } else { { - $6 = ((1 << $8 | 0) - 1 | 0) & ($0 >>> (32 - $8 | 0) | 0) | 0 | ($1_1 << $8 | 0) | 0; - $7 = $0 << $8 | 0; + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $27 = i64toi32_i32$1 << i64toi32_i32$4 | 0; } } - $0 = $6; - $6 = $9; - $1_1 = $2_1; - $0 = $6 | $0 | 0; - $9 = $1_1 | $7 | 0; - $2_1 = $0; - $0 = 0; - $3 = $0; - $0 = 0; - $6 = $5; - $7 = 32; - $8 = $7 & 31 | 0; - if (32 >>> 0 <= ($7 & 63 | 0) >>> 0) { + $16$hi = i64toi32_i32$0; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$2 = $13; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$3 = $27; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $17 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $17$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $19 = $4; + $19$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = $5; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - $1_1 = $6 << $8 | 0; - $7 = 0; + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $28 = 0; } } else { { - $1_1 = ((1 << $8 | 0) - 1 | 0) & ($6 >>> (32 - $8 | 0) | 0) | 0 | ($0 << $8 | 0) | 0; - $7 = $6 << $8 | 0; + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $28 = i64toi32_i32$0 << i64toi32_i32$4 | 0; } } - $6 = $1_1; - $1_1 = $3; - $0 = $4; - $6 = $1_1 | $6 | 0; - $3 = $0 | $7 | 0; - $1_1 = $6; - $6 = $10; - $0 = $2_1; - return $1($11 | 0, $6 | 0, $9 | 0, $0 | 0, $3 | 0, $1_1 | 0) | 0 | 0; + $22$hi = i64toi32_i32$2; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$1 = $19; + i64toi32_i32$0 = $22$hi; + i64toi32_i32$3 = $28; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $23 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $23$hi = i64toi32_i32$0; + i64toi32_i32$0 = $11$hi; + i64toi32_i32$1 = $17$hi; + i64toi32_i32$2 = $23$hi; + return $1($11 | 0, i64toi32_i32$0 | 0, $17 | 0, i64toi32_i32$1 | 0, $23 | 0, i64toi32_i32$2 | 0) | 0 | 0; } function legalstub$2($0, $1_1, $2_1, $3, $4, $5) { @@ -144,79 +168,92 @@ function asmFunc(global, env, buffer) { $3 = $3 | 0; $4 = $4 | 0; $5 = $5 | 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $10 = 0, $11 = 0; - $6 = 0; - $10 = $0; - $9 = $6; - $6 = 0; - $7 = 32; - $8 = $7 & 31 | 0; - if (32 >>> 0 <= ($7 & 63 | 0) >>> 0) { + var i64toi32_i32$0 = 0, i64toi32_i32$2 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $26 = 0, $27 = 0, $28 = 0, $7 = 0, $7$hi = 0, $10$hi = 0, $11 = 0, $11$hi = 0, $13 = 0, $13$hi = 0, $16$hi = 0, $17 = 0, $17$hi = 0, $19 = 0, $19$hi = 0, $22$hi = 0, $23 = 0, $23$hi = 0; + i64toi32_i32$0 = 0; + $7 = $0; + $7$hi = i64toi32_i32$0; + i64toi32_i32$0 = 0; + i64toi32_i32$2 = $1_1; + i64toi32_i32$1 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - $0 = $1_1 << $8 | 0; - $7 = 0; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $26 = 0; } } else { { - $0 = ((1 << $8 | 0) - 1 | 0) & ($1_1 >>> (32 - $8 | 0) | 0) | 0 | ($6 << $8 | 0) | 0; - $7 = $1_1 << $8 | 0; + i64toi32_i32$1 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$2 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$0 << i64toi32_i32$4 | 0) | 0; + $26 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $1_1 = $0; - $0 = $9; - $6 = $10; - $1_1 = $0 | $1_1 | 0; - $11 = $6 | $7 | 0; - $10 = $1_1; - $1_1 = 0; - $9 = $1_1; - $1_1 = 0; - $0 = $3; - $7 = 32; - $8 = $7 & 31 | 0; - if (32 >>> 0 <= ($7 & 63 | 0) >>> 0) { + $10$hi = i64toi32_i32$1; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$0 = $7; + i64toi32_i32$2 = $10$hi; + i64toi32_i32$3 = $26; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $11 = i64toi32_i32$0 | i64toi32_i32$3 | 0; + $11$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + $13 = $2_1; + $13$hi = i64toi32_i32$2; + i64toi32_i32$2 = 0; + i64toi32_i32$1 = $3; + i64toi32_i32$0 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - $6 = $0 << $8 | 0; - $7 = 0; + i64toi32_i32$0 = i64toi32_i32$1 << i64toi32_i32$4 | 0; + $27 = 0; } } else { { - $6 = ((1 << $8 | 0) - 1 | 0) & ($0 >>> (32 - $8 | 0) | 0) | 0 | ($1_1 << $8 | 0) | 0; - $7 = $0 << $8 | 0; + i64toi32_i32$0 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$1 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$2 << i64toi32_i32$4 | 0) | 0; + $27 = i64toi32_i32$1 << i64toi32_i32$4 | 0; } } - $0 = $6; - $6 = $9; - $1_1 = $2_1; - $0 = $6 | $0 | 0; - $9 = $1_1 | $7 | 0; - $2_1 = $0; - $0 = 0; - $3 = $0; - $0 = 0; - $6 = $5; - $7 = 32; - $8 = $7 & 31 | 0; - if (32 >>> 0 <= ($7 & 63 | 0) >>> 0) { + $16$hi = i64toi32_i32$0; + i64toi32_i32$0 = $13$hi; + i64toi32_i32$2 = $13; + i64toi32_i32$1 = $16$hi; + i64toi32_i32$3 = $27; + i64toi32_i32$1 = i64toi32_i32$0 | i64toi32_i32$1 | 0; + $17 = i64toi32_i32$2 | i64toi32_i32$3 | 0; + $17$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + $19 = $4; + $19$hi = i64toi32_i32$1; + i64toi32_i32$1 = 0; + i64toi32_i32$0 = $5; + i64toi32_i32$2 = 0; + i64toi32_i32$3 = 32; + i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; + if (32 >>> 0 <= (i64toi32_i32$3 & 63 | 0) >>> 0) { { - $1_1 = $6 << $8 | 0; - $7 = 0; + i64toi32_i32$2 = i64toi32_i32$0 << i64toi32_i32$4 | 0; + $28 = 0; } } else { { - $1_1 = ((1 << $8 | 0) - 1 | 0) & ($6 >>> (32 - $8 | 0) | 0) | 0 | ($0 << $8 | 0) | 0; - $7 = $6 << $8 | 0; + i64toi32_i32$2 = ((1 << i64toi32_i32$4 | 0) - 1 | 0) & (i64toi32_i32$0 >>> (32 - i64toi32_i32$4 | 0) | 0) | 0 | (i64toi32_i32$1 << i64toi32_i32$4 | 0) | 0; + $28 = i64toi32_i32$0 << i64toi32_i32$4 | 0; } } - $6 = $1_1; - $1_1 = $3; - $0 = $4; - $6 = $1_1 | $6 | 0; - $3 = $0 | $7 | 0; - $1_1 = $6; - $6 = $10; - $0 = $2_1; - return $2($11 | 0, $6 | 0, $9 | 0, $0 | 0, $3 | 0, $1_1 | 0) | 0 | 0; + $22$hi = i64toi32_i32$2; + i64toi32_i32$2 = $19$hi; + i64toi32_i32$1 = $19; + i64toi32_i32$0 = $22$hi; + i64toi32_i32$3 = $28; + i64toi32_i32$0 = i64toi32_i32$2 | i64toi32_i32$0 | 0; + $23 = i64toi32_i32$1 | i64toi32_i32$3 | 0; + $23$hi = i64toi32_i32$0; + i64toi32_i32$0 = $11$hi; + i64toi32_i32$1 = $17$hi; + i64toi32_i32$2 = $23$hi; + return $2($11 | 0, i64toi32_i32$0 | 0, $17 | 0, i64toi32_i32$1 | 0, $23 | 0, i64toi32_i32$2 | 0) | 0 | 0; } var FUNCTION_TABLE = []; |