diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/lit/help/wasm-opt.test | 9 | ||||
-rw-r--r-- | test/lit/passes/experimental-new_eh.wast | 28 |
2 files changed, 37 insertions, 0 deletions
diff --git a/test/lit/help/wasm-opt.test b/test/lit/help/wasm-opt.test index 5a207a1b0..88fc2448a 100644 --- a/test/lit/help/wasm-opt.test +++ b/test/lit/help/wasm-opt.test @@ -79,6 +79,15 @@ ;; CHECK-NEXT: --new-wat-parser Use the experimental new WAT ;; CHECK-NEXT: parser ;; CHECK-NEXT: +;; CHECK-NEXT: --experimental-new-eh After running all requested +;; CHECK-NEXT: transformations / optimizations, +;; CHECK-NEXT: translate the instruction to use +;; CHECK-NEXT: the new EH instructions at the +;; CHECK-NEXT: end. Depending on the +;; CHECK-NEXT: optimization level specified, +;; CHECK-NEXT: this may do some more +;; CHECK-NEXT: post-translation optimizations. +;; CHECK-NEXT: ;; CHECK-NEXT: ;; CHECK-NEXT: Optimization passes: ;; CHECK-NEXT: -------------------- diff --git a/test/lit/passes/experimental-new_eh.wast b/test/lit/passes/experimental-new_eh.wast new file mode 100644 index 000000000..ee6624676 --- /dev/null +++ b/test/lit/passes/experimental-new_eh.wast @@ -0,0 +1,28 @@ +;; When given alone, --experimental-new-eh just runs --translate-to-new-eh +;; RUN: wasm-opt %s -all --translate-to-new-eh -S -o %a.wasm +;; RUN: wasm-opt %s -all --experimental-new-eh -S -o %b.wasm +;; RUN: diff %a.wasm %b.wasm + +;; When given with other flags, --experimental-new-eh runs the translator after +;; running other passes. If --optimize-level >=3, --experimenal-new-eh also runs +;; StackIR (+ local2stack) optimization. So running '-O --experimental-new-eh' +;; should be the same as running all these passes separately. +;; RUN: wasm-opt %s -all -O --translate-to-new-eh --optimize-level=3 --generate-stack-ir --optimize-stack-ir -o %a.wasm +;; RUN: wasm-opt %s -all -O --experimental-new-eh -o %b.wasm +;; RUN: diff %a.wasm %b.wasm + +(module + (import "env" "foo" (func $foo)) + (start $test) + (func $test + (try $l + (do + (call $foo) + ) + (catch_all + (call $foo) + (rethrow $l) + ) + ) + ) +) |