mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
4be6d4a9bc
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
24 lines
765 B
YAML
24 lines
765 B
YAML
# RUN: llc -mtriple=wasm32-unknown-unknown -run-pass wasm-explicit-locals -wasm-keep-registers %s -o - | FileCheck %s
|
|
|
|
# When a drop instruction is inserted to drop a dead register operand, the
|
|
# original operand should be marked not dead anymore because it is now used by
|
|
# the new drop instruction. And the operand to the new drop instruction should
|
|
# be marked killed instead.
|
|
---
|
|
name: drop_test
|
|
liveins:
|
|
- { reg: '$arguments' }
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0:
|
|
successors: %bb.1
|
|
liveins: $arguments
|
|
|
|
bb.1:
|
|
; predecessors: %bb.0
|
|
; 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 implicit-def dead $arguments
|
|
...
|