summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2023-09-14 18:45:13 -0700
committerGitHub <noreply@github.com>2023-09-14 18:45:13 -0700
commit16a59938563c93d8459bf36679c83497aeba7cc7 (patch)
tree435659a8cfb409992aeab4cf67623f4c15b14556 /test
parentb2e92275581f0f57f3f8cf82a459e9a28456a383 (diff)
downloadbinaryen-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.fromBinary11
-rw-r--r--test/exception-handling.wast.fromBinary.noDebugInfo11
-rw-r--r--test/lit/multivalue.wast86
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)