summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/WebAssembly
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2019-10-09 21:42:08 +0000
committerThomas Lively <tlively@google.com>2019-10-09 21:42:08 +0000
commit00f9e5aa76f4932098da375545ee144d884eced3 (patch)
tree93f1c4c66045344f64c393e2eff419601c61aa3b /llvm/test/CodeGen/WebAssembly
parentffb26d9c7830f0f957caca155c2c56e173043906 (diff)
downloadbcm5719-llvm-00f9e5aa76f4932098da375545ee144d884eced3.tar.gz
bcm5719-llvm-00f9e5aa76f4932098da375545ee144d884eced3.zip
[WebAssembly] Make returns variadic
Summary: This is necessary and sufficient to get simple cases of multiple return working with multivalue enabled. More complex cases will require block and loop signatures to be generalized to potentially be type indices as well. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68684 llvm-svn: 374235
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly')
-rw-r--r--llvm/test/CodeGen/WebAssembly/atomic-fence.mir5
-rw-r--r--llvm/test/CodeGen/WebAssembly/eh-labels.mir2
-rw-r--r--llvm/test/CodeGen/WebAssembly/explicit-locals.mir2
-rw-r--r--llvm/test/CodeGen/WebAssembly/function-info.mir2
-rw-r--r--llvm/test/CodeGen/WebAssembly/llround-conv-i32.ll4
-rw-r--r--llvm/test/CodeGen/WebAssembly/multivalue.ll14
-rw-r--r--llvm/test/CodeGen/WebAssembly/reg-argument.mir10
-rw-r--r--llvm/test/CodeGen/WebAssembly/reg-copy.mir24
8 files changed, 32 insertions, 31 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/atomic-fence.mir b/llvm/test/CodeGen/WebAssembly/atomic-fence.mir
index 46f38a52f30..ea0f3931eb2 100644
--- a/llvm/test/CodeGen/WebAssembly/atomic-fence.mir
+++ b/llvm/test/CodeGen/WebAssembly/atomic-fence.mir
@@ -39,7 +39,7 @@ body: |
COMPILER_FENCE implicit-def $arguments
%2:i32 = ADD_I32 %0:i32, %0:i32, implicit-def $arguments
CALL_VOID @foo, %2:i32, %1:i32, implicit-def $arguments
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
@@ -63,6 +63,5 @@ body: |
ATOMIC_FENCE 0, implicit-def $arguments
%2:i32 = ADD_I32 %0:i32, %0:i32, implicit-def $arguments
CALL_VOID @foo, %2:i32, %1:i32, implicit-def $arguments
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
-
diff --git a/llvm/test/CodeGen/WebAssembly/eh-labels.mir b/llvm/test/CodeGen/WebAssembly/eh-labels.mir
index 015276475cc..ca8378906de 100644
--- a/llvm/test/CodeGen/WebAssembly/eh-labels.mir
+++ b/llvm/test/CodeGen/WebAssembly/eh-labels.mir
@@ -42,5 +42,5 @@ body: |
bb.2:
; predecessors: %bb.0, %bb.1
- RETURN_VOID implicit-def dead $arguments
+ RETURN implicit-def dead $arguments
...
diff --git a/llvm/test/CodeGen/WebAssembly/explicit-locals.mir b/llvm/test/CodeGen/WebAssembly/explicit-locals.mir
index 7718dddb1fd..084766c5573 100644
--- a/llvm/test/CodeGen/WebAssembly/explicit-locals.mir
+++ b/llvm/test/CodeGen/WebAssembly/explicit-locals.mir
@@ -19,5 +19,5 @@ body: |
; CHECK-NOT: dead %{{[0-9]+}}
; CHECK: DROP_I32 killed %{{[0-9]+}}
dead %0:i32 = CONST_I32 0, implicit-def dead $arguments, implicit $sp32, implicit $sp64
- RETURN_VOID implicit-def dead $arguments
+ RETURN implicit-def dead $arguments
...
diff --git a/llvm/test/CodeGen/WebAssembly/function-info.mir b/llvm/test/CodeGen/WebAssembly/function-info.mir
index e40bda5ebff..fd60773c2af 100644
--- a/llvm/test/CodeGen/WebAssembly/function-info.mir
+++ b/llvm/test/CodeGen/WebAssembly/function-info.mir
@@ -8,5 +8,5 @@ liveins:
- { reg: '$arguments' }
body: |
bb.0:
- RETURN_VOID implicit-def dead $arguments
+ RETURN implicit-def dead $arguments
...
diff --git a/llvm/test/CodeGen/WebAssembly/llround-conv-i32.ll b/llvm/test/CodeGen/WebAssembly/llround-conv-i32.ll
index eb2768cb940..5c84b33de78 100644
--- a/llvm/test/CodeGen/WebAssembly/llround-conv-i32.ll
+++ b/llvm/test/CodeGen/WebAssembly/llround-conv-i32.ll
@@ -7,7 +7,7 @@ define i64 @testmsxs_builtin(float %x) {
; CHECK-NEXT: # %bb.0: # %entry
; CHECK-NEXT: local.get 0
; CHECK-NEXT: i64.call llroundf
-; CHECK-NEXT: # fallthrough-return-value
+; CHECK-NEXT: # fallthrough-return
; CHECK-NEXT: end_function
entry:
%0 = tail call i64 @llvm.llround.f32(float %x)
@@ -20,7 +20,7 @@ define i64 @testmsxd_builtin(double %x) {
; CHECK-NEXT: # %bb.0: # %entry
; CHECK-NEXT: local.get 0
; CHECK-NEXT: i64.call llround
-; CHECK-NEXT: # fallthrough-return-value
+; CHECK-NEXT: # fallthrough-return
; CHECK-NEXT: end_function
entry:
%0 = tail call i64 @llvm.llround.f64(double %x)
diff --git a/llvm/test/CodeGen/WebAssembly/multivalue.ll b/llvm/test/CodeGen/WebAssembly/multivalue.ll
index cbf8d4e0a0d..483e45b687a 100644
--- a/llvm/test/CodeGen/WebAssembly/multivalue.ll
+++ b/llvm/test/CodeGen/WebAssembly/multivalue.ll
@@ -9,15 +9,17 @@ target triple = "wasm32-unknown-unknown"
%pair = type { i32, i32 }
%packed_pair = type <{ i32, i32 }>
-; CHECK-LABEL: sret:
-; CHECK-NEXT: sret (i32, i32, i32) -> ()
-define %pair @sret(%pair %p) {
+; CHECK-LABEL: pair_ident:
+; CHECK-NEXT: pair_ident (i32, i32) -> (i32, i32)
+; CHECK-NEXT: return $0, $1{{$}}
+define %pair @pair_ident(%pair %p) {
ret %pair %p
}
-; CHECK-LABEL: packed_sret:
-; CHECK-NEXT: packed_sret (i32, i32, i32) -> ()
-define %packed_pair @packed_sret(%packed_pair %p) {
+; CHECK-LABEL: packed_pair_ident:
+; CHECK-NEXT: packed_pair_ident (i32, i32) -> (i32, i32)
+; CHECK-nEXT: return $0, $1{{$}}
+define %packed_pair @packed_pair_ident(%packed_pair %p) {
ret %packed_pair %p
}
diff --git a/llvm/test/CodeGen/WebAssembly/reg-argument.mir b/llvm/test/CodeGen/WebAssembly/reg-argument.mir
index 70c033f7f8f..1fb62b573df 100644
--- a/llvm/test/CodeGen/WebAssembly/reg-argument.mir
+++ b/llvm/test/CodeGen/WebAssembly/reg-argument.mir
@@ -11,7 +11,7 @@ body: |
bb.0:
%0:i32 = CONST_I32 0, implicit-def $arguments
%1:i32 = ARGUMENT_i32 0, implicit $arguments
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
name: argument_i64
@@ -22,7 +22,7 @@ body: |
bb.0:
%0:i32 = CONST_I32 0, implicit-def $arguments
%1:i64 = ARGUMENT_i64 0, implicit $arguments
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
name: argument_f32
@@ -33,7 +33,7 @@ body: |
bb.0:
%0:i32 = CONST_I32 0, implicit-def $arguments
%1:f32 = ARGUMENT_f32 0, implicit $arguments
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
name: argument_f64
@@ -44,7 +44,7 @@ body: |
bb.0:
%0:i32 = CONST_I32 0, implicit-def $arguments
%1:f64 = ARGUMENT_f64 0, implicit $arguments
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
name: argument_exnref
@@ -55,5 +55,5 @@ body: |
bb.0:
%0:i32 = CONST_I32 0, implicit-def $arguments
%1:exnref = ARGUMENT_exnref 0, implicit $arguments
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
diff --git a/llvm/test/CodeGen/WebAssembly/reg-copy.mir b/llvm/test/CodeGen/WebAssembly/reg-copy.mir
index a077c347efd..e07c6acb8b6 100644
--- a/llvm/test/CodeGen/WebAssembly/reg-copy.mir
+++ b/llvm/test/CodeGen/WebAssembly/reg-copy.mir
@@ -6,10 +6,10 @@ name: copy_i32
body: |
; CHECK-LABEL: bb.0:
; CHECK-NEXT: %0:i32 = COPY_I32 %1:i32
- ; CHECK-NEXT: RETURN_VOID
+ ; CHECK-NEXT: RETURN
bb.0:
%0:i32 = COPY %1:i32
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
name: copy_i64
@@ -17,10 +17,10 @@ name: copy_i64
body: |
; CHECK-LABEL: bb.0:
; CHECK-NEXT: %0:i64 = COPY_I64 %1:i64
- ; CHECK-NEXT: RETURN_VOID
+ ; CHECK-NEXT: RETURN
bb.0:
%0:i64 = COPY %1:i64
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
name: copy_f32
@@ -28,10 +28,10 @@ name: copy_f32
body: |
; CHECK-LABEL: bb.0:
; CHECK-NEXT: %0:f32 = COPY_F32 %1:f32
- ; CHECK-NEXT: RETURN_VOID
+ ; CHECK-NEXT: RETURN
bb.0:
%0:f32 = COPY %1:f32
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
name: copy_f64
@@ -39,10 +39,10 @@ name: copy_f64
body: |
; CHECK-LABEL: bb.0:
; CHECK-NEXT: %0:f64 = COPY_F64 %1:f64
- ; CHECK-NEXT: RETURN_VOID
+ ; CHECK-NEXT: RETURN
bb.0:
%0:f64 = COPY %1:f64
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
name: copy_v128
@@ -50,10 +50,10 @@ name: copy_v128
body: |
; CHECK-LABEL: bb.0:
; CHECK-NEXT: %0:v128 = COPY_V128 %1:v128
- ; CHECK-NEXT: RETURN_VOID
+ ; CHECK-NEXT: RETURN
bb.0:
%0:v128 = COPY %1:v128
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
---
name: copy_exnref
@@ -61,8 +61,8 @@ name: copy_exnref
body: |
; CHECK-LABEL: bb.0:
; CHECK-NEXT: %0:exnref = COPY_EXNREF %1:exnref
- ; CHECK-NEXT: RETURN_VOID
+ ; CHECK-NEXT: RETURN
bb.0:
%0:exnref = COPY %1:exnref
- RETURN_VOID implicit-def $arguments
+ RETURN implicit-def $arguments
...
OpenPOWER on IntegriCloud