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/TopLevel/viscomp/control.sml
ViewVC logotype

Annotation of /sml/trunk/src/compiler/TopLevel/viscomp/control.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 203 - (view) (download)

1 : monnier 16 (* COPYRIGHT (c) 1995 AT&T Bell Laboratories *)
2 :     (* control.sml *)
3 :    
4 :     structure Control : CONTROL =
5 :     struct
6 :     structure Print : PRINTCONTROL =
7 :     struct
8 :     val printDepth = ref 5
9 :     val printLength = ref 12
10 :     val stringDepth = ref 70
11 :     val printLoop = ref true
12 :     val signatures = ref 2
13 :     val printOpens = ref true
14 :     val out = ref{
15 :     say = fn s => TextIO.output(TextIO.stdOut,s),
16 :     flush = fn () => TextIO.flushOut TextIO.stdOut
17 :     }
18 :     val linewidth = ref 79
19 :     fun say s = #say (!out) s
20 :     fun flush() = #flush (!out) ()
21 :     end
22 :    
23 :     structure MC : MCCONTROL =
24 :     struct
25 :     val printArgs = ref false
26 :     val printRet = ref false
27 :     val bindContainsVar = ref true
28 :     val bindExhaustive = ref true
29 :     val matchNonExhaustiveWarn = ref true
30 :     val matchNonExhaustiveError = ref false
31 :     (* matchExhaustiveError overrides matchExhaustiveWarn *)
32 :     val matchRedundantWarn = ref true
33 :     val matchRedundantError = ref true
34 :     (* matchRedundantError overrides matchRedundantWarn *)
35 :     val expandResult = ref false
36 :     end
37 :    
38 :     structure MLRISC = MLRISC_Control
39 :    
40 : monnier 122 structure FLINT =
41 :     struct
42 : monnier 162 val print = ref false
43 : monnier 189 val printPhases = ref false
44 : monnier 203 val phases = ref ["lcontract", "specialize", "fixfix", "fcontract",
45 :     "wrap", "fcontract",
46 :     (* "names2deb", "typelift", "deb2names", *)
47 :     "reify", "loopify", "fcontract",
48 :     "fixfix", "fcontract"]
49 :    
50 : monnier 202 val inlineThreshold = ref 16
51 : monnier 184 val unrollThreshold = ref 20
52 : monnier 203 val maxargs = ref 10
53 :     val dropinvariant = ref true
54 :    
55 : monnier 162 val specialize = ref true
56 :     val liftLiterals= ref false
57 :     val sharewrap = ref true
58 : monnier 198 val saytappinfo = ref false (* for typelifting statistics *)
59 : monnier 197
60 : monnier 153 (* only for temporary debugging *)
61 : monnier 162 val misc = ref 0
62 : monnier 197
63 : monnier 122 (* FLINT internal type-checking controls *)
64 : monnier 162 val check = ref true
65 : monnier 184 val checkDatatypes = ref false (* loops on the new cm.sml *)
66 : monnier 162 val checkKinds = ref true
67 : monnier 122 end
68 :    
69 : monnier 16 structure CG : CGCONTROL =
70 :     struct
71 :     val tailrecur = ref true
72 :     val recordopt = ref true
73 :     val tail = ref true
74 :     val allocprof = ref false
75 :     val closureprint = ref false
76 :     val closureStrategy = ref 0
77 :     val lambdaopt = ref true
78 : monnier 197 val cpsopt = ref [(* "first_contract", "eta", "uncurry", "etasplit",
79 :     "cycle_expand", *) "eta", "last_contract"]
80 : monnier 16 val rounds = ref 10
81 :     val path = ref false
82 :     val betacontract = ref true
83 :     val eta = ref true
84 :     val selectopt = ref true
85 :     val dropargs = ref true
86 :     val deadvars = ref true
87 :     val flattenargs = ref false
88 :     val extraflatten = ref false
89 :     val switchopt = ref true
90 :     val handlerfold = ref true
91 :     val branchfold = ref false
92 :     val arithopt = ref true
93 :     val betaexpand = ref true
94 :     val unroll = ref true
95 :     val knownfiddle = ref false
96 :     val invariant = ref true
97 :     val targeting = ref 0
98 :     val lambdaprop = ref false
99 :     val newconreps = ref true
100 :     val boxedconstconreps = ref false
101 :     val unroll_recur = ref true
102 :     val sharepath = ref true
103 :     val staticprof = ref false
104 :     val hoistup = ref false
105 :     val hoistdown = ref false
106 :     val recordcopy = ref true
107 :     val recordpath = ref true
108 :     val verbose = ref false
109 :     val debugcps = ref false
110 :     val misc4 = ref 0
111 :     val argrep = ref true
112 :     val bodysize = ref 20
113 :     val reducemore = ref 15
114 :     val alphac = ref true
115 :     val comment = ref false
116 :     val knownGen = ref 0
117 :     val knownClGen = ref 0
118 :     val escapeGen = ref 0
119 :     val calleeGen = ref 0
120 :     val spillGen = ref 0
121 :     val foldconst = ref true
122 :     val etasplit = ref true
123 :     val printit = ref false
124 :     val printsize = ref false
125 :     val scheduling = ref true
126 :     val cse = ref false
127 :     val optafterclosure = ref false
128 :     val uncurry = ref true
129 :     val ifidiom = ref true
130 :     val comparefold = ref true
131 :     val csehoist = ref false
132 :     val rangeopt = ref false
133 :     val icount = ref false
134 :     val debugRep = ref false
135 :     val checklty1 = ref false
136 :     val checklty2 = ref false
137 :     val checklty3 = ref false
138 :     val checkcps1 = ref false
139 :     val checkcps2 = ref false
140 :     val checkcps3 = ref false
141 :     val checkcps = ref false
142 :     val flatfblock = ref true
143 :     val deadup = ref true
144 :     val pollChecks = ref false
145 :     val pollRatioAtoI = ref 1.0
146 :    
147 :     datatype mlrisc_phase =
148 :     NO_PHASE
149 :     | AFTER_INSTR_SEL
150 :     | AFTER_RA
151 :     | AFTER_SCHED
152 :     | PHASES of mlrisc_phase * mlrisc_phase
153 :     val printFlowgraph = ref NO_PHASE
154 :     val printFlowgraphStream = ref TextIO.stdOut
155 :    
156 :     val memDisambiguate = ref false
157 :     val controlDependence = ref false
158 :     val flinton = ref true
159 :    
160 :     val compdebugging = ref false
161 :     val mudebugging = ref false
162 :     val eedebugging = ref false
163 :     val insdebugging = ref false
164 :     val smdebugging = ref false
165 :     val emdebugging = ref false
166 :     val esdebugging = ref false
167 :     val etdebugging = ref false
168 :     val ecdebugging = ref false
169 :     val tmdebugging = ref false
170 :     end
171 :     val primaryPrompt = ref "- "
172 :     val secondaryPrompt = ref "= "
173 :     val printWarnings = ref true
174 :     val valueRestrictionLocalWarn = ref false
175 :     val valueRestrictionTopWarn = ref true
176 : monnier 183 val multDefWarn = ref false
177 :     val shareDefError = ref true
178 : monnier 16 val instantiateSigs = ref true
179 :     val debugging = ref false
180 :     val internals = ref false
181 : monnier 109 val lazysml = ref false
182 : monnier 16 val interp = ref false
183 :     (*
184 :     val debugLook = ref false
185 :     val debugCollect = ref false
186 :     val debugBind = ref false
187 :     *)
188 :     val markabsyn = ref true
189 :     val trackExn = ref true
190 :     val indexing = ref false
191 :     val instSigs = ref true
192 :     val quotation = ref false (* controls backquote quotation *)
193 :     val overloadKW = ref false (* controls "overload" as a keyword *)
194 :    
195 :     val preserveLvarNames : bool ref = ref false
196 : monnier 161 val saveit = ref true
197 : monnier 16 val saveLvarNames : bool ref = saveit
198 :     val saveAbsyn : bool ref = saveit
199 :     val saveLambda : bool ref = saveit
200 :     val saveConvert : bool ref = saveit
201 :     val saveCPSopt : bool ref = saveit
202 :     val saveClosure : bool ref = saveit
203 :    
204 :     val lambdaSplitEnable = ref false
205 :     val crossInlineEnable = ref false
206 :     end

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