From 4babacf73dbc29ee07c40a522090806401c2df9b Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 6 Jul 2015 17:07:34 -0700 Subject: Reformat and revise the rationale for structured control flow. --- AstSemantics.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'AstSemantics.md') diff --git a/AstSemantics.md b/AstSemantics.md index 723f0d1..363a6bb 100644 --- a/AstSemantics.md +++ b/AstSemantics.md @@ -258,20 +258,19 @@ In particular, they may not be entered directly via a `break`, `continue`, or `switch` destination. This guarantees that all control flow graphs are well-structured. - * 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). - * The - [signature-restricted proper tail-call](PostMVP.md#signature-restricted-proper-tail-calls) - feature would allow efficient compilation of arbitrary irreducible control - flow. +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. ## Calls -- cgit v1.2.3