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
ViewVC logotype

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

View Directory Listing Directory Listing


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

Revision 1334 - Directory Listing
Modified Thu May 22 22:46:30 2003 UTC (16 years, 6 months ago) by mblume
major cleanup: eliminate all non-exhaustive pattern matches

Revision 1122 - Directory Listing
Modified Thu Mar 7 19:13:17 2002 UTC (17 years, 9 months ago) by monnier
(FSplit.split.stfn): Check "split all" before checking
"split nothing" in case the TFN has nothing but RET[v].

Revision 940 - Directory Listing
Modified Thu Sep 27 20:31:52 2001 UTC (18 years, 2 months ago) by monnier
(fcexp.fcFix.fcEta): Fix typo.

Revision 922 - Directory Listing
Modified Wed Sep 12 20:45:53 2001 UTC (18 years, 3 months ago) by monnier
(loopify.lexp.cfun): Don't forget to empty TFS when TCP is not true.

Revision 818 - Directory Listing
Modified Fri May 4 20:58:47 2001 UTC (18 years, 7 months ago) by blume
merging changes from devel branch and fixing up some earlier mistakes
(see HISTORY)

Revision 733 - Directory Listing
Modified Fri Nov 17 05:13:45 2000 UTC (19 years ago) by blume
merged the big housecleaning patch (see HISTORY!)

Revision 729 - Directory Listing
Modified Thu Nov 9 02:16:17 2000 UTC (19 years, 1 month ago) by blume
code duplication cleanup (merge from private branch)

Revision 667 - Directory Listing
Modified Fri Jun 16 17:25:51 2000 UTC (19 years, 5 months ago) by yx29
2000-06-16  Fixed the abcOpt phase. See FLINT/ChangeLog for details.

Revision 651 - Directory Listing
Modified Thu Jun 1 18:34:03 2000 UTC (19 years, 6 months ago) by monnier
bring revisions from the vendor branch to the trunk

Revision 626 - Directory Listing
Modified Sat Apr 22 23:24:24 2000 UTC (19 years, 7 months ago) by monnier
* opt/flintopt.txt: New file.
* main/control.sml (phases): Move loopify+fixfix to before wrap.
* cpsopt/cpsopt.sml (zeroexpand): New function.
* TopLevel/viscomp/control.sml (cpsopt): Add `zeroexpand' to reduce
RA-blowup when compiling ml.grm.sml.

Revision 625 - Directory Listing
Modified Sat Apr 22 23:21:36 2000 UTC (19 years, 7 months ago) by monnier
* opt/abcopt.sml: New file.
* main/flintcomp.sml: Change `Compiler' to `FLINT' or `CPS' in the
name of phases printed by Compiler.Stats.
(abcopt): New phase.
* viscomp-core.cm: Add FLINT.opt/abcopt.sml.

Revision 621 - Directory Listing
Modified Wed Apr 19 22:44:30 2000 UTC (19 years, 7 months ago) by monnier
(curry): Make sure that uncurrying will not make a
function recursive, but allow uncurrying a mix of functor and function
in some restricted cases.
(uncurry): Properly handle the new functor/function case.
(SWITCH): Don't change the ordering while folding over the arms.
Plus some cosmetic code movements to avoid long lines.

Revision 604 - Directory Listing
Modified Fri Apr 7 13:53:08 2000 UTC (19 years, 8 months ago) by monnier
* opt/switchoff.sml: Remove.
* reps/equal.sml: Rewritten to generate more CPS-like code.
* opt/fcontract.sml (fcLet): re-introduced the branch/switch code,
but without the deadly multiple traversals.
* */control.sml: Less flintopt and more cpsopt.

Revision 540 - Directory Listing
Modified Fri Feb 18 19:46:31 2000 UTC (19 years, 9 months ago) by monnier
*** empty log message ***

Revision 532 - Directory Listing
Modified Thu Feb 10 21:24:50 2000 UTC (19 years, 10 months ago) by dtelle
*** empty log message ***

Revision 530 - Directory Listing
Modified Mon Jan 31 22:53:55 2000 UTC (19 years, 10 months ago) by monnier
(fcLet/cassoc): don't do a second pass over the output of the rewrite.
  It leads to quadratic behavior for `x1 andalso x2 ...'.

Revision 506 - Directory Listing
Modified Fri Dec 10 00:15:35 1999 UTC (20 years ago) by monnier
The compiler now compiles to a fix point but "split" still
doesn't work because of a problem with the pickler.

Revision 504 - Directory Listing
Modified Tue Dec 7 18:31:05 1999 UTC (20 years ago) by monnier
the 110.25 merge compiles

Revision 489 - Directory Listing
Modified Tue Nov 23 12:55:00 1999 UTC (20 years ago) by monnier
somewhat functional

