summaryrefslogtreecommitdiff
path: root/compiler/SymbolicAst.ml
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/SymbolicAst.ml')
-rw-r--r--compiler/SymbolicAst.ml13
1 files changed, 8 insertions, 5 deletions
diff --git a/compiler/SymbolicAst.ml b/compiler/SymbolicAst.ml
index 9d9adf4f..235e33e4 100644
--- a/compiler/SymbolicAst.ml
+++ b/compiler/SymbolicAst.ml
@@ -77,13 +77,16 @@ type expression =
We use it to compute meaningful names for the variables we introduce,
to prettify the generated code.
*)
- | ForwardEnd of expression
+ | ForwardEnd of expression * expression T.RegionGroupId.Map.t
(** We use this delimiter to indicate at which point we switch to the
- generation of code specific to the backward function(s).
+ generation of code specific to the backward function(s). This allows
+ us in particular to factor the work out: we don't need to replay the
+ symbolic execution up to this point, and can reuse it for the forward
+ function and all the backward functions.
- TODO: use this to factorize the generation of the forward and backward
- functions (today we replay the *whole* symbolic execution once per
- generated function).
+ The first expression gives the end of the translation for the forward
+ function, the map from region group ids to expressions gives the end
+ of the translation for the backward functions.
*)
| Meta of meta * expression (** Meta information *)