30 |
|
|
31 |
fun phase x = Stats.doPhase (Stats.makePhase x) |
fun phase x = Stats.doPhase (Stats.makePhase x) |
32 |
|
|
33 |
val deb2names = phase "Compiler 056 deb2names" TvarCvt.debIndex2names |
val deb2names = phase "FLINT 056 deb2names" TvarCvt.debIndex2names |
34 |
val names2deb = phase "Compiler 057 names2deb" TvarCvt.names2debIndex |
val names2deb = phase "FLINT 057 names2deb" TvarCvt.names2debIndex |
35 |
|
|
36 |
val lcontract = phase "Compiler 052 lcontract" LContract.lcontract |
val lcontract = phase "FLINT 052 lcontract" LContract.lcontract |
37 |
(* val lcontract' = phase "Compiler 052 lcontract'" LContract.lcontract *) |
(* val lcontract' = phase "FLINT 052 lcontract'" LContract.lcontract *) |
38 |
val fcollect = phase "Compiler 052a fcollect" Collect.collect |
val fcollect = phase "FLINT 052a fcollect" Collect.collect |
39 |
val fcontract = phase "Compiler 052b fcontract" |
val fcontract = phase "FLINT 052b fcontract" |
40 |
(fn (opts,lexp) => FContract.contract opts lexp) |
(fn (opts,lexp) => FContract.contract opts lexp) |
41 |
val fcontract = fn opts => fn lexp => fcontract(opts, fcollect lexp) |
val fcontract = fn opts => fn lexp => fcontract(opts, fcollect lexp) |
42 |
val loopify = phase "Compiler 057 loopify" Loopify.loopify |
val loopify = phase "FLINT 057 loopify" Loopify.loopify |
43 |
val fixfix = phase "Compiler 056 fixfix" FixFix.fixfix |
val fixfix = phase "FLINT 056 fixfix" FixFix.fixfix |
44 |
val split = phase "Compiler 058 split" FSplit.split |
val split = phase "FLINT 058 split" FSplit.split |
45 |
|
val abcopt = phase "FLINT 059 abcopt" ABCOpt.abcOpt |
46 |
val typelift = phase "Compiler 0535 typelift" Lift.typeLift |
|
47 |
val wformed = phase "Compiler 0536 wformed" Lift.wellFormed |
val typelift = phase "FLINT 0535 typelift" Lift.typeLift |
48 |
|
val wformed = phase "FLINT 0536 wformed" Lift.wellFormed |
49 |
val specialize= phase "Compiler 053 specialize" Specialize.specialize |
|
50 |
val wrapping = phase "Compiler 054 wrapping" Wrapping.wrapping |
val specialize= phase "FLINT 053 specialize" Specialize.specialize |
51 |
val reify = phase "Compiler 055 reify" Reify.reify |
val wrapping = phase "FLINT 054 wrapping" Wrapping.wrapping |
52 |
val recover = phase "Compiler 05a recover" Recover.recover |
val reify = phase "FLINT 055 reify" Reify.reify |
53 |
|
val recover = phase "FLINT 05a recover" Recover.recover |
54 |
val convert = phase "Compiler 060 convert" Convert.convert |
|
55 |
val cpstrans = phase "Compiler 065 cpstrans" CPStrans.cpstrans |
val convert = phase "CPS 060 convert" Convert.convert |
56 |
val cpsopt = phase "Compiler 070 cpsopt" CPSopt.reduce |
val cpstrans = phase "CPS 065 cpstrans" CPStrans.cpstrans |
57 |
val litsplit = phase "Compiler 075 litsplit" Literals.litsplit |
val cpsopt = phase "CPS 070 cpsopt" CPSopt.reduce |
58 |
val litToBytes = phase "Compiler 076 litToBytes" Literals.litToBytes |
val litsplit = phase "CPS 075 litsplit" Literals.litsplit |
59 |
val closure = phase "Compiler 080 closure" Closure.closeCPS |
val litToBytes = phase "CPS 076 litToBytes" Literals.litToBytes |
60 |
val globalfix = phase "Compiler 090 globalfix" GlobalFix.globalfix |
val closure = phase "CPS 080 closure" Closure.closeCPS |
61 |
val spill = phase "Compiler 100 spill" Spill.spill |
val globalfix = phase "CPS 090 globalfix" GlobalFix.globalfix |
62 |
val limit = phase "Compiler 110 limit" Limit.nolimit |
val spill = phase "CPS 100 spill" Spill.spill |
63 |
val codegen = phase "Compiler 120 cpsgen" Gen.codegen |
val limit = phase "CPS 110 limit" Limit.nolimit |
64 |
|
val codegen = phase "CPS 120 cpsgen" Gen.codegen |
65 |
|
|
66 |
(** pretty printing for the FLINT and CPS code *) |
(** pretty printing for the FLINT and CPS code *) |
67 |
val (prF, prC) = |
val (prF, prC) = |
117 |
| ("lcontract",_) => (lcontract f, fi, fk, p) |
| ("lcontract",_) => (lcontract f, fi, fk, p) |
118 |
| ("fixfix", _) => (fixfix f, fi, fk, p) |
| ("fixfix", _) => (fixfix f, fi, fk, p) |
119 |
| ("loopify", _) => (loopify f, fi, fk, p) |
| ("loopify", _) => (loopify f, fi, fk, p) |
120 |
|
| ("abcopt", _) => (abcopt f, fi, fk, p) |
121 |
| ("specialize",FK_NAMED) => (specialize f, fi, fk, p) |
| ("specialize",FK_NAMED) => (specialize f, fi, fk, p) |
122 |
| ("wrap",FK_NAMED) => (wrapping f, fi, FK_WRAP, p) |
| ("wrap",FK_NAMED) => (wrapping f, fi, FK_WRAP, p) |
123 |
| ("reify",FK_WRAP) => (reify f, fi, FK_REIFY, p) |
| ("reify",FK_WRAP) => (reify f, fi, FK_REIFY, p) |
227 |
in ({c0=nc0, cn=ncn, data=dseg}, fi) |
in ({c0=nc0, cn=ncn, data=dseg}, fi) |
228 |
end (* function flintcomp *) |
end (* function flintcomp *) |
229 |
|
|
230 |
val flintcomp = phase "Compiler 050 flintcomp" flintcomp |
val flintcomp = phase "FLINT 050 flintcomp" flintcomp |
231 |
|
|
232 |
end (* local *) |
end (* local *) |
233 |
end (* structure FLINTComp *) |
end (* structure FLINTComp *) |