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/trunk/src/compiler/core.cm
ViewVC logotype

Annotation of /sml/trunk/src/compiler/core.cm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 902 - (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 :     Group (../system/smlnj/viscomp/core.cm)
19 :     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 :    
29 :     structure CPSRegions
30 :     structure SMLGCType
31 :    
32 :     (* To be able to separate machine-dependent parts of viscomp-lib.cm
33 :     * from machine-independent parts, we must also export the
34 :     * the following things.... *)
35 :    
36 :     signature MACH_SPEC
37 :    
38 :     structure DefaultMachSpec
39 :     structure SMLNJConstant
40 :     signature SMLNJ_MLTREE_EXT
41 :     structure SMLNJMLTreeExt
42 :     functor SMLNJMLTreeExtComp
43 :     structure CodeString
44 :    
45 :     functor PseudoOpsBig
46 :     functor PseudoOpsLittle
47 :     functor MachineGen
48 :     functor SpillTable
49 :     functor FLINTComp
50 :     functor BackendFn
51 :    
52 :     functor DummyCCallsFn
53 :     structure ClusterAnnotation
54 :    
55 : blume 902 (* stuff that lived (or should have) in Frontend (aka GenericVC) *)
56 : blume 879 structure Control
57 :     structure SymbolicEnv
58 :     structure Environment
59 :     structure EnvRef
60 :     structure ModuleId
61 :     structure GenModIdMap
62 :     structure PickMod
63 :     structure UnpickMod
64 :     structure Rehash
65 :     structure PickleSymPid
66 :     structure UnpickleSymPid
67 :     structure CompilerPPTable
68 :     structure PrintHooks
69 :     structure CompilerVersion
70 :     structure CoreSym
71 :     structure FLINT
72 :    
73 :     (* corresponding signatures *)
74 :     signature CONTROL
75 :     signature SYMENV
76 :     signature ENVIRONMENT
77 :     signature ENVREF
78 :     signature MODULE_ID
79 :     signature PICKMOD
80 :     signature UNPICKMOD
81 :     signature FLINT
82 :     is
83 :    
84 :     TopLevel/environ/environ.sig
85 :     TopLevel/environ/environ.sml
86 :     TopLevel/environ/envref.sml
87 :     TopLevel/environ/symenv.sig
88 :     TopLevel/environ/symenv.sml
89 : blume 902
90 : blume 879 TopLevel/interact/evalloop.sig
91 :     TopLevel/interact/evalloop.sml
92 :     TopLevel/interact/interact.sig
93 :     TopLevel/interact/interact.sml
94 : blume 902
95 :     TopLevel/backend/backend.sig
96 :     TopLevel/backend/backend-fn.sml
97 :    
98 :     TopLevel/main/control.sig
99 :     TopLevel/main/control.sml
100 : blume 879 TopLevel/main/cconfig.sig
101 :     TopLevel/main/code-generator.sig
102 :     TopLevel/main/compile.sig
103 :     TopLevel/main/compile.sml
104 :     TopLevel/main/version.sml
105 :     TopLevel/main/printhooks.sml
106 :     TopLevel/main/pptable.sml
107 :    
108 :    
109 : blume 902 (* Semantic analysis (elaborator) specialized for SML/NJ. *)
110 :     Semant/basics/inlinfo.sig
111 :     Semant/basics/inlinfo.sml
112 : blume 879
113 :     Semant/elaborate/elabmod.sml
114 :     Semant/elaborate/elabtop.sml
115 : blume 902
116 :     Semant/modules/instantiate-param.sml
117 : blume 879 Semant/modules/instantiate.sml
118 :     Semant/modules/sigmatch.sml
119 : blume 902 Semant/modules/evalent.sml
120 :     Semant/modules/module-plists.sml
121 : blume 879
122 :     Semant/pickle/pickle-sym-pid.sml
123 :     Semant/pickle/pickmod-new.sml
124 :     Semant/pickle/unpickle-sym-pid.sml
125 :     Semant/pickle/unpickmod-new.sml
126 :     Semant/pickle/rehash.sml
127 :    
128 :     Semant/statenv/prim.sml
129 : blume 902
130 :     Semant/types/tp-var-info.sml
131 : blume 879 Semant/types/reconstruct.sml
132 :     Semant/types/typecheck.sml
133 :     Semant/types/cproto.sml
134 :    
135 : blume 902
136 :     (* The FLINT optimizer ("middle-end"). *)
137 : blume 879 FLINT/clos/allocprof.sml
138 :     FLINT/clos/cps-split.sml
139 :     FLINT/clos/freemap.sml
140 :     FLINT/clos/globalfix.sml
141 :     FLINT/clos/closure.sml
142 :     FLINT/clos/freeclose.sml
143 :     FLINT/clos/staticprof.sml
144 :     FLINT/clos/unrebind.sml
145 :     FLINT/cps/convert.sml
146 :     FLINT/cps/cps.sig
147 :     FLINT/cps/cps.sml
148 :     FLINT/cps/cpstrans.sml
149 :     FLINT/cps/ppcps.sml
150 :     FLINT/cps/switch.sml
151 :     FLINT/cpsopt/contract.sml
152 :     FLINT/cpsopt/cpsopt.sml
153 :     FLINT/cpsopt/eta.sml
154 :     FLINT/cpsopt/etasplit.sml
155 :     FLINT/cpsopt/expand.sml
156 :     FLINT/cpsopt/expandNEW.sml
157 :     FLINT/cpsopt/flatten.sml
158 :     FLINT/cpsopt/uncurry.sml
159 :     FLINT/flint/chkflint.sml
160 :     FLINT/flint/flint.sig
161 :     FLINT/flint/flint.sml
162 :     FLINT/flint/flintutil.sml
163 :     FLINT/flint/ppflint.sig
164 :     FLINT/flint/ppflint.sml
165 :     FLINT/flint/tvarcvt.sml
166 :     FLINT/kernel/ltybasic.sig
167 :     FLINT/kernel/ltybasic.sml
168 :     FLINT/kernel/ltydef.sig
169 :     FLINT/kernel/ltydef.sml
170 :     FLINT/kernel/ltydict.sml
171 :     FLINT/kernel/ltyextern.sig
172 :     FLINT/kernel/ltyextern.sml
173 :     FLINT/kernel/ltykernel.sig
174 :     FLINT/kernel/ltykernel.sml
175 :     FLINT/kernel/primop.sig
176 :     FLINT/kernel/primop.sml
177 :     FLINT/main/flintcomp.sml
178 :     FLINT/main/control.sml
179 :     FLINT/main/literals.sml
180 :     FLINT/opt/fixfix.sml
181 :     FLINT/opt/collect.sml
182 :     FLINT/opt/fcontract.sml
183 :     FLINT/opt/optutils.sml
184 :     FLINT/opt/lcontract.sml
185 :     FLINT/opt/recover.sml
186 :     FLINT/opt/specialize.sml
187 :     FLINT/opt/loopify.sml
188 :     FLINT/opt/split.sml
189 :     FLINT/opt/lift.sml
190 :     FLINT/opt/abcopt.sml
191 :     FLINT/plambda/chkplexp.sml
192 :     FLINT/plambda/flintnm.sml
193 :     FLINT/plambda/pflatten.sig
194 :     FLINT/plambda/pflatten.sml
195 :     FLINT/plambda/plambda.sig
196 :     FLINT/plambda/plambda.sml
197 :     FLINT/plambda/plambdatype.sml
198 :     FLINT/plambda/pplexp.sml
199 :     FLINT/plambda/reorder.sml
200 :     FLINT/reps/coerce.sml
201 :     FLINT/reps/equal.sml
202 :     FLINT/reps/reify.sml
203 :     FLINT/reps/rttype.sml
204 :     FLINT/reps/typeoper.sml
205 :     FLINT/reps/wrapping.sml
206 :     FLINT/trans/matchcomp.sml
207 :     FLINT/trans/mccommon.sml
208 :     FLINT/trans/pequal.sml
209 :     FLINT/trans/tempexpn.sml
210 :     FLINT/trans/translate.sml
211 :     FLINT/trans/transtypes.sml
212 :    
213 :     FLINT/lsplit/ls-inline.sml
214 :    
215 : blume 902
216 :     (* The code generator (MLRISC specialized for SML/NJ). *)
217 : blume 879 CodeGen/cpscompile/argPassing.sig
218 :     CodeGen/cpscompile/argPassing.sml
219 :     CodeGen/cpscompile/cluster.sml
220 :     CodeGen/cpscompile/cps-aliasing.sml
221 :     CodeGen/cpscompile/cpsRegions.sig
222 :     CodeGen/cpscompile/cpsRegions.sml
223 :     CodeGen/cpscompile/cpsRegs.sig
224 :     CodeGen/cpscompile/frag.sig
225 :     CodeGen/cpscompile/frag.sml
226 :     CodeGen/cpscompile/invokegc.sig
227 :     CodeGen/cpscompile/invokegc.sml
228 :     CodeGen/cpscompile/limit.sml
229 :     CodeGen/cpscompile/memAliasing.sml
230 :     CodeGen/cpscompile/memDisambig.sml
231 :     CodeGen/cpscompile/pseudoOpType.sig
232 :     CodeGen/cpscompile/pseudoOpsBig.sml
233 :     CodeGen/cpscompile/pseudoOpsLittle.sml
234 :     CodeGen/cpscompile/smlnj-const.sml
235 :     CodeGen/cpscompile/smlnj-gctype.sig
236 :     CodeGen/cpscompile/smlnj-gctype.sml
237 :     CodeGen/cpscompile/smlnj-mltreeext.sig
238 :     CodeGen/cpscompile/smlnj-mltreeext.sml
239 :     CodeGen/cpscompile/spill.sml
240 : blume 902 CodeGen/main/clusterAnnotation.sml (* temporary hack; see comment in file *)
241 : blume 879 CodeGen/main/code-string.sml
242 :     CodeGen/main/machine.sig
243 :     CodeGen/main/machine-gen.sig
244 :     CodeGen/main/machine-gen.sml
245 :     CodeGen/main/machspec.sig
246 :     CodeGen/main/machspec.sml
247 :     CodeGen/main/mlriscGen.sml
248 :     CodeGen/main/object-desc.sig
249 :     CodeGen/main/object-desc.sml
250 :     CodeGen/main/spill-table.sml
251 :     CodeGen/main/dummy-ccalls.sml
252 :    
253 : blume 902
254 :     (* Miscellaneous utilities. *)
255 : blume 879 MiscUtil/bignums/realconst.sml
256 :     MiscUtil/bignums/ieeereal.sml
257 : blume 902
258 : blume 879 MiscUtil/print/ppdec.sml
259 :     MiscUtil/print/ppobj.sml
260 :     MiscUtil/print/pptable.sml
261 : blume 902
262 : blume 879 MiscUtil/profile/prof-env.sml
263 :     MiscUtil/profile/profile-fn.sml
264 :     MiscUtil/profile/profile.sig
265 :     MiscUtil/profile/profile.sml
266 :     MiscUtil/profile/sprof.sml
267 :     MiscUtil/profile/tell-env.sml
268 :     MiscUtil/profile/tprof.sml
269 :     MiscUtil/profile/btrace.sml
270 :     MiscUtil/profile/btimp.sml
271 :    
272 :     MiscUtil/util/feedback.sml
273 :     MiscUtil/util/literal-to-num.sml
274 :    
275 : blume 902 (* Libraries that are part of the visible compiler framework. *)
276 :     $smlnj/viscomp/basics.cm
277 :     $smlnj/viscomp/parser.cm
278 :     $smlnj/viscomp/elabdata.cm
279 :     $smlnj/viscomp/elaborate.cm
280 :     $smlnj/viscomp/execute.cm
281 :    
282 :     (* MLRISC libraries. *)
283 :     $smlnj/MLRISC/Lib.cm (* provides SortedList *)
284 :     $smlnj/MLRISC/Control.cm
285 :     $smlnj/MLRISC/MLRISC.cm
286 :    
287 :     (* Other libaries. *)
288 : blume 879 $/basis.cm
289 :     $/smlnj-lib.cm
290 :     $/pickle-lib.cm

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