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/set_local.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/set_local.2asm.js')
-rw-r--r-- | test/wasm2js/set_local.2asm.js | 215 |
1 files changed, 123 insertions, 92 deletions
diff --git a/test/wasm2js/set_local.2asm.js b/test/wasm2js/set_local.2asm.js index 9a3788536..eb5a4485e 100644 --- a/test/wasm2js/set_local.2asm.js +++ b/test/wasm2js/set_local.2asm.js @@ -44,9 +44,9 @@ function asmFunc(global, env, buffer) { $0_1 = $0_1 | 0; } - function $5($0_1, $1_1) { + function $5($0_1, $0$hi) { $0_1 = $0_1 | 0; - $1_1 = $1_1 | 0; + $0$hi = $0$hi | 0; } function $6($0_1) { @@ -57,72 +57,86 @@ function asmFunc(global, env, buffer) { $0_1 = +$0_1; } - function $8($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + function $8($0_1, $0$hi, $1_1, $2_1, $3_1, $4_1) { $0_1 = $0_1 | 0; - $1_1 = $1_1 | 0; - $2_1 = Math_fround($2_1); - $3_1 = +$3_1; + $0$hi = $0$hi | 0; + $1_1 = Math_fround($1_1); + $2_1 = +$2_1; + $3_1 = $3_1 | 0; $4_1 = $4_1 | 0; - $5_1 = $5_1 | 0; + var i64toi32_i32$0 = 0; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = 0; + i64toi32_i32$0 = 0; } - function $9($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { + function $9($0_1, $0$hi, $1_1, $2_1, $3_1, $4_1) { $0_1 = $0_1 | 0; - $1_1 = $1_1 | 0; - $2_1 = Math_fround($2_1); - $3_1 = +$3_1; + $0$hi = $0$hi | 0; + $1_1 = Math_fround($1_1); + $2_1 = +$2_1; + $3_1 = $3_1 | 0; $4_1 = $4_1 | 0; - $5_1 = $5_1 | 0; - var $6_1 = 0.0, $7_1 = 0.0, $8_1 = 0, $9_1 = 0; - $4_1 = 0; - $5_1 = $4_1; - $4_1 = $1_1; - $6_1 = +($0_1 >>> 0) + 4294967296.0 * +($4_1 >>> 0); - $4_1 = $5_1; - $0_1 = 6; - $7_1 = +($0_1 >>> 0) + 4294967296.0 * +($4_1 >>> 0); - $4_1 = $8_1; - $0_1 = $9_1; - $3_1 = $6_1 + (+Math_fround(-.30000001192092896) + ($3_1 + (+(40 >>> 0) + (+(-7 | 0) + (+Math_fround(5.5) + ($7_1 + (+($0_1 >>> 0) + 4294967296.0 * +($4_1 >>> 0) + 8.0))))))); - if (Math_abs($3_1) >= 1.0) { - if ($3_1 > 0.0) { - $4_1 = ~~Math_min(Math_floor($3_1 / 4294967296.0), 4294967296.0 - 1.0) >>> 0 - } else { - $4_1 = ~~Math_ceil(($3_1 - +(~~$3_1 >>> 0 >>> 0)) / 4294967296.0) >>> 0 + var i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0.0, $14 = 0, $15 = 0, $6$hi = 0, $10 = 0.0, $21 = 0.0, $7$hi = 0, $7_1 = 0; + i64toi32_i32$0 = 0; + $6$hi = i64toi32_i32$0; + i64toi32_i32$0 = $0$hi; + i64toi32_i32$1 = $0_1; + $10 = +(i64toi32_i32$1 >>> 0) + 4294967296.0 * +(i64toi32_i32$0 >>> 0); + i64toi32_i32$0 = $6$hi; + i64toi32_i32$1 = 6; + $21 = +(i64toi32_i32$1 >>> 0) + 4294967296.0 * +(i64toi32_i32$0 >>> 0); + i64toi32_i32$0 = $7$hi; + i64toi32_i32$1 = $7_1; + i64toi32_i32$3 = $10 + (+Math_fround(-.30000001192092896) + ($2_1 + (+(40 >>> 0) + (+(-7 | 0) + (+Math_fround(5.5) + ($21 + (+(i64toi32_i32$1 >>> 0) + 4294967296.0 * +(i64toi32_i32$0 >>> 0) + 8.0))))))); + if (Math_abs(i64toi32_i32$3) >= 1.0) { + { + if (i64toi32_i32$3 > 0.0) { + $14 = ~~Math_min(Math_floor(i64toi32_i32$3 / 4294967296.0), 4294967296.0 - 1.0) >>> 0 + } else { + $14 = ~~Math_ceil((i64toi32_i32$3 - +(~~i64toi32_i32$3 >>> 0 >>> 0)) / 4294967296.0) >>> 0 + } + $15 = $14; } } else { - $4_1 = 0 + $15 = 0 } - $0_1 = ~~$3_1 >>> 0; - i64toi32_i32$HIGH_BITS = $4_1; - return $0_1 | 0; + i64toi32_i32$0 = $15; + i64toi32_i32$1 = ~~i64toi32_i32$3 >>> 0; + i64toi32_i32$HIGH_BITS = i64toi32_i32$0; + return i64toi32_i32$1 | 0; } function legalstub$5($0_1, $1_1) { $0_1 = $0_1 | 0; $1_1 = $1_1 | 0; - var $2_1 = 0, $3_1 = 0, $4_1 = 0, $5_1 = 0, $6_1 = 0; - $2_1 = 0; - $6_1 = $2_1; - $2_1 = 0; - $3_1 = 32; - $4_1 = $3_1 & 31 | 0; - if (32 >>> 0 <= ($3_1 & 63 | 0) >>> 0) { + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $10 = 0, $3_1 = 0, $3$hi = 0, $6$hi = 0; + i64toi32_i32$0 = 0; + $3_1 = $0_1; + $3$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) { { - $5_1 = $1_1 << $4_1 | 0; - $3_1 = 0; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $10 = 0; } } else { { - $5_1 = ((1 << $4_1 | 0) - 1 | 0) & ($1_1 >>> (32 - $4_1 | 0) | 0) | 0 | ($2_1 << $4_1 | 0) | 0; - $3_1 = $1_1 << $4_1 | 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; + $10 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $1_1 = $5_1; - $5_1 = $6_1; - $2_1 = $0_1; - $1_1 = $5_1 | $1_1 | 0; - $5($2_1 | $3_1 | 0 | 0, $1_1 | 0); + $6$hi = i64toi32_i32$1; + i64toi32_i32$1 = $3$hi; + i64toi32_i32$0 = $3_1; + i64toi32_i32$2 = $6$hi; + i64toi32_i32$3 = $10; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $5(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0); } function legalstub$8($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { @@ -132,28 +146,33 @@ function asmFunc(global, env, buffer) { $3_1 = +$3_1; $4_1 = $4_1 | 0; $5_1 = $5_1 | 0; - var $6_1 = 0, $7_1 = 0, $8_1 = 0, $9_1 = 0, $10 = 0; - $6_1 = 0; - $10 = $6_1; - $6_1 = 0; - $7_1 = 32; - $8_1 = $7_1 & 31 | 0; - if (32 >>> 0 <= ($7_1 & 63 | 0) >>> 0) { + var i64toi32_i32$2 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$4 = 0, i64toi32_i32$3 = 0, $14 = 0, $7_1 = 0, $7$hi = 0, $10$hi = 0; + i64toi32_i32$0 = 0; + $7_1 = $0_1; + $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) { { - $9_1 = $1_1 << $8_1 | 0; - $7_1 = 0; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $14 = 0; } } else { { - $9_1 = ((1 << $8_1 | 0) - 1 | 0) & ($1_1 >>> (32 - $8_1 | 0) | 0) | 0 | ($6_1 << $8_1 | 0) | 0; - $7_1 = $1_1 << $8_1 | 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; + $14 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $1_1 = $9_1; - $9_1 = $10; - $6_1 = $0_1; - $1_1 = $9_1 | $1_1 | 0; - $8($6_1 | $7_1 | 0 | 0, $1_1 | 0, Math_fround($2_1), +$3_1, $4_1 | 0, $5_1 | 0); + $10$hi = i64toi32_i32$1; + i64toi32_i32$1 = $7$hi; + i64toi32_i32$0 = $7_1; + i64toi32_i32$2 = $10$hi; + i64toi32_i32$3 = $14; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + $8(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0, Math_fround($2_1), +$3_1, $4_1 | 0, $5_1 | 0); } function legalstub$9($0_1, $1_1, $2_1, $3_1, $4_1, $5_1) { @@ -163,42 +182,54 @@ function asmFunc(global, env, buffer) { $3_1 = +$3_1; $4_1 = $4_1 | 0; $5_1 = $5_1 | 0; - var $6_1 = 0, $7_1 = 0, $8_1 = 0, $9_1 = 0, $10 = 0; - $7_1 = 0; - $9_1 = $0_1; - $10 = $7_1; - $7_1 = 0; - $8_1 = 32; - $6_1 = $8_1 & 31 | 0; - if (32 >>> 0 <= ($8_1 & 63 | 0) >>> 0) { + var i64toi32_i32$2 = 0, i64toi32_i32$4 = 0, i64toi32_i32$0 = 0, i64toi32_i32$1 = 0, i64toi32_i32$3 = 0, $16 = 0, $17 = 0, $8_1 = 0, $8$hi = 0, $11$hi = 0, $6_1 = 0, $6$hi = 0; + i64toi32_i32$0 = 0; + $8_1 = $0_1; + $8$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_1 << $6_1 | 0; - $8_1 = 0; + i64toi32_i32$1 = i64toi32_i32$2 << i64toi32_i32$4 | 0; + $16 = 0; } } else { { - $0_1 = ((1 << $6_1 | 0) - 1 | 0) & ($1_1 >>> (32 - $6_1 | 0) | 0) | 0 | ($7_1 << $6_1 | 0) | 0; - $8_1 = $1_1 << $6_1 | 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; + $16 = i64toi32_i32$2 << i64toi32_i32$4 | 0; } } - $1_1 = $0_1; - $0_1 = $10; - $7_1 = $9_1; - $1_1 = $0_1 | $1_1 | 0; - $1_1 = $9($7_1 | $8_1 | 0 | 0, $1_1 | 0, Math_fround($2_1), +$3_1, $4_1 | 0, $5_1 | 0) | 0; - $7_1 = i64toi32_i32$HIGH_BITS; - $5_1 = $1_1; - $4_1 = $7_1; - $0_1 = $1_1; - $8_1 = 32; - $6_1 = $8_1 & 31 | 0; - if (32 >>> 0 <= ($8_1 & 63 | 0) >>> 0) { - $0_1 = $7_1 >>> $6_1 | 0 + $11$hi = i64toi32_i32$1; + i64toi32_i32$1 = $8$hi; + i64toi32_i32$0 = $8_1; + i64toi32_i32$2 = $11$hi; + i64toi32_i32$3 = $16; + i64toi32_i32$2 = i64toi32_i32$1 | i64toi32_i32$2 | 0; + i64toi32_i32$2 = $9(i64toi32_i32$0 | i64toi32_i32$3 | 0 | 0, i64toi32_i32$2 | 0, Math_fround($2_1), +$3_1, $4_1 | 0, $5_1 | 0) | 0; + i64toi32_i32$0 = i64toi32_i32$HIGH_BITS; + $6_1 = i64toi32_i32$2; + $6$hi = i64toi32_i32$0; + i64toi32_i32$1 = i64toi32_i32$2; + 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) { + { + i64toi32_i32$2 = 0; + $17 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + } } else { - $0_1 = (((1 << $6_1 | 0) - 1 | 0) & $7_1 | 0) << (32 - $6_1 | 0) | 0 | ($0_1 >>> $6_1 | 0) | 0 + { + i64toi32_i32$2 = i64toi32_i32$0 >>> i64toi32_i32$4 | 0; + $17 = (((1 << i64toi32_i32$4 | 0) - 1 | 0) & i64toi32_i32$0 | 0) << (32 - i64toi32_i32$4 | 0) | 0 | (i64toi32_i32$1 >>> i64toi32_i32$4 | 0) | 0; + } } - setTempRet0($0_1 | 0); - return $5_1 | 0; + setTempRet0($17 | 0); + i64toi32_i32$2 = $6$hi; + return $6_1 | 0; } var FUNCTION_TABLE = []; |