summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/WebAssembly/phi.ll
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-11-12 17:04:33 +0000
committerDan Gohman <dan433584@gmail.com>2015-11-12 17:04:33 +0000
commitcf4748f18000ac24fb9d07d493be59cf035c8d68 (patch)
treec0290611ac29080e8b3c34f27acc95882da87d4b /llvm/test/CodeGen/WebAssembly/phi.ll
parent02bf92d22651dd7feb2828974fdcc5dc0e23ddfb (diff)
downloadbcm5719-llvm-cf4748f18000ac24fb9d07d493be59cf035c8d68.tar.gz
bcm5719-llvm-cf4748f18000ac24fb9d07d493be59cf035c8d68.zip
[WebAssembly] Reapply r252858, with svn add for the new file.
Switch to MC for instruction printing. This encompasses several changes which are all interconnected: - Use the MC framework for printing almost all instructions. - AsmStrings are now live. - This introduces an indirection between LLVM vregs and WebAssembly registers, and a new pass, WebAssemblyRegNumbering, for computing a basic the mapping. This addresses some basic issues with argument registers and unused registers. - The way ARGUMENT instructions are handled no longer generates redundant get_local+set_local for every argument. This also changes the assembly syntax somewhat; most notably, MC's printing does not use sigils on label names, so those are no longer present, and push/pop now have a sigil to keep them unambiguous. The usage of set_local/get_local/$push/$pop will continue to evolve significantly. This patch is just one step of a larger change. llvm-svn: 252910
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly/phi.ll')
-rw-r--r--llvm/test/CodeGen/WebAssembly/phi.ll17
1 files changed, 6 insertions, 11 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/phi.ll b/llvm/test/CodeGen/WebAssembly/phi.ll
index 39c3561bb2a..25fbdca5e5b 100644
--- a/llvm/test/CodeGen/WebAssembly/phi.ll
+++ b/llvm/test/CodeGen/WebAssembly/phi.ll
@@ -8,11 +8,9 @@ target triple = "wasm32-unknown-unknown"
; Basic phi triangle.
; CHECK-LABEL: test0:
-; CHECK: get_local push, 0{{$}}
-; CHECK: set_local [[REG:.*]], pop
-; CHECK: div_s push, (get_local [[REG]]), {{.*}}
-; CHECK: set_local [[REG]], pop
-; CHECK: return (get_local [[REG]])
+; CHECK: div_s $push, (get_local 0), (get_local 3){{$}}
+; CHECK: set_local 0, $pop
+; CHECK: return (get_local 0)
define i32 @test0(i32 %p) {
entry:
%t = icmp slt i32 %p, 0
@@ -29,12 +27,9 @@ done:
; CHECK-LABEL: test1:
; CHECK: BB1_1:
-; CHECK: get_local push, [[REG1:.*]]
-; CHECK: set_local [[REG0:.*]], pop
-; CHECK: get_local push, [[REG2:.*]]
-; CHECK: set_local [[REG1]], pop
-; CHECK: [[REG0]]
-; CHECK: set_local [[REG2]], pop
+; CHECK: set_local [[REG0:.*]], (get_local [[REG1:.*]])
+; CHECK: set_local [[REG1]], (get_local [[REG2:.*]])
+; CHECK: set_local [[REG2]], (get_local [[REG0]])
define i32 @test1(i32 %n) {
entry:
br label %loop
OpenPOWER on IntegriCloud