diff options
author | Son Ho | 2022-01-28 01:52:58 +0100 |
---|---|---|
committer | Son Ho | 2022-01-28 01:52:58 +0100 |
commit | dc9d2c64bc2948bfdff78f1d2abae45ec9b4972c (patch) | |
tree | c7dba718348778a47003c1a99717ed61f97ff5e3 /src/PureMicroPasses.ml | |
parent | 3af881c9a5c8935e2238509d3447ec42e29b8404 (diff) |
Make a lot of small modifications
Diffstat (limited to '')
-rw-r--r-- | src/PureMicroPasses.ml | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/PureMicroPasses.ml b/src/PureMicroPasses.ml index aab19c11..3e04912a 100644 --- a/src/PureMicroPasses.ml +++ b/src/PureMicroPasses.ml @@ -2,6 +2,10 @@ open Errors open Pure +open TranslateCore + +(** The local logger *) +let log = L.pure_micro_passes_log type pn_ctx = string VarId.Map.t (** "pretty-name context": see [compute_pretty_names] *) @@ -297,3 +301,19 @@ let remove_meta (def : fun_def) : fun_def = in let body = obj#visit_expression () def.body in { def with body } + +(** Apply all the micro-passes to a function. + + [ctx]: used only for printing. + *) +let apply_passes_to_def (ctx : trans_ctx) (def : fun_def) : fun_def = + (* First, find names for the variables which are unnamed *) + let def = compute_pretty_names def in + log#ldebug (lazy ("compute_pretty_name:\n" ^ fun_def_to_string ctx def)); + + (* The meta-information is now useless: remove it *) + let def = remove_meta def in + log#ldebug (lazy ("remove_meta:\n" ^ fun_def_to_string ctx def)); + + (* We are done *) + def |