diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/lit/passes/vacuum-gc.wast | 51 | ||||
-rw-r--r-- | test/lit/passes/vacuum-tnh.wast | 17 |
2 files changed, 68 insertions, 0 deletions
diff --git a/test/lit/passes/vacuum-gc.wast b/test/lit/passes/vacuum-gc.wast new file mode 100644 index 000000000..8ca40bee8 --- /dev/null +++ b/test/lit/passes/vacuum-gc.wast @@ -0,0 +1,51 @@ +;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited. +;; RUN: wasm-opt %s --vacuum -all -S -o - | filecheck %s + +(module + ;; CHECK: (func $drop-ref-as (param $x anyref) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.as_non_null + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.as_func + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.as_data + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.as_i31 + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + (func $drop-ref-as (param $x anyref) + ;; Without -tnh, we must assume all ref_as* can have a trap effect, and so + ;; we cannot remove anything here. + (drop + (ref.as_non_null + (local.get $x) + ) + ) + (drop + (ref.as_func + (local.get $x) + ) + ) + (drop + (ref.as_data + (local.get $x) + ) + ) + (drop + (ref.as_i31 + (local.get $x) + ) + ) + ) +) diff --git a/test/lit/passes/vacuum-tnh.wast b/test/lit/passes/vacuum-tnh.wast index 4820a55bc..83cb298c2 100644 --- a/test/lit/passes/vacuum-tnh.wast +++ b/test/lit/passes/vacuum-tnh.wast @@ -24,6 +24,23 @@ ) ) + ;; Other ref.as* as well. + (drop + (ref.as_func + (local.get $y) + ) + ) + (drop + (ref.as_data + (local.get $y) + ) + ) + (drop + (ref.as_i31 + (local.get $y) + ) + ) + ;; Ignore unreachable code. (drop (unreachable) |