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

SCM Repository

[smlnj] Log of /sml/trunk/src/compiler/FLINT/opt/fcontract.sml
[smlnj] / sml / trunk / src / compiler / FLINT / opt / fcontract.sml  
ViewVC logotype

Log of /sml/trunk/src/compiler/FLINT/opt/fcontract.sml

Parent Directory Parent Directory


Sticky Revision:
(Current path doesn't exist after revision 2161)

Revision 504 - (view) (download) (annotate) - [select for diffs]
Modified Tue Dec 7 18:31:05 1999 UTC (19 years, 9 months ago) by monnier
File length: 39045 byte(s)
Diff to previous 423
the 110.25 merge compiles

Revision 423 - (view) (download) (annotate) - [select for diffs]
Modified Mon Sep 6 02:32:11 1999 UTC (20 years ago) by monnier
File length: 39175 byte(s)
Diff to previous 422
It now compiles

Revision 422 - (view) (download) (annotate) - [select for diffs]
Modified Sun Sep 5 22:49:38 1999 UTC (20 years ago) by monnier
File length: 39157 byte(s)
Diff to previous 259
merged in 110.19 and 110.20.
Conflicts resolved, but it probably doesn't compile yet.

Revision 259 - (view) (download) (annotate) - [select for diffs]
Modified Thu Apr 22 09:30:22 1999 UTC (20 years, 5 months ago) by monnier
File length: 39095 byte(s)
Diff to previous 220
turned the CPS optimizer back on and tamed the FLINT inlining

Revision 220 - (view) (download) (annotate) - [select for diffs]
Modified Tue Mar 9 02:15:05 1999 UTC (20 years, 6 months ago) by monnier
File length: 36909 byte(s)
Diff to previous 217
* opt/split.sml (sexp): don't split HANDLE (it's incorrect).
(funeffect): embryo to detect side-effect free APPs (non-functional).
(splitThreshold): to put a cap on inlining.
(stfn): don't bother splitting inlinable TFNs.
* opt/fixfix.sml (curry): fixed bug when uncurrying cooked functions.
* opt/fcontract.sml (fcFun):  fix bug when undertaking mut-rec functions.
* main/flintcomp.sml:  added `recover' to help debugging.
updated the fold to allow extraction of Fi and return it at the end.
* lsplit/ls-inline.sml (oneBranch): fixed the wrapper function.
* flint/flintutil.sml (freevars):  forgot to count the arg of SWITCH.
* flint/flint.sig:  added a tfkind to TFN (only inlining for now).
* main/control.sml: new file. Moved from TopLevel/viscomp/control.sml
(splitThreshold): new var.
* TopLevel/viscomp/control.sig (FLINT.printFctTypes): to reduce clutter.
(splitThreshold): to control splitting agressiveness.
* TopLevel/viscomp/control.sml:  moved substructs outside so that clients
  can refer to them directly (rather than through Control.Foo) to reduce
  spurious dependencies.
* TopLevel/main/{codes,compile}: call `split' from flintcomp, not compile.
* kernel/ltyextern.sml (tnarrow), reps/{reify,rttype,typeoper}.sml:
  flatten arguments when reifying them since the pretty-printer doesn't
  know how to deal with flattened reified TFNs.

