Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/branches/primop-branch-3/compiler/core.cm
ViewVC logotype

Annotation of /sml/branches/primop-branch-3/compiler/core.cm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3293 - (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 : gkuan 3293 structure TypesTP
116 : gkuan 2972 structure FlexTycMap
117 : gkuan 2751 structure RepTycProps
118 : blume 2222 structure Lty
119 :     structure LtyKindChk
120 : dbm 2745 structure LtyStructure
121 :     structure LtyNorm
122 : mblume 1617 structure LtyExtern
123 :     structure PrimTyc
124 :     structure PPFlint
125 :     structure LContract
126 :     structure Specialize
127 :     structure PrimOp
128 :     structure LambdaVar
129 :     structure ChkFlint
130 :     structure DebIndex
131 : blume 2222
132 :     structure PPLty
133 : blume 879 is
134 :    
135 :     TopLevel/environ/environ.sig
136 :     TopLevel/environ/environ.sml
137 :     TopLevel/environ/symenv.sig
138 :     TopLevel/environ/symenv.sml
139 : blume 902
140 : blume 905 TopLevel/interact/envref.sml
141 : blume 879 TopLevel/interact/evalloop.sig
142 :     TopLevel/interact/evalloop.sml
143 :     TopLevel/interact/interact.sig
144 :     TopLevel/interact/interact.sml
145 : blume 902
146 :     TopLevel/backend/backend.sig
147 :     TopLevel/backend/backend-fn.sml
148 :    
149 :     TopLevel/main/control.sig
150 :     TopLevel/main/control.sml
151 : blume 879 TopLevel/main/cconfig.sig
152 :     TopLevel/main/code-generator.sig
153 :     TopLevel/main/compile.sig
154 :     TopLevel/main/compile.sml
155 :     TopLevel/main/printhooks.sml
156 :     TopLevel/main/pptable.sml
157 :    
158 : blume 902 (* Semantic analysis (elaborator) specialized for SML/NJ. *)
159 : dbm 2572
160 : blume 902 Semant/modules/module-plists.sml
161 : blume 879
162 :     Semant/pickle/pickle-sym-pid.sml
163 : dbm 2572 Semant/pickle/pickmod.sml
164 : blume 879 Semant/pickle/unpickle-sym-pid.sml
165 : dbm 2572 Semant/pickle/unpickmod.sml
166 : blume 879 Semant/pickle/rehash.sml
167 :    
168 : blume 2222 Semant/statenv/primoptypemap.sml
169 : blume 879 Semant/statenv/prim.sml
170 : blume 902
171 : blume 879 Semant/types/cproto.sml
172 :    
173 : blume 902
174 :     (* The FLINT optimizer ("middle-end"). *)
175 : blume 879 FLINT/clos/allocprof.sml
176 :     FLINT/clos/cps-split.sml
177 :     FLINT/clos/freemap.sml
178 :     FLINT/clos/globalfix.sml
179 :     FLINT/clos/closure.sml
180 :     FLINT/clos/freeclose.sml
181 :     FLINT/clos/staticprof.sml
182 :     FLINT/clos/unrebind.sml
183 :     FLINT/cps/convert.sml
184 :     FLINT/cps/cps.sig
185 :     FLINT/cps/cps.sml
186 :     FLINT/cps/cpstrans.sml
187 :     FLINT/cps/ppcps.sml
188 :     FLINT/cps/switch.sml
189 :     FLINT/cpsopt/contract.sml
190 :     FLINT/cpsopt/cpsopt.sml
191 :     FLINT/cpsopt/eta.sml
192 :     FLINT/cpsopt/etasplit.sml
193 :     FLINT/cpsopt/expand.sml
194 :     FLINT/cpsopt/expandNEW.sml
195 :     FLINT/cpsopt/flatten.sml
196 :     FLINT/cpsopt/uncurry.sml
197 : mblume 1347 FLINT/cpsopt/infcnv.sml
198 : blume 879 FLINT/flint/chkflint.sml
199 :     FLINT/flint/flint.sig
200 :     FLINT/flint/flint.sml
201 :     FLINT/flint/flintutil.sml
202 :     FLINT/flint/ppflint.sig
203 :     FLINT/flint/ppflint.sml
204 :     FLINT/flint/tvarcvt.sml
205 : blume 903 FLINT/kernel/primtyc.sig
206 :     FLINT/kernel/primtyc.sml
207 : dbm 2745 FLINT/kernel/lty.sig
208 :     FLINT/kernel/lty.sml
209 : dbm 2746 FLINT/kernel/ltynorm.sig
210 :     FLINT/kernel/ltynorm.sml
211 : dbm 2745 FLINT/kernel/ltykindchk.sml
212 : dbm 2746 FLINT/kernel/ltystructure.sig
213 :     FLINT/kernel/ltystructure.sml
214 :     FLINT/kernel/ltyutil.sig
215 :     FLINT/kernel/ltyutil.sml
216 : blume 879 FLINT/kernel/ltydict.sml
217 : dbm 2745 FLINT/kernel/ltymisc.sig
218 :     FLINT/kernel/ltymisc.sml
219 : blume 879 FLINT/kernel/ltyextern.sig
220 :     FLINT/kernel/ltyextern.sml
221 : blume 2222
222 : dbm 2745 FLINT/kernel/ltytostring.sig
223 :     FLINT/kernel/ltytostring.sml
224 : blume 2222 FLINT/kernel/pplty.sml
225 :    
226 : blume 879 FLINT/kernel/primop.sig
227 :     FLINT/kernel/primop.sml
228 :     FLINT/main/flintcomp.sml
229 : dbm 2575 FLINT/main/control.sig
230 : blume 879 FLINT/main/control.sml
231 :     FLINT/main/literals.sml
232 :     FLINT/opt/fixfix.sml
233 :     FLINT/opt/collect.sml
234 :     FLINT/opt/fcontract.sml
235 :     FLINT/opt/optutils.sml
236 :     FLINT/opt/lcontract.sml
237 :     FLINT/opt/recover.sml
238 :     FLINT/opt/specialize.sml
239 :     FLINT/opt/loopify.sml
240 :     FLINT/opt/split.sml
241 :     FLINT/opt/lift.sml
242 :     FLINT/opt/abcopt.sml
243 :     FLINT/plambda/chkplexp.sml
244 :     FLINT/plambda/flintnm.sml
245 :     FLINT/plambda/pflatten.sig
246 :     FLINT/plambda/pflatten.sml
247 :     FLINT/plambda/plambda.sig
248 :     FLINT/plambda/plambda.sml
249 :     FLINT/plambda/plambdatype.sml
250 :     FLINT/plambda/pplexp.sml
251 :     FLINT/plambda/reorder.sml
252 :     FLINT/reps/coerce.sml
253 :     FLINT/reps/equal.sml
254 :     FLINT/reps/reify.sml
255 :     FLINT/reps/rttype.sml
256 :     FLINT/reps/typeoper.sml
257 :     FLINT/reps/wrapping.sml
258 :     FLINT/trans/matchcomp.sml
259 :     FLINT/trans/mccommon.sml
260 :     FLINT/trans/pequal.sml
261 :     FLINT/trans/tempexpn.sml
262 : blume 2222 FLINT/trans/primopmap.sml
263 : blume 879 FLINT/trans/translate.sml
264 :     FLINT/trans/transtypes.sml
265 : gkuan 2961 FLINT/trans/typestp.sml
266 : gkuan 2972 FLINT/trans/flextycmap.sml
267 : gkuan 2751 FLINT/trans/reptycprops.sml
268 : blume 879
269 :     FLINT/lsplit/ls-inline.sml
270 :    
271 : blume 902
272 :     (* The code generator (MLRISC specialized for SML/NJ). *)
273 : blume 879 CodeGen/cpscompile/argPassing.sig
274 :     CodeGen/cpscompile/argPassing.sml
275 : allenleung 1785 CodeGen/cpscompile/check-gc.sml
276 : blume 879 CodeGen/cpscompile/cluster.sml
277 :     CodeGen/cpscompile/cps-aliasing.sml
278 : leunga 1174 CodeGen/cpscompile/cps-c-calls.sml
279 : george 1168 CodeGen/cpscompile/cpsBranchProb.sml
280 : blume 879 CodeGen/cpscompile/cpsRegions.sig
281 :     CodeGen/cpscompile/cpsRegions.sml
282 :     CodeGen/cpscompile/cpsRegs.sig
283 :     CodeGen/cpscompile/frag.sig
284 :     CodeGen/cpscompile/frag.sml
285 :     CodeGen/cpscompile/invokegc.sig
286 :     CodeGen/cpscompile/invokegc.sml
287 :     CodeGen/cpscompile/limit.sml
288 :     CodeGen/cpscompile/memAliasing.sml
289 :     CodeGen/cpscompile/memDisambig.sml
290 : george 984 CodeGen/cpscompile/smlnj-pseudoOps.sig
291 : blume 879 CodeGen/cpscompile/smlnj-const.sml
292 :     CodeGen/cpscompile/smlnj-gctype.sig
293 :     CodeGen/cpscompile/smlnj-gctype.sml
294 :     CodeGen/cpscompile/smlnj-mltreeext.sig
295 :     CodeGen/cpscompile/smlnj-mltreeext.sml
296 : george 984 CodeGen/cpscompile/smlnj-pseudoOps.sml
297 : leunga 1094 CodeGen/cpscompile/spill-new.sml
298 : blume 902 CodeGen/main/clusterAnnotation.sml (* temporary hack; see comment in file *)
299 : blume 879 CodeGen/main/code-string.sml
300 :     CodeGen/main/machine.sig
301 :     CodeGen/main/machine-gen.sig
302 :     CodeGen/main/machine-gen.sml
303 :     CodeGen/main/machspec.sig
304 :     CodeGen/main/machspec.sml
305 :     CodeGen/main/mlriscGen.sml
306 :     CodeGen/main/object-desc.sig
307 :     CodeGen/main/object-desc.sml
308 :     CodeGen/main/spill-table.sml
309 :    
310 : blume 902 (* Miscellaneous utilities. *)
311 : blume 879 MiscUtil/bignums/realconst.sml
312 :     MiscUtil/bignums/ieeereal.sml
313 : blume 902
314 : blume 879 MiscUtil/print/ppdec.sml
315 :     MiscUtil/print/ppobj.sml
316 :     MiscUtil/print/pptable.sml
317 : blume 902
318 : blume 879 MiscUtil/util/feedback.sml
319 : mblume 1347 MiscUtil/util/literal-to-num.sml (* uses CoreIntInf functionality *)
320 : blume 879
321 : blume 902 (* Libraries that are part of the visible compiler framework. *)
322 :     $smlnj/viscomp/basics.cm
323 :     $smlnj/viscomp/parser.cm
324 :     $smlnj/viscomp/elabdata.cm
325 :     $smlnj/viscomp/elaborate.cm
326 : blume 903 $smlnj/viscomp/debugprof.cm
327 : blume 902 $smlnj/viscomp/execute.cm
328 :    
329 :     (* MLRISC libraries. *)
330 :     $smlnj/MLRISC/Lib.cm (* provides SortedList *)
331 :     $smlnj/MLRISC/Control.cm
332 : george 909 $smlnj/MLRISC/Graphs.cm
333 : blume 902 $smlnj/MLRISC/MLRISC.cm
334 : george 1168 $smlnj/MLRISC/Visual.cm
335 :    
336 : blume 902 (* Other libaries. *)
337 : mblume 1863 $smlnj/basis/basis.cm
338 :     $smlnj/smlnj-lib/smlnj-lib.cm
339 :     $smlnj/smlnj-lib/controls-lib.cm
340 : blume 879 $/pickle-lib.cm
341 : mblume 1347
342 :     $smlnj/init/init.cmi : cm (* to gain access at CoreIntInf *)
343 : mblume 1639
344 :     $smlnj/internal/smlnj-version.cm

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0