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

SCM Repository

[smlnj] View of /sml/trunk/src/compiler/FLINT/main/control.sml
ViewVC logotype

View of /sml/trunk/src/compiler/FLINT/main/control.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 604 - (download) (annotate)
Fri Apr 7 13:53:08 2000 UTC (20 years, 7 months ago) by monnier
File size: 1354 byte(s)
* 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.
(* copyright 1999 YALE FLINT project *)

structure FLINT_Control (* : FLINTCONTROL *) =
struct
    val print	        = ref false
    val printPhases	= ref false
    val printFctTypes   = ref false
    (* `split' should probably be called just after `fixfix' since
     * fcontract might eliminate some uncurry wrappers which are
     * locally unused but could be cross-module inlined. *)
    val phases = ref ["lcontract", (* Cruder but quicker than fcontract *)
		      "fixfix", "fcontract",
		      "specialize", (* "fixfix", "split", *) "fcontract",
		      "wrap", "reify",
		      "loopify", "fixfix", "fcontract+eta"]
			  
    val inlineThreshold = ref 16
    val splitThreshold  = ref 0
    val unrollThreshold = ref 20
    val maxargs	        = ref 6
    val dropinvariant   = ref true
			      
    val specialize	= ref true
    (* val liftLiterals	= ref false *)
    val sharewrap	= ref true
    val saytappinfo	= ref false	(* for typelifting statistics *)
				  
    (* only for temporary debugging *)
    val misc	        = ref 0
			  
    (* FLINT internal type-checking controls *)
    val check	        = ref false	(* fails on MLRISC/*/*RegAlloc.sml *)
    val checkDatatypes  = ref false	(* loops on the new cm.sml *)
    val checkKinds	= ref true

    (* non-exported crap *)
    val recover : (int -> unit) ref = ref(fn x => ())
end

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