Revision 423 - Directory Listing
Modified Mon Sep 6 02:32:11 1999 UTC (20 years, 3 months ago) by monnier
It now compiles

Revision 422 - Directory Listing
Modified Sun Sep 5 22:49:38 1999 UTC (20 years, 3 months ago) by monnier
merged in 110.19 and 110.20.
Conflicts resolved, but it probably doesn't compile yet.

Revision 382 - Directory Listing
Modified Sun Jul 11 03:12:07 1999 UTC (20 years, 5 months ago) by monnier
* opt/split.sml: don't burp when you can't split.

Revision 259 - Directory Listing
Modified Thu Apr 22 09:30:22 1999 UTC (20 years, 7 months ago) by monnier
turned the CPS optimizer back on and tamed the FLINT inlining

Revision 257 - Directory Listing
Modified Wed Apr 21 02:45:08 1999 UTC (20 years, 7 months ago) by monnier
*** empty log message ***

Revision 255 - Directory Listing
Modified Wed Apr 21 00:34:12 1999 UTC (20 years, 7 months ago) by monnier
up'd RAISE size estimate to discourage its inlining

Revision 251 - Directory Listing
Modified Mon Apr 19 02:55:26 1999 UTC (20 years, 7 months ago) by monnier
First try at a merge of 110.16

Revision 220 - Directory Listing
Modified Tue Mar 9 02:15:05 1999 UTC (20 years, 9 months ago) by monnier
* 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 - Directory Listing
Modified Sun Feb 28 23:41:30 1999 UTC (20 years, 9 months ago) by monnier
* 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 216 - Directory Listing
Modified Fri Feb 26 12:55:26 1999 UTC (20 years, 9 months ago) by monnier
* opt/split.sml: seriously reworked.  Now splits TFNs as well.
* kernel/primop.sml (effect): removed DEREF and MAKEREF from the pure
  primops.
* flint/flintutil.sml (copy): sort the type-map since {lt,tc}_subst
  actually expects it to be sorted.
