SCM Repository
Annotation of /sml/branches/primop-branch-3/compiler/core.cm
Parent Directory
|
Revision Log
Revision 3355 - (view) (download)
1 : | blume | 879 | (* core.cm |
2 : | * | ||
3 : | * Copyright YALE FLINT PROJECT 1997 | ||
4 : | * and | ||
5 : | * (C) 2001 Lucent Technologies, Bell labs | ||
6 : | * | ||
7 : | blume | 902 | * This is the machine-independent "core" part of the compiler |
8 : | * (but without the parser and elaborator data structures). | ||
9 : | blume | 879 | * Machine-dependent parts are in backend-<arch>.cm. |
10 : | * | ||
11 : | blume | 902 | * The parser is in Parse/parser.cm. |
12 : | * Elaborator data structures are in ElabData/elabdata.cm. | ||
13 : | * Basic definitions are in Basics/basics.cm. | ||
14 : | * | ||
15 : | blume | 879 | * The present file is a group which gets referred to by the actual library |
16 : | * file in system/smlnj/viscomp/core.cm. | ||
17 : | *) | ||
18 : | mblume | 1655 | Group |
19 : | blume | 879 | signature BACKEND |
20 : | |||
21 : | (* To make it possible to dynamically link in the optimizer, | ||
22 : | * we have to export the following to the library. | ||
23 : | * A.Leung. | ||
24 : | *) | ||
25 : | signature MACHINE_GEN | ||
26 : | signature INVOKE_GC | ||
27 : | signature CPSREGS | ||
28 : | george | 984 | signature SMLNJ_PSEUDO_OPS |
29 : | blume | 879 | |
30 : | structure CPSRegions | ||
31 : | structure SMLGCType | ||
32 : | |||
33 : | (* To be able to separate machine-dependent parts of viscomp-lib.cm | ||
34 : | * from machine-independent parts, we must also export the | ||
35 : | * the following things.... *) | ||
36 : | |||
37 : | signature MACH_SPEC | ||
38 : | |||
39 : | structure DefaultMachSpec | ||
40 : | structure SMLNJConstant | ||
41 : | signature SMLNJ_MLTREE_EXT | ||
42 : | structure SMLNJMLTreeExt | ||
43 : | functor SMLNJMLTreeExtComp | ||
44 : | george | 984 | functor SMLNJPseudoOps |
45 : | blume | 879 | structure CodeString |
46 : | |||
47 : | functor MachineGen | ||
48 : | functor SpillTable | ||
49 : | functor FLINTComp | ||
50 : | functor BackendFn | ||
51 : | |||
52 : | structure ClusterAnnotation | ||
53 : | |||
54 : | blume | 902 | (* stuff that lived (or should have) in Frontend (aka GenericVC) *) |
55 : | blume | 879 | structure Control |
56 : | structure SymbolicEnv | ||
57 : | blume | 2222 | structure PrimOpTypeMap |
58 : | blume | 905 | structure PrimEnv |
59 : | blume | 879 | structure Environment |
60 : | structure EnvRef | ||
61 : | structure ModuleId | ||
62 : | structure GenModIdMap | ||
63 : | structure PickMod | ||
64 : | structure UnpickMod | ||
65 : | structure Rehash | ||
66 : | structure PickleSymPid | ||
67 : | structure UnpickleSymPid | ||
68 : | structure CompilerPPTable | ||
69 : | structure PrintHooks | ||
70 : | mblume | 1639 | structure SMLNJVersion |
71 : | blume | 879 | structure CoreSym |
72 : | structure FLINT | ||
73 : | |||
74 : | mblume | 1486 | structure Types |
75 : | structure EntityEnv | ||
76 : | structure Modules | ||
77 : | structure Stamps | ||
78 : | structure Bindings | ||
79 : | structure TypesUtil | ||
80 : | structure VarCon | ||
81 : | structure ModuleUtil | ||
82 : | blume | 2222 | structure PrimOpId |
83 : | mblume | 1486 | structure BasicTypes |
84 : | structure PPType | ||
85 : | structure Access | ||
86 : | structure Unify | ||
87 : | blume | 2222 | structure SigMatch |
88 : | mblume | 1486 | |
89 : | blume | 879 | (* corresponding signatures *) |
90 : | signature CONTROL | ||
91 : | signature SYMENV | ||
92 : | signature ENVIRONMENT | ||
93 : | blume | 905 | signature PRIM_ENV |
94 : | blume | 879 | signature ENVREF |
95 : | signature MODULE_ID | ||
96 : | signature PICKMOD | ||
97 : | signature UNPICKMOD | ||
98 : | signature FLINT | ||
99 : | mblume | 1486 | |
100 : | signature TYPES | ||
101 : | signature ENTITY_ENV | ||
102 : | signature MODULES | ||
103 : | signature STAMPS | ||
104 : | signature BINDINGS | ||
105 : | signature TYPESUTIL | ||
106 : | signature VARCON | ||
107 : | signature MODULEUTIL | ||
108 : | signature BASICTYPES | ||
109 : | signature PPTYPE | ||
110 : | signature ACCESS | ||
111 : | signature UNIFY | ||
112 : | mblume | 1617 | |
113 : | (* export of structures required to use FLINT directly *) | ||
114 : | structure Translate | ||
115 : | dbm | 3325 | structure TycPath |
116 : | gkuan | 2972 | structure FlexTycMap |
117 : | blume | 2222 | structure Lty |
118 : | structure LtyKindChk | ||
119 : | dbm | 2745 | structure LtyStructure |
120 : | structure LtyNorm | ||
121 : | mblume | 1617 | structure LtyExtern |
122 : | structure PrimTyc | ||
123 : | structure PPFlint | ||
124 : | structure LContract | ||
125 : | structure Specialize | ||
126 : | structure PrimOp | ||
127 : | structure LambdaVar | ||
128 : | structure ChkFlint | ||
129 : | structure DebIndex | ||
130 : | blume | 2222 | |
131 : | structure PPLty | ||
132 : | blume | 879 | is |
133 : | |||
134 : | TopLevel/environ/environ.sig | ||
135 : | TopLevel/environ/environ.sml | ||
136 : | TopLevel/environ/symenv.sig | ||
137 : | TopLevel/environ/symenv.sml | ||
138 : | blume | 902 | |
139 : | blume | 905 | TopLevel/interact/envref.sml |
140 : | blume | 879 | TopLevel/interact/evalloop.sig |
141 : | TopLevel/interact/evalloop.sml | ||
142 : | TopLevel/interact/interact.sig | ||
143 : | TopLevel/interact/interact.sml | ||
144 : | blume | 902 | |
145 : | TopLevel/backend/backend.sig | ||
146 : | TopLevel/backend/backend-fn.sml | ||
147 : | |||
148 : | TopLevel/main/control.sig | ||
149 : | TopLevel/main/control.sml | ||
150 : | blume | 879 | TopLevel/main/cconfig.sig |
151 : | TopLevel/main/code-generator.sig | ||
152 : | TopLevel/main/compile.sig | ||
153 : | TopLevel/main/compile.sml | ||
154 : | TopLevel/main/printhooks.sml | ||
155 : | TopLevel/main/pptable.sml | ||
156 : | |||
157 : | blume | 902 | (* Semantic analysis (elaborator) specialized for SML/NJ. *) |
158 : | dbm | 2572 | |
159 : | blume | 879 | |
160 : | Semant/pickle/pickle-sym-pid.sml | ||
161 : | dbm | 2572 | Semant/pickle/pickmod.sml |
162 : | blume | 879 | Semant/pickle/unpickle-sym-pid.sml |
163 : | dbm | 2572 | Semant/pickle/unpickmod.sml |
164 : | blume | 879 | Semant/pickle/rehash.sml |
165 : | |||
166 : | blume | 2222 | Semant/statenv/primoptypemap.sml |
167 : | blume | 879 | Semant/statenv/prim.sml |
168 : | blume | 902 | |
169 : | blume | 879 | Semant/types/cproto.sml |
170 : | |||
171 : | blume | 902 | |
172 : | (* The FLINT optimizer ("middle-end"). *) | ||
173 : | blume | 879 | FLINT/clos/allocprof.sml |
174 : | FLINT/clos/cps-split.sml | ||
175 : | FLINT/clos/freemap.sml | ||
176 : | FLINT/clos/globalfix.sml | ||
177 : | FLINT/clos/closure.sml | ||
178 : | FLINT/clos/freeclose.sml | ||
179 : | FLINT/clos/staticprof.sml | ||
180 : | FLINT/clos/unrebind.sml | ||
181 : | FLINT/cps/convert.sml | ||
182 : | FLINT/cps/cps.sig | ||
183 : | FLINT/cps/cps.sml | ||
184 : | FLINT/cps/cpstrans.sml | ||
185 : | FLINT/cps/ppcps.sml | ||
186 : | FLINT/cps/switch.sml | ||
187 : | FLINT/cpsopt/contract.sml | ||
188 : | FLINT/cpsopt/cpsopt.sml | ||
189 : | FLINT/cpsopt/eta.sml | ||
190 : | FLINT/cpsopt/etasplit.sml | ||
191 : | FLINT/cpsopt/expand.sml | ||
192 : | FLINT/cpsopt/expandNEW.sml | ||
193 : | FLINT/cpsopt/flatten.sml | ||
194 : | FLINT/cpsopt/uncurry.sml | ||
195 : | mblume | 1347 | FLINT/cpsopt/infcnv.sml |
196 : | blume | 879 | FLINT/flint/chkflint.sml |
197 : | FLINT/flint/flint.sig | ||
198 : | FLINT/flint/flint.sml | ||
199 : | FLINT/flint/flintutil.sml | ||
200 : | FLINT/flint/ppflint.sig | ||
201 : | FLINT/flint/ppflint.sml | ||
202 : | FLINT/flint/tvarcvt.sml | ||
203 : | blume | 903 | FLINT/kernel/primtyc.sig |
204 : | FLINT/kernel/primtyc.sml | ||
205 : | dbm | 2745 | FLINT/kernel/lty.sig |
206 : | FLINT/kernel/lty.sml | ||
207 : | dbm | 2746 | FLINT/kernel/ltynorm.sig |
208 : | FLINT/kernel/ltynorm.sml | ||
209 : | dbm | 2745 | FLINT/kernel/ltykindchk.sml |
210 : | dbm | 2746 | FLINT/kernel/ltystructure.sig |
211 : | FLINT/kernel/ltystructure.sml | ||
212 : | FLINT/kernel/ltyutil.sig | ||
213 : | FLINT/kernel/ltyutil.sml | ||
214 : | blume | 879 | FLINT/kernel/ltydict.sml |
215 : | dbm | 2745 | FLINT/kernel/ltymisc.sig |
216 : | FLINT/kernel/ltymisc.sml | ||
217 : | blume | 879 | FLINT/kernel/ltyextern.sig |
218 : | FLINT/kernel/ltyextern.sml | ||
219 : | blume | 2222 | |
220 : | dbm | 2745 | FLINT/kernel/ltytostring.sig |
221 : | FLINT/kernel/ltytostring.sml | ||
222 : | blume | 2222 | FLINT/kernel/pplty.sml |
223 : | |||
224 : | blume | 879 | FLINT/kernel/primop.sig |
225 : | FLINT/kernel/primop.sml | ||
226 : | FLINT/main/flintcomp.sml | ||
227 : | dbm | 2575 | FLINT/main/control.sig |
228 : | blume | 879 | FLINT/main/control.sml |
229 : | FLINT/main/literals.sml | ||
230 : | FLINT/opt/fixfix.sml | ||
231 : | FLINT/opt/collect.sml | ||
232 : | FLINT/opt/fcontract.sml | ||
233 : | FLINT/opt/optutils.sml | ||
234 : | FLINT/opt/lcontract.sml | ||
235 : | FLINT/opt/recover.sml | ||
236 : | FLINT/opt/specialize.sml | ||
237 : | FLINT/opt/loopify.sml | ||
238 : | FLINT/opt/split.sml | ||
239 : | FLINT/opt/lift.sml | ||
240 : | FLINT/opt/abcopt.sml | ||
241 : | FLINT/plambda/chkplexp.sml | ||
242 : | FLINT/plambda/flintnm.sml | ||
243 : | FLINT/plambda/pflatten.sig | ||
244 : | FLINT/plambda/pflatten.sml | ||
245 : | FLINT/plambda/plambda.sig | ||
246 : | FLINT/plambda/plambda.sml | ||
247 : | FLINT/plambda/plambdatype.sml | ||
248 : | FLINT/plambda/pplexp.sml | ||
249 : | FLINT/plambda/reorder.sml | ||
250 : | FLINT/reps/coerce.sml | ||
251 : | FLINT/reps/equal.sml | ||
252 : | FLINT/reps/reify.sml | ||
253 : | FLINT/reps/rttype.sml | ||
254 : | FLINT/reps/typeoper.sml | ||
255 : | FLINT/reps/wrapping.sml | ||
256 : | FLINT/trans/matchcomp.sml | ||
257 : | FLINT/trans/mccommon.sml | ||
258 : | FLINT/trans/pequal.sml | ||
259 : | FLINT/trans/tempexpn.sml | ||
260 : | blume | 2222 | FLINT/trans/primopmap.sml |
261 : | blume | 879 | FLINT/trans/translate.sml |
262 : | dbm | 3299 | FLINT/trans/module-plists.sml |
263 : | blume | 879 | FLINT/trans/transtypes.sml |
264 : | dbm | 3325 | FLINT/trans/tycpath.sml |
265 : | gkuan | 2972 | FLINT/trans/flextycmap.sml |
266 : | blume | 879 | |
267 : | FLINT/lsplit/ls-inline.sml | ||
268 : | |||
269 : | blume | 902 | |
270 : | (* The code generator (MLRISC specialized for SML/NJ). *) | ||
271 : | blume | 879 | CodeGen/cpscompile/argPassing.sig |
272 : | CodeGen/cpscompile/argPassing.sml | ||
273 : | allenleung | 1785 | CodeGen/cpscompile/check-gc.sml |
274 : | blume | 879 | CodeGen/cpscompile/cluster.sml |
275 : | CodeGen/cpscompile/cps-aliasing.sml | ||
276 : | leunga | 1174 | CodeGen/cpscompile/cps-c-calls.sml |
277 : | george | 1168 | CodeGen/cpscompile/cpsBranchProb.sml |
278 : | blume | 879 | CodeGen/cpscompile/cpsRegions.sig |
279 : | CodeGen/cpscompile/cpsRegions.sml | ||
280 : | CodeGen/cpscompile/cpsRegs.sig | ||
281 : | CodeGen/cpscompile/frag.sig | ||
282 : | CodeGen/cpscompile/frag.sml | ||
283 : | CodeGen/cpscompile/invokegc.sig | ||
284 : | CodeGen/cpscompile/invokegc.sml | ||
285 : | CodeGen/cpscompile/limit.sml | ||
286 : | CodeGen/cpscompile/memAliasing.sml | ||
287 : | CodeGen/cpscompile/memDisambig.sml | ||
288 : | george | 984 | CodeGen/cpscompile/smlnj-pseudoOps.sig |
289 : | blume | 879 | CodeGen/cpscompile/smlnj-const.sml |
290 : | CodeGen/cpscompile/smlnj-gctype.sig | ||
291 : | CodeGen/cpscompile/smlnj-gctype.sml | ||
292 : | CodeGen/cpscompile/smlnj-mltreeext.sig | ||
293 : | CodeGen/cpscompile/smlnj-mltreeext.sml | ||
294 : | george | 984 | CodeGen/cpscompile/smlnj-pseudoOps.sml |
295 : | leunga | 1094 | CodeGen/cpscompile/spill-new.sml |
296 : | blume | 902 | CodeGen/main/clusterAnnotation.sml (* temporary hack; see comment in file *) |
297 : | blume | 879 | CodeGen/main/code-string.sml |
298 : | CodeGen/main/machine.sig | ||
299 : | CodeGen/main/machine-gen.sig | ||
300 : | CodeGen/main/machine-gen.sml | ||
301 : | CodeGen/main/machspec.sig | ||
302 : | CodeGen/main/machspec.sml | ||
303 : | CodeGen/main/mlriscGen.sml | ||
304 : | CodeGen/main/object-desc.sig | ||
305 : | CodeGen/main/object-desc.sml | ||
306 : | CodeGen/main/spill-table.sml | ||
307 : | |||
308 : | blume | 902 | (* Miscellaneous utilities. *) |
309 : | blume | 879 | MiscUtil/bignums/realconst.sml |
310 : | MiscUtil/bignums/ieeereal.sml | ||
311 : | blume | 902 | |
312 : | blume | 879 | MiscUtil/print/ppdec.sml |
313 : | MiscUtil/print/ppobj.sml | ||
314 : | MiscUtil/print/pptable.sml | ||
315 : | blume | 902 | |
316 : | blume | 879 | MiscUtil/util/feedback.sml |
317 : | mblume | 1347 | MiscUtil/util/literal-to-num.sml (* uses CoreIntInf functionality *) |
318 : | blume | 879 | |
319 : | blume | 902 | (* Libraries that are part of the visible compiler framework. *) |
320 : | $smlnj/viscomp/basics.cm | ||
321 : | $smlnj/viscomp/parser.cm | ||
322 : | $smlnj/viscomp/elabdata.cm | ||
323 : | $smlnj/viscomp/elaborate.cm | ||
324 : | blume | 903 | $smlnj/viscomp/debugprof.cm |
325 : | blume | 902 | $smlnj/viscomp/execute.cm |
326 : | |||
327 : | (* MLRISC libraries. *) | ||
328 : | $smlnj/MLRISC/Lib.cm (* provides SortedList *) | ||
329 : | $smlnj/MLRISC/Control.cm | ||
330 : | george | 909 | $smlnj/MLRISC/Graphs.cm |
331 : | blume | 902 | $smlnj/MLRISC/MLRISC.cm |
332 : | george | 1168 | $smlnj/MLRISC/Visual.cm |
333 : | |||
334 : | blume | 902 | (* Other libaries. *) |
335 : | mblume | 1863 | $smlnj/basis/basis.cm |
336 : | $smlnj/smlnj-lib/smlnj-lib.cm | ||
337 : | $smlnj/smlnj-lib/controls-lib.cm | ||
338 : | blume | 879 | $/pickle-lib.cm |
339 : | mblume | 1347 | |
340 : | $smlnj/init/init.cmi : cm (* to gain access at CoreIntInf *) | ||
341 : | mblume | 1639 | |
342 : | $smlnj/internal/smlnj-version.cm |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |