summaryrefslogtreecommitdiff
path: root/src/PureMicroPasses.ml
diff options
context:
space:
mode:
authorSon Ho2022-01-28 01:52:58 +0100
committerSon Ho2022-01-28 01:52:58 +0100
commitdc9d2c64bc2948bfdff78f1d2abae45ec9b4972c (patch)
treec7dba718348778a47003c1a99717ed61f97ff5e3 /src/PureMicroPasses.ml
parent3af881c9a5c8935e2238509d3447ec42e29b8404 (diff)
Make a lot of small modifications
Diffstat (limited to '')
-rw-r--r--src/PureMicroPasses.ml20
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