diff options
author | Alon Zakai <azakai@google.com> | 2023-08-09 10:31:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-09 10:31:48 -0700 |
commit | d0bdf202463323a0b9f3be95fe2c64765a84a4b7 (patch) | |
tree | c4142a82fe8d1fe2451745b5068cadae4e063af9 /test/wasm2js/int_exprs.2asm.js | |
parent | 0fc7b883d373924717ceccf71a6a759c97a8fb08 (diff) | |
download | binaryen-d0bdf202463323a0b9f3be95fe2c64765a84a4b7.tar.gz binaryen-d0bdf202463323a0b9f3be95fe2c64765a84a4b7.tar.bz2 binaryen-d0bdf202463323a0b9f3be95fe2c64765a84a4b7.zip |
LinearExecutionWalker: Optionally connect blocks for Br and BrOn (#5869)
Br and BrOn can consider the code before and after them connected if it might
be reached (which is the case if the Br has a condition, which BrOn always has).
The wasm2js changes may look a little odd as some of them have this:
i64toi32_i32$1 = i64toi32_i32$2;
i64toi32_i32$1 = i64toi32_i32$2;
I looked into that and the reason is that those outputs are not optimized, and
also even in unoptimized wasm2js we do run simplify-locals once (to try to
reduce the downsides of flatten). As a result, this PR makes a difference there,
and that difference can lead to such odd duplicated code after other operations.
However, there are no changes to optimized wasm2js outputs, so there is no
actual problem.
Followup to #5860.
Diffstat (limited to 'test/wasm2js/int_exprs.2asm.js')
-rw-r--r-- | test/wasm2js/int_exprs.2asm.js | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/test/wasm2js/int_exprs.2asm.js b/test/wasm2js/int_exprs.2asm.js index 041e556b7..824e3313c 100644 --- a/test/wasm2js/int_exprs.2asm.js +++ b/test/wasm2js/int_exprs.2asm.js @@ -1154,8 +1154,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -1185,7 +1184,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -1886,8 +1886,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -1917,7 +1916,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -2582,8 +2582,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -2613,7 +2612,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -3378,8 +3378,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -3409,7 +3408,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -4064,8 +4064,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -4095,7 +4094,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -4694,8 +4694,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -4725,7 +4724,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -5392,8 +5392,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -5423,7 +5422,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -6108,8 +6108,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -6139,7 +6138,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -6824,8 +6824,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -6855,7 +6854,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -7540,8 +7540,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -7571,7 +7570,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -8236,8 +8236,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -8267,7 +8266,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -8934,8 +8934,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -8965,7 +8964,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -9632,8 +9632,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -9663,7 +9662,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; @@ -10304,8 +10304,7 @@ function asmFunc(imports) { if (!var$3) { break label$11 } - i64toi32_i32$1 = var$1$hi; - i64toi32_i32$0 = var$1; + i64toi32_i32$0 = var$3; i64toi32_i32$2 = 0; i64toi32_i32$3 = 32; i64toi32_i32$4 = i64toi32_i32$3 & 31 | 0; @@ -10335,7 +10334,8 @@ function asmFunc(imports) { } i64toi32_i32$1 = var$0$hi; var$2 = var$0; - i64toi32_i32$1 = var$1$hi; + i64toi32_i32$1 = i64toi32_i32$2; + i64toi32_i32$1 = i64toi32_i32$2; var$3 = var$1; var$2 = (var$2 >>> 0) / (var$3 >>> 0) | 0; i64toi32_i32$1 = 0; |