summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler.sig5
-rw-r--r--src/compiler.sml28
2 files changed, 21 insertions, 12 deletions
diff --git a/src/compiler.sig b/src/compiler.sig
index 0516d97e..1d575a2b 100644
--- a/src/compiler.sig
+++ b/src/compiler.sig
@@ -90,6 +90,7 @@ signature COMPILER = sig
val tag : (Core.file, Core.file) phase
val reduce : (Core.file, Core.file) phase
val unpoly : (Core.file, Core.file) phase
+ val especialize : (Core.file, Core.file) phase
val specialize : (Core.file, Core.file) phase
val marshalcheck : (Core.file, Core.file) phase
val effectize : (Core.file, Core.file) phase
@@ -121,13 +122,13 @@ signature COMPILER = sig
val toRpcify : (string, Core.file) transform
val toCore_untangle2 : (string, Core.file) transform
val toShake2 : (string, Core.file) transform
- val toUnpoly1 : (string, Core.file) transform
val toEspecialize1 : (string, Core.file) transform
val toCore_untangle3 : (string, Core.file) transform
val toShake3 : (string, Core.file) transform
val toTag : (string, Core.file) transform
val toReduce : (string, Core.file) transform
- val toUnpoly2 : (string, Core.file) transform
+ val toShakey : (string, Core.file) transform
+ val toUnpoly : (string, Core.file) transform
val toSpecialize : (string, Core.file) transform
val toShake4 : (string, Core.file) transform
val toEspecialize2 : (string, Core.file) transform
diff --git a/src/compiler.sml b/src/compiler.sml
index a7a3c117..a2fcd346 100644
--- a/src/compiler.sml
+++ b/src/compiler.sml
@@ -95,10 +95,18 @@ fun transform (ph : ('src, 'dst) phase) name = {
end,
print = #print ph,
time = fn (input, pmap) => let
+ val () = if !debug then
+ print ("Starting " ^ name ^ "....\n")
+ else
+ ()
val befor = Time.now ()
val v = #func ph input
val elapsed = Time.- (Time.now (), befor)
in
+ if !debug then
+ print ("Finished " ^ name ^ ".\n")
+ else
+ ();
(if ErrorMsg.anyErrors () then
NONE
else
@@ -962,14 +970,7 @@ val toRpcify = transform rpcify "rpcify" o toShake1
val toCore_untangle2 = transform core_untangle "core_untangle2" o toRpcify
val toShake2 = transform shake "shake2" o toCore_untangle2
-val unpoly = {
- func = Unpoly.unpoly,
- print = CorePrint.p_file CoreEnv.empty
-}
-
-val toUnpoly1 = transform unpoly "unpoly1" o toShake2
-
-val toEspecialize1 = transform especialize "especialize1" o toUnpoly1
+val toEspecialize1 = transform especialize "especialize1" o toShake2
val toCore_untangle3 = transform core_untangle "core_untangle3" o toEspecialize1
val toShake3 = transform shake "shake3" o toCore_untangle3
@@ -988,14 +989,21 @@ val reduce = {
val toReduce = transform reduce "reduce" o toTag
-val toUnpoly2 = transform unpoly "unpoly2" o toReduce
+val toShakey = transform shake "shakey" o toReduce
+
+val unpoly = {
+ func = Unpoly.unpoly,
+ print = CorePrint.p_file CoreEnv.empty
+}
+
+val toUnpoly = transform unpoly "unpoly" o toShakey
val specialize = {
func = Specialize.specialize,
print = CorePrint.p_file CoreEnv.empty
}
-val toSpecialize = transform specialize "specialize" o toUnpoly2
+val toSpecialize = transform specialize "specialize" o toUnpoly
val toShake4 = transform shake "shake4" o toSpecialize