summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/lit/passes/optimize-instructions-call_ref.wast25
1 files changed, 23 insertions, 2 deletions
diff --git a/test/lit/passes/optimize-instructions-call_ref.wast b/test/lit/passes/optimize-instructions-call_ref.wast
index 94c61433f..91aba5fed 100644
--- a/test/lit/passes/optimize-instructions-call_ref.wast
+++ b/test/lit/passes/optimize-instructions-call_ref.wast
@@ -44,13 +44,16 @@
)
;; CHECK: (func $call_ref-to-direct (type $i32_i32_=>_none) (param $x i32) (param $y i32)
+ ;; CHECK-NEXT: ;;@ file.cpp:10:1
;; CHECK-NEXT: (call $foo
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
(func $call_ref-to-direct (param $x i32) (param $y i32)
- ;; This call_ref should become a direct call.
+ ;; This call_ref should become a direct call. The debuginfo should transfer as
+ ;; well.
+ ;;@ file.cpp:10:1
(call_ref $i32_i32_=>_none
(local.get $x)
(local.get $y)
@@ -253,29 +256,42 @@
;; CHECK: (func $call_ref-to-select (type $5) (param $x i32) (param $y i32) (param $z i32) (param $f (ref $i32_i32_=>_none))
;; CHECK-NEXT: (local $4 i32)
;; CHECK-NEXT: (local $5 i32)
+ ;; CHECK-NEXT: ;;@ file.cpp:20:2
;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (local.set $4
+ ;; CHECK-NEXT: ;;@ file.cpp:20:2
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (local.set $5
+ ;; CHECK-NEXT: ;;@ file.cpp:20:2
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (if
+ ;; CHECK-NEXT: ;;@ file.cpp:20:2
;; CHECK-NEXT: (local.get $z)
;; CHECK-NEXT: (then
;; CHECK-NEXT: (call $foo
+ ;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (local.get $4)
+ ;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (else
+ ;; CHECK-NEXT: ;;@ file.cpp:20:2
;; CHECK-NEXT: (call $bar
+ ;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (local.get $4)
+ ;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: ;;@ file.cpp:30:3
;; CHECK-NEXT: (call_ref $i32_i32_=>_none
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
@@ -287,7 +303,11 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
(func $call_ref-to-select (param $x i32) (param $y i32) (param $z i32) (param $f (ref $i32_i32_=>_none))
- ;; This call_ref should become an if over two direct calls.
+ ;; This call_ref should become an if over two direct calls. The debuginfo
+ ;; should transfer as well to the two new calls (and some of the new helper
+ ;; code that is generated, but the critical part is the call_ref is being
+ ;; replaced by two calls, which should have the same info).
+ ;;@ file.cpp:20:2
(call_ref $i32_i32_=>_none
(local.get $x)
(local.get $y)
@@ -299,6 +319,7 @@
)
;; But here one arm is not constant, so we do not optimize.
+ ;;@ file.cpp:30:3
(call_ref $i32_i32_=>_none
(local.get $x)
(local.get $y)