diff options
| author | Dan Gohman <sunfish@mozilla.com> | 2015-10-30 08:33:29 -0700 |
|---|---|---|
| committer | Dan Gohman <sunfish@mozilla.com> | 2015-10-30 08:33:29 -0700 |
| commit | ca9fc753205083d9b7c75b3a4fc8fc6711f15ea6 (patch) | |
| tree | 95bd6bca07afce7c55277189945f3d04a64b2ff4 /Rationale.md | |
| parent | 9b38ba19ce853ba08b889477e4573cd8a6998887 (diff) | |
| parent | 74c21c8b0392c4d94eab4a28787e7325226db139 (diff) | |
| download | nanowasm-design-ca9fc753205083d9b7c75b3a4fc8fc6711f15ea6.tar.gz | |
Merge pull request #427 from WebAssembly/new-control-flow
Flexible control-flow operators.
Diffstat (limited to 'Rationale.md')
| -rw-r--r-- | Rationale.md | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Rationale.md b/Rationale.md index a56972a..252a3ab 100644 --- a/Rationale.md +++ b/Rationale.md @@ -119,7 +119,19 @@ See [#107](https://github.com/WebAssembly/spec/pull/107). ## Control Flow -See [#299](https://github.com/WebAssembly/design/pull/299). +Structured control flow provides simple and size-efficient binary encoding and +compilation. 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). +Also, +[more expressive control flow constructs](FutureFeatures.md#more-expressive-control-flow) +may be added in the future. ## Locals |
