| (module |
| (type $f (func (param i32))) |
| (memory 1 2) |
| (import "env" "import" (func $import)) |
| (import "env" "import2" (func $import2 (param i32))) |
| (table 1 1) |
| (func $liveness1 (param $live0 i32) (param $dead0 i32) |
| (local $live1 i32) |
| (local $dead1 i32) |
| (drop (local.get $dead0)) |
| (drop (local.get $dead1)) |
| (call $import) |
| (drop (local.get $live0)) |
| (drop (local.get $live1)) |
| ) |
| (func $liveness2 (param $live0 i32) (param $dead0 i32) |
| (local $live1 i32) |
| (local $dead1 i32) |
| (drop (local.get $dead0)) |
| (drop (local.get $dead1)) |
| (call $import) |
| (drop (local.get $live0)) |
| (drop (local.get $live1)) |
| ) |
| (func $liveness3 (param $live0 i32) (param $dead0 i32) |
| (local $live1 i32) |
| (local $dead1 i32) |
| (call $import) |
| (drop (local.get $live0)) |
| (call $import) |
| (drop (local.get $live1)) |
| ) |
| (func $liveness4 (param $live0 i32) (param $dead0 i32) |
| (if (i32.const 0) |
| (call $import) |
| ) |
| (drop (local.get $live0)) |
| ) |
| (func $liveness5 (param $dead0 i32) |
| (drop (local.get $dead0)) |
| (if (i32.const 0) |
| (call $import) ;; live before and after call, but not during |
| ) |
| (local.set $dead0 (i32.const 1)) |
| (drop (local.get $dead0)) |
| ) |
| (func $liveness-call-kills (param $live i32) |
| (call $import2 (local.get $live)) |
| ) |
| (func $liveness-indirect-kills (param $live0 i32) (param $live1 i32) |
| (call_indirect (type $f) (local.get $live0) (local.get $live1)) |
| ) |
| ) |