diff options
| author | JF Bastien <github@jfbastien.com> | 2015-05-03 12:27:41 -0700 |
|---|---|---|
| committer | JF Bastien <github@jfbastien.com> | 2015-05-03 12:27:41 -0700 |
| commit | 9712e4ff672fb128961d1a0591488febd412fc92 (patch) | |
| tree | fa30c5bbcb2c76faf40d6f4fde34209a06253bae | |
| parent | a19e4ccf9c250cc730afa9941944f377a7c87dcd (diff) | |
| parent | 1be96c05f60b5c3463c6a3546707fedf5c0306c4 (diff) | |
| download | nanowasm-design-9712e4ff672fb128961d1a0591488febd412fc92.tar.gz | |
Merge pull request #21 from WebAssembly/reloop
Relooper clarifications
| -rw-r--r-- | V1.md | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -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 |
