diff options
| author | Dan Gohman <dan433584@gmail.com> | 2015-11-18 16:12:01 +0000 |
|---|---|---|
| committer | Dan Gohman <dan433584@gmail.com> | 2015-11-18 16:12:01 +0000 |
| commit | 4ba4816b9701aecbc757f7d806895e114908f309 (patch) | |
| tree | 004f2a73e6ec83b57785b4ae0e671b8a59c20e89 /llvm/test/CodeGen/WebAssembly/phi.ll | |
| parent | 272d3f17fcaa1018ddc15eb5781ae6064c760e95 (diff) | |
| download | bcm5719-llvm-4ba4816b9701aecbc757f7d806895e114908f309.tar.gz bcm5719-llvm-4ba4816b9701aecbc757f7d806895e114908f309.zip | |
[WebAssembly] Enable register coloring and register stackifying.
This also takes the push/pop syntax another step forward, introducing stack
slot numbers to make it easier to see how expressions are connected. For
example, the value pushed in $push7 is popped in $pop7.
And, this begins an experiment with making get_local and set_local implicit
when an operation directly uses or defines a register. This greatly reduces
clutter. If this experiment succeeds, it may make sense to do this for
const instructions as well.
And, this introduces more special code for ARGUMENTS; hopefully this code
will soon be obviated by proper support for live-in virtual registers.
llvm-svn: 253465
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly/phi.ll')
| -rw-r--r-- | llvm/test/CodeGen/WebAssembly/phi.ll | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/phi.ll b/llvm/test/CodeGen/WebAssembly/phi.ll index 25fbdca5e5b..8db0958c30f 100644 --- a/llvm/test/CodeGen/WebAssembly/phi.ll +++ b/llvm/test/CodeGen/WebAssembly/phi.ll @@ -8,9 +8,8 @@ target triple = "wasm32-unknown-unknown" ; Basic phi triangle. ; CHECK-LABEL: test0: -; CHECK: div_s $push, (get_local 0), (get_local 3){{$}} -; CHECK: set_local 0, $pop -; CHECK: return (get_local 0) +; CHECK: div_s $[[NUM0:[0-9]+]], $0, $pop[[NUM1:[0-9]+]]{{$}} +; CHECK: return $[[NUM0]]{{$}} define i32 @test0(i32 %p) { entry: %t = icmp slt i32 %p, 0 @@ -27,9 +26,9 @@ done: ; CHECK-LABEL: test1: ; CHECK: BB1_1: -; CHECK: set_local [[REG0:.*]], (get_local [[REG1:.*]]) -; CHECK: set_local [[REG1]], (get_local [[REG2:.*]]) -; CHECK: set_local [[REG2]], (get_local [[REG0]]) +; CHECK: set_local $[[NUM0:[0-9]+]], $[[NUM1:[0-9]+]]{{$}} +; CHECK: set_local $[[NUM1]], $[[NUM2:[0-9]+]]{{$}} +; CHECK: set_local $[[NUM2]], $[[NUM0]]{{$}} define i32 @test1(i32 %n) { entry: br label %loop |

