diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/example/c-api-kitchen-sink.c | 6 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt | 145 |
2 files changed, 151 insertions, 0 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c index 65355da4a..6a7b013e4 100644 --- a/test/example/c-api-kitchen-sink.c +++ b/test/example/c-api-kitchen-sink.c @@ -354,7 +354,13 @@ void test_relooper() { BinaryenFunctionRef sinker = BinaryenAddFunction(module, "loop-tail", v, localTypes, 1, body); } + printf("raw:\n"); BinaryenModulePrint(module); + + printf("optimized:\n"); + BinaryenModuleOptimize(module); + BinaryenModulePrint(module); + BinaryenModuleDispose(module); } diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt index 3c808c9a1..30444c886 100644 --- a/test/example/c-api-kitchen-sink.txt +++ b/test/example/c-api-kitchen-sink.txt @@ -346,6 +346,7 @@ BinaryenFloat64: 4 ) ) ) +raw: (module (memory 0) (type $v (func)) @@ -610,3 +611,147 @@ BinaryenFloat64: 4 ) ) ) +optimized: +(module + (memory 0) + (type $v (func)) + (func $just-one-block (type $v) + (i32.const 1337) + ) + (func $two-blocks (type $v) + (i32.const 0) + (i32.const 1) + ) + (func $two-blocks-plus-code (type $v) + (i32.const 0) + (i32.const 77) + (i32.const 1) + ) + (func $loop (type $v) + (loop $shape$0$break $shape$0$continue + (i32.const 0) + (i32.const 1) + (br $shape$0$continue) + ) + ) + (func $loop-plus-code (type $v) + (loop $shape$0$break $shape$0$continue + (i32.const 0) + (i32.const 33) + (i32.const 1) + (i32.const -66) + (br $shape$0$continue) + ) + ) + (func $split (type $v) + (i32.const 0) + (select + (i32.const 1) + (i32.const 2) + (i32.const 55) + ) + ) + (func $split-plus-code (type $v) + (i32.const 0) + (select + (block + (i32.const 10) + (i32.const 1) + ) + (block + (i32.const 20) + (i32.const 2) + ) + (i32.const 55) + ) + ) + (func $if (type $v) + (i32.const 0) + (if + (i32.const 55) + (i32.const 1) + ) + (i32.const 2) + ) + (func $if-plus-code (type $v) + (i32.const 0) + (select + (block + (i32.const -1) + (i32.const 1) + (i32.const -3) + ) + (i32.const -2) + (i32.const 55) + ) + (i32.const 2) + ) + (func $if-else (type $v) + (i32.const 0) + (select + (i32.const 1) + (i32.const 2) + (i32.const 55) + ) + (i32.const 3) + ) + (func $loop-tail (type $v) + (loop $shape$0$break $shape$0$continue + (i32.const 0) + (i32.const 1) + (if + (i32.const 10) + (br $shape$0$continue) + (br $shape$0$break) + ) + ) + (i32.const 2) + ) + (func $loop-tail (type $v) + (local $0 i32) + (i32.const 0) + (i32.const 10) + (loop $shape$1$break $shape$1$continue + (i32.const 1) + (if + (i32.eqz + (i32.const -2) + ) + (block + (i32.const 20) + (br $shape$1$break) + ) + ) + (i32.const 2) + (if + (i32.const -6) + (block + (set_local $0 + (i32.const 4) + ) + (br $shape$1$break) + ) + (block + (i32.const 30) + (br $shape$1$continue) + ) + ) + ) + (if + (i32.eq + (get_local $0) + (i32.const 4) + ) + (block + (i32.const 3) + (if + (i32.const -10) + (i32.const 4) + ) + (i32.const 5) + (i32.const 40) + ) + ) + (i32.const 6) + ) +) |