aboutsummaryrefslogtreecommitdiff
path: root/Rationale.md
diff options
context:
space:
mode:
authorDan Gohman <sunfish@mozilla.com>2015-10-30 08:33:29 -0700
committerDan Gohman <sunfish@mozilla.com>2015-10-30 08:33:29 -0700
commitca9fc753205083d9b7c75b3a4fc8fc6711f15ea6 (patch)
tree95bd6bca07afce7c55277189945f3d04a64b2ff4 /Rationale.md
parent9b38ba19ce853ba08b889477e4573cd8a6998887 (diff)
parent74c21c8b0392c4d94eab4a28787e7325226db139 (diff)
downloadnanowasm-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.md14
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