diff options
author | Thomas Lively <tlively@google.com> | 2023-09-14 18:45:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-14 18:45:13 -0700 |
commit | 16a59938563c93d8459bf36679c83497aeba7cc7 (patch) | |
tree | 435659a8cfb409992aeab4cf67623f4c15b14556 /test | |
parent | b2e92275581f0f57f3f8cf82a459e9a28456a383 (diff) | |
download | binaryen-16a59938563c93d8459bf36679c83497aeba7cc7.tar.gz binaryen-16a59938563c93d8459bf36679c83497aeba7cc7.tar.bz2 binaryen-16a59938563c93d8459bf36679c83497aeba7cc7.zip |
Revert "Optimize tuple.extract of gets in BinaryInstWriter (#5941)" (#5945)
This reverts commit 56ce1eaba7f500b572bcfe06e3248372e9672322. The binary writer
optimization is not always correct when stack IR optimizations have run. Revert
the change until we can fix it.
Diffstat (limited to 'test')
-rw-r--r-- | test/exception-handling.wast.fromBinary | 11 | ||||
-rw-r--r-- | test/exception-handling.wast.fromBinary.noDebugInfo | 11 | ||||
-rw-r--r-- | test/lit/multivalue.wast | 86 |
3 files changed, 102 insertions, 6 deletions
diff --git a/test/exception-handling.wast.fromBinary b/test/exception-handling.wast.fromBinary index 44bd2e5c3..d5cc2c179 100644 --- a/test/exception-handling.wast.fromBinary +++ b/test/exception-handling.wast.fromBinary @@ -20,6 +20,7 @@ (local $1 i64) (local $2 (i32 i64)) (local $3 i32) + (local $4 i32) (try $label$3 (do (throw $e-i32 @@ -59,7 +60,15 @@ ) ) (drop - (local.get $x) + (block (result i32) + (local.set $4 + (local.get $x) + ) + (drop + (local.get $1) + ) + (local.get $4) + ) ) ) ) diff --git a/test/exception-handling.wast.fromBinary.noDebugInfo b/test/exception-handling.wast.fromBinary.noDebugInfo index 27202e8a6..5c527119e 100644 --- a/test/exception-handling.wast.fromBinary.noDebugInfo +++ b/test/exception-handling.wast.fromBinary.noDebugInfo @@ -20,6 +20,7 @@ (local $1 i64) (local $2 (i32 i64)) (local $3 i32) + (local $4 i32) (try $label$3 (do (throw $tag$0 @@ -59,7 +60,15 @@ ) ) (drop - (local.get $0) + (block (result i32) + (local.set $4 + (local.get $0) + ) + (drop + (local.get $1) + ) + (local.get $4) + ) ) ) ) diff --git a/test/lit/multivalue.wast b/test/lit/multivalue.wast index 0d52f5382..f75182ca4 100644 --- a/test/lit/multivalue.wast +++ b/test/lit/multivalue.wast @@ -155,6 +155,13 @@ ;; CHECK-NEXT: (local $5 (i32 i64 f32)) ;; CHECK-NEXT: (local $6 i64) ;; CHECK-NEXT: (local $7 i32) + ;; CHECK-NEXT: (local $8 i64) + ;; CHECK-NEXT: (local $9 i32) + ;; CHECK-NEXT: (local $10 i64) + ;; CHECK-NEXT: (local $11 i32) + ;; CHECK-NEXT: (local $12 i64) + ;; CHECK-NEXT: (local $13 i32) + ;; CHECK-NEXT: (local $14 f32) ;; CHECK-NEXT: (local.set $5 ;; CHECK-NEXT: (call $triple) ;; CHECK-NEXT: ) @@ -183,10 +190,69 @@ ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (block (result i64) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $4 + ;; CHECK-NEXT: (local.get $3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (tuple.make - ;; CHECK-NEXT: (local.get $3) - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: (block (result f32) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (local.get $4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (block (result i64) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $2) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (local.set $13 + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (block (result i64) + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $reverse (result f32 i64 i32) @@ -230,6 +296,7 @@ ;; CHECK: (func $global (type $0) (result i32 i64) ;; CHECK-NEXT: (local $0 i64) ;; CHECK-NEXT: (local $1 i32) + ;; CHECK-NEXT: (local $2 i32) ;; CHECK-NEXT: (global.set $g1 ;; CHECK-NEXT: (block (result i32) ;; CHECK-NEXT: (local.set $1 @@ -242,7 +309,18 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (global.get $g2) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (global.get $g1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (global.get $g2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (tuple.make ;; CHECK-NEXT: (global.get $global$2) |