diff options
author | JF Bastien <jfb@google.com> | 2015-10-16 00:53:49 +0000 |
---|---|---|
committer | JF Bastien <jfb@google.com> | 2015-10-16 00:53:49 +0000 |
commit | 1d20a5e9e8061848c33207da5d02c6fbd706ffc1 (patch) | |
tree | 0e1bfd186c16b0b60563390a311ebdd079349fe4 /llvm/test/CodeGen/WebAssembly/cfg-stackify.ll | |
parent | ad5e0cefa15d81cf3688a65b55d7e26d91512150 (diff) | |
download | bcm5719-llvm-1d20a5e9e8061848c33207da5d02c6fbd706ffc1.tar.gz bcm5719-llvm-1d20a5e9e8061848c33207da5d02c6fbd706ffc1.zip |
WebAssembly: update syntax
Summary:
Follow the same syntax as for the spec repo. Both have evolved slightly
independently and need to converge again.
This, along with wasmate changes, allows me to do the following:
echo "int add(int a, int b) { return a + b; }" > add.c
./out/bin/clang -O2 -S --target=wasm32-unknown-unknown add.c -o add.wack
./experimental/prototype-wasmate/wasmate.py add.wack > add.wast
./sexpr-wasm-prototype/out/sexpr-wasm add.wast -o add.wasm
./sexpr-wasm-prototype/third_party/v8-native-prototype/v8/v8/out/Release/d8 -e "print(WASM.instantiateModule(readbuffer('add.wasm'), {print:print}).add(42, 1337));"
As you'd expect, the d8 shell prints out the right value.
Reviewers: sunfish
Subscribers: jfb, llvm-commits, dschuff
Differential Revision: http://reviews.llvm.org/D13712
llvm-svn: 250480
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly/cfg-stackify.ll')
-rw-r--r-- | llvm/test/CodeGen/WebAssembly/cfg-stackify.ll | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll b/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll index 1f9408c325d..900adfdf5fb 100644 --- a/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll +++ b/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll @@ -69,7 +69,7 @@ back: ; CHECK: block $BB2_2{{$}} ; CHECK: brif $BB2_2, {{.*}} ; CHECK: BB2_1: -; CHECK: brif $BB2_1, @16{{$}} +; CHECK: brif $BB2_1, (get_local 16){{$}} ; CHECK: BB2_2: ; CHECK: return{{$}} define void @test2(double* nocapture %p, i32 %n) { @@ -101,14 +101,14 @@ for.end: ; CHECK: block $BB3_5{{$}} ; CHECK: block $BB3_4{{$}} ; CHECK: block $BB3_2{{$}} -; CHECK: brif $BB3_2, @7{{$}} +; CHECK: brif $BB3_2, (get_local 7){{$}} ; CHECK: br $BB3_5{{$}} ; CHECK: BB3_2: -; CHECK: brif $BB3_4, @10{{$}} +; CHECK: brif $BB3_4, (get_local 10){{$}} ; CHECK: br $BB3_5{{$}} ; CHECK: BB3_4: ; CHECK: BB3_5: -; CHECK: return @6{{$}} +; CHECK: return (get_local 6){{$}} define i32 @doublediamond(i32 %a, i32 %b, i32* %p) { entry: %c = icmp eq i32 %a, 0 @@ -134,9 +134,9 @@ exit: ; CHECK-LABEL: triangle: ; CHECK: block $BB4_2{{$}} -; CHECK: brif $BB4_2, @5{{$}} +; CHECK: brif $BB4_2, (get_local 5){{$}} ; CHECK: BB4_2: -; CHECK: return @4{{$}} +; CHECK: return (get_local 4){{$}} define i32 @triangle(i32* %p, i32 %a) { entry: %c = icmp eq i32 %a, 0 @@ -153,11 +153,11 @@ exit: ; CHECK-LABEL: diamond: ; CHECK: block $BB5_3{{$}} ; CHECK: block $BB5_2{{$}} -; CHECK: brif $BB5_2, @5{{$}} +; CHECK: brif $BB5_2, (get_local 5){{$}} ; CHECK: br $BB5_3{{$}} ; CHECK: BB5_2: ; CHECK: BB5_3: -; CHECK: return @4{{$}} +; CHECK: return (get_local 4){{$}} define i32 @diamond(i32* %p, i32 %a) { entry: %c = icmp eq i32 %a, 0 @@ -176,7 +176,7 @@ exit: ; CHECK-LABEL: single_block: ; CHECK-NOT: br -; CHECK: return @2{{$}} +; CHECK: return (get_local 2){{$}} define i32 @single_block(i32* %p) { entry: store volatile i32 0, i32* %p @@ -186,7 +186,7 @@ entry: ; CHECK-LABEL: minimal_loop: ; CHECK-NOT: br ; CHECK: BB7_1: -; CHECK: store_i32 @1, @3{{$}} +; CHECK: store_i32 (get_local 1), (get_local 3){{$}} ; CHECK: br $BB7_1{{$}} define i32 @minimal_loop(i32* %p) { entry: @@ -201,8 +201,8 @@ loop: ; CHECK-NOT: br ; CHECK: BB8_1: ; CHECK: loop $BB8_2{{$}} -; CHECK: brif $BB8_1, @6{{$}} -; CHECK: return @4{{$}} +; CHECK: brif $BB8_1, (get_local 6){{$}} +; CHECK: return (get_local 4){{$}} define i32 @simple_loop(i32* %p, i32 %a) { entry: %c = icmp eq i32 %a, 0 @@ -219,11 +219,11 @@ exit: ; CHECK-LABEL: doubletriangle: ; CHECK: block $BB9_4{{$}} ; CHECK: block $BB9_3{{$}} -; CHECK: brif $BB9_4, @7{{$}} -; CHECK: brif $BB9_3, @10{{$}} +; CHECK: brif $BB9_4, (get_local 7){{$}} +; CHECK: brif $BB9_3, (get_local 10){{$}} ; CHECK: BB9_3: ; CHECK: BB9_4: -; CHECK: return @6{{$}} +; CHECK: return (get_local 6){{$}} define i32 @doubletriangle(i32 %a, i32 %b, i32* %p) { entry: %c = icmp eq i32 %a, 0 @@ -247,12 +247,12 @@ exit: ; CHECK-LABEL: ifelse_earlyexits: ; CHECK: block $BB10_4{{$}} ; CHECK: block $BB10_2{{$}} -; CHECK: brif $BB10_2, @7{{$}} +; CHECK: brif $BB10_2, (get_local 7){{$}} ; CHECK: br $BB10_4{{$}} ; CHECK: BB10_2: -; CHECK: brif $BB10_4, @10{{$}} +; CHECK: brif $BB10_4, (get_local 10){{$}} ; CHECK: BB10_4: -; CHECK: return @6{{$}} +; CHECK: return (get_local 6){{$}} define i32 @ifelse_earlyexits(i32 %a, i32 %b, i32* %p) { entry: %c = icmp eq i32 %a, 0 |