Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Tracker SCM

SCM Repository

[smlnj] View of /sml/trunk/src/compiler/FLINT/ChangeLog
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log

Revision 203 - (download) (annotate)
Sat Dec 19 20:51:39 1998 UTC (23 years, 9 months ago) by monnier
File size: 5561 byte(s)
* opt/fcontract.sml: turned fcFun into a foldable function.
* opt/loopify.sml: added loop-invariant arg removal.
1998-12-18  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/fcontract.sml: turned fcFun into a foldable function.

1998-12-17  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/loopify.sml: fix (TR-ing would fail if not LR-ing also)

1998-12-16  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/loopify.sml: make dropinvariant optional.

1998-12-15  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/loopify.sml: drop invariant arguments in loops.

	* opt/optutils.sml (filter): curried.

1998-12-12  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/fcontract.sml (fcFun): value-specialization (turned off: useless)
	(fcApp): use IH_MAYBE.

	* opt/fixfix.sml: improved the inlining heuristic by using the IH_MAYBE.

1998-11-29  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/fcontract.sml (fcFun): only update the binding (after contracting
	  the function) if there are more functions to contract (the unusual case)

1998-11-28  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/[lf]contract.sml,collect.sml: use PO.purePrimop

	* 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 :-(
	(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.

1998-11-25  Stefan Monnier  <monnier@cs.yale.edu>

	* 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.

1998-11-21  Stefan Monnier  <monnier@cs.yale.edu>

	* 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.

1998-11-19  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/loopify.sml: new file

	* cps/convert.sml: added code to take advantage of LK_WHILE loops.

	* 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!

1998-11-11  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/fcontract.sml (sval): ref svals rather than going through F.value

	* 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.
	(info): got rid of Transfer by using the intmap for redirection.
	(unuselexp): junk the fundec part.
	(unuse): return a boolean instead of calling an undertaker.

1998-11-09  Stefan Monnier  <monnier@cs.yale.edu>

	* 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).

1998-11-06  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/fcontract.sml: added unrolling support

	* reps/coerce.sml: replaced FK_FCT by fkfct, itself defined "sanely"

	* opt/fixfix.sml: adapted to the new fkind and introduced unrolling

1998-11-05  Stefan Monnier  <monnier@cs.yale.edu>

	* flint/flint.sig: 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.

1998-10-30  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/fcontract.sml (dropcstargs): replace constant args by the constant.
	(cexp): switched to a continuation passing style to implement the
	  let-associativity rule in a better way.

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

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

1998-10-28  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/fcontract.sml (inline): do simple inlining only for non-isrec
	  functions (to ensure we never silently turn external uses into internal
	  uses) and correspondingly change the agressive inlining to inline
	  non-inlinable functions as long as its their last use.
	(dropargs): new functions to drop unused arguments.

1998-10-27  Stefan Monnier  <monnier@cs.yale.edu>

	* opt/optutils.sml: trying to reuse code between fixfix and fcontract.

	* opt/collect.sml (called): added for eta-expand.

	* opt/fcontract.sml (inline): allow single inlining of FK_FCT.

	* lsplit/ls-inline.sml: don't call lcontract anymore.

1998-10-26  Stefan Monnier  <monnier@cs.yale.edu>

	* cps/cpstrans.sml (spillOut): fix from Zhong.

	* cpsopt/cpsopt.sml: use Control.CG.cpsopt and fold over it.

	* main/flintcomp.sml: use Control.FLINT.phases and fold over it.

	* opt/fixfix.sml (curry): use Control.FLINT.maxargs to bound the uncurrying

ViewVC Help
Powered by ViewVC 1.0.0