* kernel/ltyextern.{sml,sig} (lt_nvpoly): new function (digged from
  recover.sml to build a LT_POLY in the case of named tvars.
* opt/recover.sml: removed unused depth arguments left behind from before
  we switched to named tvars.
(addLty): added for the benefit of opt/split.sml
(lt_nvpoly): moved to ltyextern.sml

Revision 215 - Directory Listing
Modified Wed Feb 17 14:17:40 1999 UTC (20 years, 9 months ago) by monnier
* 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 - Directory Listing
Modified Fri Jan 15 21:18:35 1999 UTC (20 years, 10 months ago) by monnier
merged in 110.10

Revision 204 - Directory Listing
Modified Sun Dec 20 11:23:30 1998 UTC (20 years, 11 months ago) by monnier
*** empty log message ***

Revision 203 - Directory Listing
Modified Sat Dec 19 20:51:39 1998 UTC (20 years, 11 months ago) by monnier
* opt/fcontract.sml: turned fcFun into a foldable function.
* opt/loopify.sml: added loop-invariant arg removal.

Revision 202 - Directory Listing
Modified Sun Dec 13 02:29:45 1998 UTC (21 years ago) by monnier
Added IH_MAYBE to allow more selective inlining.

Revision 201 - Directory Listing
Modified Sat Nov 28 23:32:48 1998 UTC (21 years ago) by monnier
* 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 - Directory Listing
Modified Sat Nov 28 17:48:03 1998 UTC (21 years ago) by monnier
* 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 - Directory Listing
Modified Wed Nov 25 18:30:38 1998 UTC (21 years ago) by monnier
* 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 - Directory Listing
Modified Sun Nov 22 01:25:23 1998 UTC (21 years ago) by monnier
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 - Directory Listing
Modified Fri Nov 20 02:01:27 1998 UTC (21 years ago) by monnier
* opt/loopify.sml: new file
* cps/convert.sml: added code to take advantage of LK_WHILE loops.

Revision 190 - Directory Listing
Modified Thu Nov 19 21:01:17 1998 UTC (21 years ago) by monnier
* 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 - Directory Listing
Modified Sun Nov 15 22:29:42 1998 UTC (21 years ago) by monnier
*** empty log message ***

Revision 187 - Directory Listing
Modified Wed Nov 11 07:04:24 1998 UTC (21 years, 1 month ago) by monnier
* opt/collect.sml(info): got rid of Transfer
(unuselexp): junk the fundec part.
(unuse): return a boolean instead of calling an undertaker.

Revision 186 - Directory Listing
Modified Wed Nov 11 05:24:43 1998 UTC (21 years, 1 month ago) by monnier
* 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 - Directory Listing
Modified Tue Nov 10 21:01:05 1998 UTC (21 years, 1 month ago) by monnier
* 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 - Directory Listing
Modified Sun Nov 8 21:18:20 1998 UTC (21 years, 1 month ago) by monnier
* 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 - Directory Listing
Modified Sat Oct 31 01:03:30 1998 UTC (21 years, 1 month ago) by monnier
* 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 - Directory Listing
Modified Thu Oct 29 21:00:27 1998 UTC (21 years, 1 month ago) by monnier
added dropping of dead-arguments

Revision 162 - Directory Listing
Modified Tue Oct 27 22:16:21 1998 UTC (21 years, 1 month ago) by monnier
*** empty log message ***

Revision 160 - Directory Listing
Modified Mon Oct 12 03:31:38 1998 UTC (21 years, 2 months ago) by monnier
*** empty log message ***

Revision 159 - Directory Listing
Modified Mon Oct 12 02:45:03 1998 UTC (21 years, 2 months ago) by monnier
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 122 - Directory Listing
Modified Sat Jun 6 15:05:38 1998 UTC (21 years, 6 months ago) by monnier
addition of fcontract and fixfix and Control.FLINT

Revision 121 - Directory Listing
Modified Sat Jun 6 15:03:25 1998 UTC (21 years, 6 months ago) by monnier
re-added fcontract and collect

Revision 120 - Directory Listing
Modified Sat Jun 6 14:41:33 1998 UTC (21 years, 6 months ago) by monnier
temporarily removed fcontract and collect

Revision 118 - Directory Listing
Modified Fri Jun 5 21:38:17 1998 UTC (21 years, 6 months ago) by monnier
merged in 110.7 changes

Revision 114 - Directory Listing
Modified Fri Jun 5 19:41:21 1998 UTC (21 years, 6 months ago) by monnier
This commit was generated by cvs2svn to compensate for changes in r113,
which included commits to RCS files with non-trunk default branches.

Revision 95 - Directory Listing
Modified Wed May 13 00:49:12 1998 UTC (21 years, 7 months ago) by monnier
merged with 110.5

Revision 94 - Directory Listing
Modified Tue May 12 21:56:22 1998 UTC (21 years, 7 months ago) by monnier
This commit was generated by cvs2svn to compensate for changes in r93,
which included commits to RCS files with non-trunk default branches.

Revision 82 - Directory Listing
Modified Sun May 3 00:00:24 1998 UTC (21 years, 7 months ago) by monnier
*** empty log message ***

Revision 81 - Directory Listing
Modified Sat May 2 23:59:45 1998 UTC (21 years, 7 months ago) by monnier
added real inlining support (with alpha-renaming)
added limited type information

Revision 73 - Directory Listing
Modified Sun Apr 5 20:59:43 1998 UTC (21 years, 8 months ago) by monnier
*** empty log message ***

Revision 72 - Directory Listing
Modified Sun Apr 5 19:07:40 1998 UTC (21 years, 8 months ago) by monnier
cleaned up the previous merge

Revision 71 - Directory Listing
Modified Fri Apr 3 01:57:57 1998 UTC (21 years, 8 months ago) by monnier
merged in Zhong's 110.4

Revision 70 - Directory Listing
Modified Fri Apr 3 00:06:55 1998 UTC (21 years, 8 months ago) by monnier
This commit was generated by cvs2svn to compensate for changes in r69,
which included commits to RCS files with non-trunk default branches.

Revision 63 - Directory Listing
Modified Tue Mar 31 05:26:42 1998 UTC (21 years, 8 months ago) by monnier
*** empty log message ***

Revision 61 - Directory Listing
Modified Mon Mar 30 19:27:36 1998 UTC (21 years, 8 months ago) by league
just added a comment.  there is apparently a subtle bug in inlining
across different depths.  it causes a type error in a FIX node when
compiling CodeGen/cpscompile/mkRecord.sml.

Revision 58 - Directory Listing
Modified Mon Mar 30 01:11:18 1998 UTC (21 years, 8 months ago) by monnier
*** empty log message ***

Revision 47 - Directory Listing
Modified Sun Mar 22 21:53:07 1998 UTC (21 years, 8 months ago) by monnier
*** empty log message ***

Revision 46 - Directory Listing
Modified Sun Mar 22 20:11:09 1998 UTC (21 years, 8 months ago) by monnier
This commit was generated by cvs2svn to compensate for changes in r45,
which included commits to RCS files with non-trunk default branches.

Revision 25 - Directory Listing
Modified Thu Mar 12 00:49:58 1998 UTC (21 years, 9 months ago) by monnier
This commit was generated by cvs2svn to compensate for changes in r24,
which included commits to RCS files with non-trunk default branches.

Revision 21 - Directory Listing
Modified Thu Mar 12 00:49:41 1998 UTC (21 years, 9 months ago) by monnier
Initial revision

Revision 16 - Directory Listing
Added Wed Mar 11 21:00:04 1998 UTC (21 years, 9 months ago) by monnier
Initial revision

Sort log by:

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