55 |
(structure CFG = CFG |
(structure CFG = CFG |
56 |
structure Shuffle = Shuffle) |
structure Shuffle = Shuffle) |
57 |
|
|
58 |
|
structure ComputeFreqs = |
59 |
|
ComputeFreqsFn(structure CFG=CFG) |
60 |
|
|
61 |
structure BlockPlacement = |
structure BlockPlacement = |
62 |
BlockPlacement |
BlockPlacement |
63 |
(structure CFG = CFG |
(structure CFG = CFG |
86 |
else cfg |
else cfg |
87 |
end |
end |
88 |
|
|
89 |
|
fun computeFreqs cfg = (ComputeFreqs.compute cfg; cfg) |
90 |
|
|
91 |
type mlriscPhase = string * (CFG.cfg -> CFG.cfg) |
type mlriscPhase = string * (CFG.cfg -> CFG.cfg) |
92 |
|
|
93 |
fun phase x = Stats.doPhase (Stats.makePhase x) |
fun phase x = Stats.doPhase (Stats.makePhase x) |
97 |
val placement = phase "MLRISC Block placement" BlockPlacement.blockPlacement |
val placement = phase "MLRISC Block placement" BlockPlacement.blockPlacement |
98 |
val chainJumps = phase "MLRISC Jump chaining" JumpChaining.run |
val chainJumps = phase "MLRISC Jump chaining" JumpChaining.run |
99 |
val finish = phase "MLRISC BackPatch.finish" BackPatch.finish |
val finish = phase "MLRISC BackPatch.finish" BackPatch.finish |
100 |
|
val compFreqs = phase "MLRISC Compute frequencies" computeFreqs |
101 |
val ra = phase "MLRISC ra" RA.run |
val ra = phase "MLRISC ra" RA.run |
102 |
val omitfp = phase "MLRISC omit frame pointer" omitFramePointer |
val omitfp = phase "MLRISC omit frame pointer" omitFramePointer |
103 |
val expandCpys = phase "MLRISC expand copies" ExpandCpys.run |
val expandCpys = phase "MLRISC expand copies" ExpandCpys.run |
105 |
val raPhase = ("ra",ra) |
val raPhase = ("ra",ra) |
106 |
|
|
107 |
val optimizerHook = |
val optimizerHook = |
108 |
ref [("ra", ra), |
ref [("compFreqs", compFreqs), |
109 |
|
("ra", ra), |
110 |
("omitfp", omitfp), |
("omitfp", omitfp), |
111 |
("expand copies", expandCpys) |
("expand copies", expandCpys) |
112 |
] |
] |