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/FLINT/ChangeLog
ViewVC logotype

Annotation of /sml/trunk/src/compiler/FLINT/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 699 - (view) (download)

1 : monnier 699 2000-08-21 Stefan Monnier <monnier@cs.yale.edu>
2 :    
3 :     * main/flintcomp.sml (FLINTComp.flintcomp): Convert named type vars
4 :     in `fi' back into deBruijn indices since this is still the
5 :     representation used outside of flintcomp (i.e. in LSplitInline).
6 :    
7 : yx29 667 2000-06-16 Yichen Xie <yichen.xie@yale.edu>
8 :     * opt/abcopt.sml: bug fix in hoist function. FLINT type check
9 :     error should be gone now.
10 :    
11 : monnier 626 2000-04-22 Stefan Monnier <monnier@cs.yale.edu>
12 :    
13 :     * opt/flintopt.txt: New file.
14 :    
15 :     * opt/abcopt.sml: New file.
16 :    
17 :     * main/flintcomp.sml: Change `Compiler' to `FLINT' or `CPS' in the
18 :     name of phases printed by Compiler.Stats.
19 :     (abcopt): New phase.
20 :    
21 :     * main/control.sml (phases): Move loopify+fixfix to before wrap.
22 :    
23 :     * cpsopt/cpsopt.sml (zeroexpand): New function.
24 :    
25 : monnier 622 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
26 :    
27 :     * reps/typeoper.sml (tkAbsGen): Remove.
28 :    
29 :     * opt/fixfix.sml (curry): Make sure that uncurrying will not make a
30 :     function recursive, but allow uncurrying a mix of functor and function
31 :     in some restricted cases.
32 :     (uncurry): Properly handle the new functor/function case.
33 :     (SWITCH): Don't change the ordering while folding over the arms.
34 :     Plus some cosmetic code movements to avoid long lines.
35 :    
36 :     * main/control.sml (phases): Move loopify (and its fixfix) to before
37 :     `reify' (while still keeping a fixfix after reify).
38 :    
39 : monnier 604 2000-04-07 Stefan Monnier <monnier@cs.yale.edu>
40 :    
41 :     * opt/switchoff.sml: Remove.
42 :    
43 :     * main/flintcomp.sml: Remove switchoff-code and fix the Stats.doPhase
44 :     call for fcontract so as to get correct measurements.
45 :    
46 :     * reps/equal.sml: Rewritten to generate more CPS-like code.
47 :    
48 :     * opt/fcontract.sml (fcLet): re-introduced the branch/switch code,
49 :     but without the deadly multiple traversals.
50 :    
51 : monnier 540 2000-02-18 Stefan Monnier <monnier@cs.yale.edu>
52 :    
53 :     * opt/switchoff.sml (inside/LET): use IH_MAYBE instead of IH_ALWAYS.
54 :    
55 : monnier 529 2000-01-31 Stefan Monnier <monnier@cs.yale.edu>
56 :    
57 :     * opt/fcontract.sml (fcLet/cassoc): don't do a second pass over the output
58 :     of the rewrite. It leads to quadratic behavior for `x1 andalso x2 ...'.
59 :    
60 : monnier 489 1999-07-10 Stefan Monnier <monnier@cs.yale.edu>
61 :    
62 :     * opt/split.sml: don't burp when you can't split.
63 :    
64 : monnier 220 1999-03-08 Stefan Monnier <monnier@cs.yale.edu>
65 :    
66 :     * opt/split.sml (sexp): don't split HANDLE (it's incorrect).
67 :     (funeffect): embryo to detect side-effect free APPs (non-functional).
68 :     (splitThreshold): to put a cap on inlining.
69 : monnier 523 (stfn): don't bother splitting inlinable TFNs.
70 : monnier 220
71 :     * main/control.sml (splitThreshold): new var.
72 :    
73 :     * opt/specialize (kBnd): be more conservative with nvars (it's too
74 :     conservative, now).
75 :    
76 :     * opt/fixfix.sml (curry): fixed bug when uncurrying cooked functions.
77 :    
78 :     * opt/fcontract.sml (fcFun): fix bug when undertaking mut-rec functions.
79 :    
80 :     * main/flintcomp.sml: added `recover' to help debugging.
81 :     updated the fold to allow extraction of Fi and return it at the end.
82 :    
83 :     * lsplit/ls-inline.sml (oneBranch): fixed the wrapper function.
84 :    
85 :     * flint/flintutil.sml (freevars): forgot to count the arg of SWITCH.
86 :    
87 :     * flint/flint.sig: added a tfkind to TFN (only inlining for now).
88 :    
89 :     * main/control.sml: new file. Moved from TopLevel/viscomp/control.sml
90 :    
91 :     1999-03-04 Stefan Monnier <monnier@cs.yale.edu>
92 :    
93 :     * kernel/ltyextern.sml (tnarrow), reps/{reify,rttype,typeoper}.sml:
94 :     flatten arguments when reifying them since the pretty-printer doesn't
95 :     know how to deal with flattened reified TFNs.
96 :    
97 :     1999-03-02 Stefan Monnier <monnier@cs.yale.edu>
98 :    
99 :     * kernel/ltyextern.sml (tnarrow), reps/{reify,rttype,typeoper}.sml:
100 :     don't unflatten arguments when reifying them.
101 :    
102 :     1999-02-28 Stefan Monnier <monnier@cs.yale.edu>
103 :    
104 :     * opt/fcontract.sml (fcEta): do the known->unknown eta-reduce if the
105 :     `known' function is not locally defined (in which case the known/unknown
106 :     distinction is pointless anyway).
107 :     (wrap): don't forget to junk dead inlinable functions.
108 :    
109 :     1999-02-26 Stefan Monnier <monnier@cs.yale.edu>
110 :    
111 :     * opt/split.sml: seriously reworked. Now splits TFNs as well.
112 :    
113 :     1999-02-25 Stefan Monnier <monnier@cs.yale.edu>
114 :    
115 :     * kernel/primop.sml (effect): removed DEREF and MAKEREF from the pure
116 :     primops.
117 :    
118 :     1999-02-24 Stefan Monnier <monnier@cs.yale.edu>
119 :    
120 :     * flint/flintutil.sml (copy): sort the type-map since {lt,tc}_subst
121 :     actually expects it to be sorted.
122 :    
123 :     1999-02-23 Stefan Monnier <monnier@cs.yale.edu>
124 :    
125 :     * opt/recover.sml (lt_nvpoly): moved to ltyextern.sml
126 :    
127 :     * kernel/ltyextern.{sml,sig} (lt_nvpoly): new function (digged from
128 :     recover.sml to build a LT_POLY in the case of named tvars.
129 :    
130 :     1999-02-20 Stefan Monnier <monnier@cs.yale.edu>
131 :    
132 :     * opt/recover.sml: removed unused depth arguments left behind from before
133 :     we switched to named tvars.
134 :     (addLty): added for the benefit of opt/split.sml
135 :    
136 :     1999-02-17 Stefan Monnier <monnier@cs.yale.edu>
137 :    
138 :     * opt/split.sml: new file. Does the lambda-splitting for cross-module
139 :     inlining. Currently in a simplified form.
140 :    
141 :     * opt/fcontract.sml (fcEta): bug with (mutually) recursive eta redexes.
142 :    
143 : monnier 203 1998-12-18 Stefan Monnier <monnier@cs.yale.edu>
144 :    
145 :     * opt/fcontract.sml: turned fcFun into a foldable function.
146 :    
147 :     1998-12-17 Stefan Monnier <monnier@cs.yale.edu>
148 :    
149 :     * opt/loopify.sml: fix (TR-ing would fail if not LR-ing also)
150 :    
151 :     1998-12-16 Stefan Monnier <monnier@cs.yale.edu>
152 :    
153 :     * opt/loopify.sml: make dropinvariant optional.
154 :    
155 :     1998-12-15 Stefan Monnier <monnier@cs.yale.edu>
156 :    
157 :     * opt/loopify.sml: drop invariant arguments in loops.
158 :    
159 :     * opt/optutils.sml (filter): curried.
160 :    
161 : monnier 202 1998-12-12 Stefan Monnier <monnier@cs.yale.edu>
162 :    
163 :     * opt/fcontract.sml (fcFun): value-specialization (turned off: useless)
164 :     (fcApp): use IH_MAYBE.
165 :    
166 :     * opt/fixfix.sml: improved the inlining heuristic by using the IH_MAYBE.
167 :    
168 :     1998-11-29 Stefan Monnier <monnier@cs.yale.edu>
169 :    
170 :     * opt/fcontract.sml (fcFun): only update the binding (after contracting
171 :     the function) if there are more functions to contract (the unusual case)
172 :    
173 :     1998-11-28 Stefan Monnier <monnier@cs.yale.edu>
174 :    
175 :     * opt/[lf]contract.sml,collect.sml: use PO.purePrimop
176 :    
177 :     * opt/fcontract.sml: generalized the BRANCH thing.
178 :     It should now be faster to detect and avoid potential code blowups while
179 :     applying to more cases. But it requires one more pass to generate the
180 :     same code quality :-(
181 :     (fcexp): straightforward split into functions
182 :     (fcLet): do the BRANCH thing after contraction (plus force an additional
183 :     contraction, so the total is 3 passes for a fairly good handling of
184 :     wrap's equality-primop compilation)
185 :     (fcLet): drop TAPP if the output is unused.
186 :    
187 :     1998-11-25 Stefan Monnier <monnier@cs.yale.edu>
188 :    
189 :     * opt/loopify.sml: improved tail-calls recognition.
190 :     Also be more careful about wrapping loops into functions (so contraction
191 :     is not needed to cleanup).
192 :    
193 :     * opt/fixfix.sml: pretend loops are smaller to increase their inlining.
194 :    
195 :     * kernel/ltyextern.sml: commented out Stats calls.
196 :    
197 :     * flint/flint.sig: changed LK_WHILE to LK_TAIL.
198 :    
199 : monnier 197 1998-11-21 Stefan Monnier <monnier@cs.yale.edu>
200 :    
201 :     * reps/rttype.sml: changes from Bratin.
202 :     (rtLexp): define the NVAR case (return the tvar as an lvar).
203 :    
204 :     * opt/[fl]contract.sml: removed the restriction on inlining at the same
205 :     deBruijn depth.
206 :    
207 :     * opt/lift.sml: new file for typelifting.
208 :    
209 :     * flint/flintutil.sml (copy): added tvar renaming.
210 :    
211 :     * flint/tvarcvt.sml: new file for named tvar <-> deBruijn conversions.
212 :    
213 : monnier 191 1998-11-19 Stefan Monnier <monnier@cs.yale.edu>
214 :    
215 :     * opt/loopify.sml: new file
216 :    
217 :     * cps/convert.sml: added code to take advantage of LK_WHILE loops.
218 :    
219 :     * opt/optutils.sml (id): removed. That was stupid.
220 :    
221 :     * opt/collect.sml: drop support for actuals (was only used for cstargs).
222 :    
223 :     * opt/lcontract.sml (lpfd): reset the inline bit to a safe value.
224 :    
225 :     * opt/fcontract.sml (cstargs): eliminated. Might reappear in a
226 :     specialization phase some day.
227 :     (inline): turned off unrolling because it's buggy.
228 :     (APP): use the new ifs, damit!
229 :    
230 : monnier 187 1998-11-11 Stefan Monnier <monnier@cs.yale.edu>
231 :    
232 : monnier 189 * opt/fcontract.sml (sval): ref svals rather than going through F.value
233 :    
234 : monnier 187 * opt/collect.sml: switched back to a read-only collect phase. Also try
235 :     to export the info to allow fcontract to circumvent some of the get calls.
236 :     (info): got rid of Transfer by using the intmap for redirection.
237 :     (unuselexp): junk the fundec part.
238 :     (unuse): return a boolean instead of calling an undertaker.
239 :    
240 : monnier 185 1998-11-09 Stefan Monnier <monnier@cs.yale.edu>
241 :    
242 :     * opt/fcontract.sml: take advantage of single-arm SWITCH (aka decon)
243 :     (SWITCH(CON)): just compare the conreps because types may differ (?)
244 :     (inlineWitness): ugly hack used to figure out if inlining happened,
245 :     in order to decide whether to keep the inline bit or not (in cfun).
246 :    
247 : monnier 184 1998-11-06 Stefan Monnier <monnier@cs.yale.edu>
248 :    
249 :     * opt/fcontract.sml: added unrolling support
250 :    
251 :     * reps/coerce.sml: replaced FK_FCT by fkfct, itself defined "sanely"
252 :    
253 :     * opt/fixfix.sml: adapted to the new fkind and introduced unrolling
254 :    
255 :     1998-11-05 Stefan Monnier <monnier@cs.yale.edu>
256 :    
257 :     * flint/flint.sig: changed fkind to have most annotations valid on
258 :     functors as well. It also adds a loopkind annotation as well as extends
259 :     the inline boolean into a three-way alternative.
260 :    
261 : monnier 164 1998-10-30 Stefan Monnier <monnier@cs.yale.edu>
262 :    
263 :     * opt/fcontract.sml (dropcstargs): replace constant args by the constant.
264 : monnier 184 (cexp): switched to a continuation passing style to implement the
265 :     let-associativity rule in a better way.
266 : monnier 164
267 : monnier 189 * opt/fixfix.sml (curry): correctly handle "impossible" cases.
268 : monnier 164
269 :     * opt/collect.sml: completely revisited: no distinction between
270 :     internal/external uses, dead-code elimination done right away. This
271 :     makes fcontract a little simpler.
272 :    
273 : monnier 163 1998-10-28 Stefan Monnier <monnier@cs.yale.edu>
274 :    
275 :     * opt/fcontract.sml (inline): do simple inlining only for non-isrec
276 :     functions (to ensure we never silently turn external uses into internal
277 :     uses) and correspondingly change the agressive inlining to inline
278 :     non-inlinable functions as long as its their last use.
279 :     (dropargs): new functions to drop unused arguments.
280 :    
281 :    
282 : monnier 162 1998-10-27 Stefan Monnier <monnier@cs.yale.edu>
283 :    
284 : monnier 163 * opt/optutils.sml: trying to reuse code between fixfix and fcontract.
285 :    
286 :     * opt/collect.sml (called): added for eta-expand.
287 :    
288 :     * opt/fcontract.sml (inline): allow single inlining of FK_FCT.
289 :    
290 : monnier 162 * lsplit/ls-inline.sml: don't call lcontract anymore.
291 :    
292 :     1998-10-26 Stefan Monnier <monnier@cs.yale.edu>
293 :    
294 :     * cps/cpstrans.sml (spillOut): fix from Zhong.
295 :    
296 :     * cpsopt/cpsopt.sml: use Control.CG.cpsopt and fold over it.
297 :    
298 :     * main/flintcomp.sml: use Control.FLINT.phases and fold over it.
299 :    
300 :     * opt/fixfix.sml (curry): use Control.FLINT.maxargs to bound the uncurrying

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