aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJF Bastien <github@jfbastien.com>2015-05-03 12:27:41 -0700
committerJF Bastien <github@jfbastien.com>2015-05-03 12:27:41 -0700
commit9712e4ff672fb128961d1a0591488febd412fc92 (patch)
treefa30c5bbcb2c76faf40d6f4fde34209a06253bae
parenta19e4ccf9c250cc730afa9941944f377a7c87dcd (diff)
parent1be96c05f60b5c3463c6a3546707fedf5c0306c4 (diff)
downloadnanowasm-design-9712e4ff672fb128961d1a0591488febd412fc92.tar.gz
Merge pull request #21 from WebAssembly/reloop
Relooper clarifications
-rw-r--r--V1.md11
1 files changed, 8 insertions, 3 deletions
diff --git a/V1.md b/V1.md
index 1b65612..7e9db65 100644
--- a/V1.md
+++ b/V1.md
@@ -33,10 +33,15 @@ precise descriptions of:
to asm.js.
* Control flow is structured (no goto)
* Simple and size-efficient binary encoding and compilation.
- * Most (reducible) goto-based control flow can be transformed into structured control flow with a
- [relooping](http://mozakai.blogspot.com/2012/05/reloop-all-blocks.html) algorithm.
+ * Any control flow - even irreducible - can be transformed into structured control flow with the
+ [Relooper](https://github.com/kripken/emscripten/raw/master/docs/paper.pdf)
+ [algorithm](http://dl.acm.org/citation.cfm?id=2048224&CFID=670868333&CFTOKEN=46181900), with
+ guaranteed low code size overhead, and typically minimal throughput overhead (except for
+ pathological cases of irreducible control flow). Alternative approaches can generate reducible
+ control flow via node splitting, which can reduce throughput overhead, at the cost of
+ increasing code size (potentially very significantly in pathological cases).
* The [signature-restricted proper tail-call](https://github.com/WebAssembly/spec/blob/master/EssentialPostV1Features.md#signature-restricted-proper-tail-calls)
- feature would allow efficient compilation of irreducible control flow.
+ feature would allow efficient compilation of arbitrary irreducible control flow.
* See the [AST Semantics](AstSemantics.md) for descriptions of individual AST nodes.
## Binary format