Revision 217 - (view) (download) (annotate) - [select for diffs]
Modified Sun Feb 28 23:41:30 1999 UTC (20 years, 6 months ago) by monnier
File length: 36617 byte(s)
Diff to previous 215
* opt/fcontract.sml (fcEta): do the known->unknown eta-reduce if the
  `known' function is not locally defined (in which case the known/unknown
  distinction is pointless anyway).
(wrap):  don't forget to junk dead inlinable functions.

Revision 215 - (view) (download) (annotate) - [select for diffs]
Modified Wed Feb 17 14:17:40 1999 UTC (20 years, 7 months ago) by monnier
File length: 36438 byte(s)
Diff to previous 213
* opt/split.sml: new file.  Does the lambda-splitting for cross-module
  inlining.  Currently in a simplified form.
* opt/fcontract.sml (fcEta): bug with (mutually) recursive eta redexes.

Revision 213 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 15 21:18:35 1999 UTC (20 years, 8 months ago) by monnier
File length: 36419 byte(s)
Diff to previous 204
merged in 110.10

Revision 204 - (view) (download) (annotate) - [select for diffs]
Modified Sun Dec 20 11:23:30 1998 UTC (20 years, 9 months ago) by monnier
File length: 37411 byte(s)
Diff to previous 203
*** empty log message ***

Revision 203 - (view) (download) (annotate) - [select for diffs]
Modified Sat Dec 19 20:51:39 1998 UTC (20 years, 9 months ago) by monnier
File length: 36855 byte(s)
Diff to previous 202
* opt/fcontract.sml: turned fcFun into a foldable function.
* opt/loopify.sml: added loop-invariant arg removal.

Revision 202 - (view) (download) (annotate) - [select for diffs]
Modified Sun Dec 13 02:29:45 1998 UTC (20 years, 9 months ago) by monnier
File length: 37038 byte(s)
Diff to previous 201
Added IH_MAYBE to allow more selective inlining.

Revision 201 - (view) (download) (annotate) - [select for diffs]
Modified Sat Nov 28 23:32:48 1998 UTC (20 years, 9 months ago) by monnier
File length: 34501 byte(s)
Diff to previous 200
* opt/fcontract.sml: (fcexp): straightforward split into functions
(fcLet): do the BRANCH thing after contraction (plus force an additional
  contraction, so the total is 3 passes for a fairly good handling of
  wrap's equality-primop compilation)
(fcLet): drop TAPP if the output is unused.

Revision 200 - (view) (download) (annotate) - [select for diffs]
Modified Sat Nov 28 17:48:03 1998 UTC (20 years, 9 months ago) by monnier
File length: 35191 byte(s)
Diff to previous 199
* opt/fcontract.sml: generalized the BRANCH thing.
It should now be faster to detect and avoid potential code blowups while
applying to more cases.  But it requires one more pass to generate the
same code quality :-(

Revision 199 - (view) (download) (annotate) - [select for diffs]
Modified Wed Nov 25 18:30:38 1998 UTC (20 years, 9 months ago) by monnier
File length: 32669 byte(s)
Diff to previous 197
* opt/loopify.sml: improved tail-calls recognition.
Also be more careful about wrapping loops into functions (so contraction
is not needed to cleanup).
* opt/fixfix.sml: pretend loops are smaller to increase their inlining.
* kernel/ltyextern.sml: commented out Stats calls.
* flint/flint.sig: changed LK_WHILE to LK_TAIL.

Revision 197 - (view) (download) (annotate) - [select for diffs]
Modified Sun Nov 22 01:25:23 1998 UTC (20 years, 10 months ago) by monnier
File length: 33864 byte(s)
Diff to previous 191
Merged in Bratin's typelifting and Chris' named tvars.
FLINT is now using tvars from the first lcontract all the way to cps.

* reps/rttype.sml: changes from Bratin.
(rtLexp): define the NVAR case (return the tvar as an lvar).
* opt/[fl]contract.sml: removed the restriction on inlining at the same
  deBruijn depth.
* opt/lift.sml: new file for typelifting.
* flint/flintutil.sml (copy): added tvar renaming.
* flint/tvarcvt.sml: new file for named tvar <-> deBruijn conversions.

Revision 191 - (view) (download) (annotate) - [select for diffs]
Modified Fri Nov 20 02:01:27 1998 UTC (20 years, 10 months ago) by monnier
File length: 34026 byte(s)
Diff to previous 190
* opt/loopify.sml: new file
* cps/convert.sml: added code to take advantage of LK_WHILE loops.

Revision 190 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 19 21:01:17 1998 UTC (20 years, 10 months ago) by monnier
File length: 34194 byte(s)
Diff to previous 189
* opt/optutils.sml (id): removed.  That was stupid.
* opt/collect.sml: drop support for actuals (was only used for cstargs).
* opt/lcontract.sml (lpfd): reset the inline bit to a safe value.
* opt/fcontract.sml (cstargs): eliminated.  Might reappear in a
  specialization phase some day.
(inline): turned off unrolling because it's buggy.
(APP): use the new ifs, damit!

Revision 189 - (view) (download) (annotate) - [select for diffs]
Modified Sun Nov 15 22:29:42 1998 UTC (20 years, 10 months ago) by monnier
File length: 34491 byte(s)
Diff to previous 187
*** empty log message ***

Revision 187 - (view) (download) (annotate) - [select for diffs]
Modified Wed Nov 11 07:04:24 1998 UTC (20 years, 10 months ago) by monnier
File length: 31555 byte(s)
Diff to previous 186
* opt/collect.sml(info): got rid of Transfer
(unuselexp): junk the fundec part.
(unuse): return a boolean instead of calling an undertaker.

Revision 186 - (view) (download) (annotate) - [select for diffs]
Modified Wed Nov 11 05:24:43 1998 UTC (20 years, 10 months ago) by monnier
File length: 31631 byte(s)
Diff to previous 185
* opt/collect.sml: switched back to a read-only collect phase.  Also try
  to export the info to allow fcontract to circumvent some of the get calls.

Revision 185 - (view) (download) (annotate) - [select for diffs]
Modified Tue Nov 10 21:01:05 1998 UTC (20 years, 10 months ago) by monnier
File length: 30882 byte(s)
Diff to previous 184
* opt/fcontract.sml: take advantage of single-arm SWITCH (aka decon)
(SWITCH(CON)): just compare the conreps because types may differ (?)
(inlineWitness): ugly hack used to figure out if inlining happened,
  in order to decide whether to keep the inline bit or not (in cfun).

Revision 184 - (view) (download) (annotate) - [select for diffs]
Modified Sun Nov 8 21:18:20 1998 UTC (20 years, 10 months ago) by monnier
File length: 29905 byte(s)
Diff to previous 164
* added basic unrolling support
* changed fkind to have most annotations valid on
  functors as well.  It also adds a loopkind annotation as well as extends
  the inline boolean into a three-way alternative.
* switched to a continuation passing style to implement the
  let-associativity rule in a better way.

Revision 164 - (view) (download) (annotate) - [select for diffs]
Modified Sat Oct 31 01:03:30 1998 UTC (20 years, 10 months ago) by monnier
File length: 29623 byte(s)
Diff to previous 163
* opt/fcontract.sml (dropcstargs): replace constant args by the constant.

* opt/fixfix.sml (curry): correctly handle "imposible" cases.

* opt/collect.sml: completely revisited:  no distinction between
  internal/external uses, dead-code elimination done right away.  This
  makes fcontract a little simpler.

Revision 163 - (view) (download) (annotate) - [select for diffs]
Modified Thu Oct 29 21:00:27 1998 UTC (20 years, 10 months ago) by monnier
File length: 29591 byte(s)
Diff to previous 162
added dropping of dead-arguments

Revision 162 - (view) (download) (annotate) - [select for diffs]
Modified Tue Oct 27 22:16:21 1998 UTC (20 years, 10 months ago) by monnier
File length: 27481 byte(s)
Diff to previous 159
*** empty log message ***

Revision 159 - (view) (download) (annotate) - [select for diffs]
Modified Mon Oct 12 02:45:03 1998 UTC (20 years, 11 months ago) by monnier
File length: 26938 byte(s)
Diff to previous 121
detect inlining loops
eliminate Con(Decon c)
eliminate Record(Select, ...) when type is available
uncount var-use of dropped arms when SWITCH is optimized out

Revision 121 - (view) (download) (annotate) - [select for diffs]
Added Sat Jun 6 15:03:25 1998 UTC (21 years, 3 months ago) by monnier
File length: 24434 byte(s)
re-added fcontract and collect

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

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