SCM Repository
Annotation of /sml/trunk/src/compiler/TopLevel/viscomp/control.sml
Parent Directory
|
Revision Log
Revision 204 - (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 | 204 | val phases = ref ["lcontract", "specialize", |
45 : | "fixfix", "fcontract", | ||
46 : | "wrap", "loopify", "fixfix", "fcontract", | ||
47 : | monnier | 203 | (* "names2deb", "typelift", "deb2names", *) |
48 : | monnier | 204 | "reify", "loopify", "fixfix", "fcontract", |
49 : | monnier | 203 | "fixfix", "fcontract"] |
50 : | |||
51 : | monnier | 204 | val inlineThreshold = ref 14 |
52 : | monnier | 184 | val unrollThreshold = ref 20 |
53 : | monnier | 204 | val maxargs = ref 6 |
54 : | monnier | 203 | val dropinvariant = ref true |
55 : | |||
56 : | monnier | 162 | val specialize = ref true |
57 : | val liftLiterals= ref false | ||
58 : | val sharewrap = ref true | ||
59 : | monnier | 198 | val saytappinfo = ref false (* for typelifting statistics *) |
60 : | monnier | 197 | |
61 : | monnier | 153 | (* only for temporary debugging *) |
62 : | monnier | 162 | val misc = ref 0 |
63 : | monnier | 197 | |
64 : | monnier | 122 | (* FLINT internal type-checking controls *) |
65 : | monnier | 162 | val check = ref true |
66 : | monnier | 184 | val checkDatatypes = ref false (* loops on the new cm.sml *) |
67 : | monnier | 162 | val checkKinds = ref true |
68 : | monnier | 122 | end |
69 : | |||
70 : | monnier | 16 | structure CG : CGCONTROL = |
71 : | struct | ||
72 : | val tailrecur = ref true | ||
73 : | val recordopt = ref true | ||
74 : | val tail = ref true | ||
75 : | val allocprof = ref false | ||
76 : | val closureprint = ref false | ||
77 : | val closureStrategy = ref 0 | ||
78 : | val lambdaopt = ref true | ||
79 : | monnier | 197 | val cpsopt = ref [(* "first_contract", "eta", "uncurry", "etasplit", |
80 : | "cycle_expand", *) "eta", "last_contract"] | ||
81 : | monnier | 16 | val rounds = ref 10 |
82 : | val path = ref false | ||
83 : | val betacontract = ref true | ||
84 : | val eta = ref true | ||
85 : | val selectopt = ref true | ||
86 : | val dropargs = ref true | ||
87 : | val deadvars = ref true | ||
88 : | val flattenargs = ref false | ||
89 : | val extraflatten = ref false | ||
90 : | val switchopt = ref true | ||
91 : | val handlerfold = ref true | ||
92 : | val branchfold = ref false | ||
93 : | val arithopt = ref true | ||
94 : | val betaexpand = ref true | ||
95 : | val unroll = ref true | ||
96 : | val knownfiddle = ref false | ||
97 : | val invariant = ref true | ||
98 : | val targeting = ref 0 | ||
99 : | val lambdaprop = ref false | ||
100 : | val newconreps = ref true | ||
101 : | val boxedconstconreps = ref false | ||
102 : | val unroll_recur = ref true | ||
103 : | val sharepath = ref true | ||
104 : | val staticprof = ref false | ||
105 : | val hoistup = ref false | ||
106 : | val hoistdown = ref false | ||
107 : | val recordcopy = ref true | ||
108 : | val recordpath = ref true | ||
109 : | val verbose = ref false | ||
110 : | val debugcps = ref false | ||
111 : | val misc4 = ref 0 | ||
112 : | val argrep = ref true | ||
113 : | val bodysize = ref 20 | ||
114 : | val reducemore = ref 15 | ||
115 : | val alphac = ref true | ||
116 : | val comment = ref false | ||
117 : | val knownGen = ref 0 | ||
118 : | val knownClGen = ref 0 | ||
119 : | val escapeGen = ref 0 | ||
120 : | val calleeGen = ref 0 | ||
121 : | val spillGen = ref 0 | ||
122 : | val foldconst = ref true | ||
123 : | val etasplit = ref true | ||
124 : | val printit = ref false | ||
125 : | val printsize = ref false | ||
126 : | val scheduling = ref true | ||
127 : | val cse = ref false | ||
128 : | val optafterclosure = ref false | ||
129 : | val uncurry = ref true | ||
130 : | val ifidiom = ref true | ||
131 : | val comparefold = ref true | ||
132 : | val csehoist = ref false | ||
133 : | val rangeopt = ref false | ||
134 : | val icount = ref false | ||
135 : | val debugRep = ref false | ||
136 : | val checklty1 = ref false | ||
137 : | val checklty2 = ref false | ||
138 : | val checklty3 = ref false | ||
139 : | val checkcps1 = ref false | ||
140 : | val checkcps2 = ref false | ||
141 : | val checkcps3 = ref false | ||
142 : | val checkcps = ref false | ||
143 : | val flatfblock = ref true | ||
144 : | val deadup = ref true | ||
145 : | val pollChecks = ref false | ||
146 : | val pollRatioAtoI = ref 1.0 | ||
147 : | |||
148 : | datatype mlrisc_phase = | ||
149 : | NO_PHASE | ||
150 : | | AFTER_INSTR_SEL | ||
151 : | | AFTER_RA | ||
152 : | | AFTER_SCHED | ||
153 : | | PHASES of mlrisc_phase * mlrisc_phase | ||
154 : | val printFlowgraph = ref NO_PHASE | ||
155 : | val printFlowgraphStream = ref TextIO.stdOut | ||
156 : | |||
157 : | val memDisambiguate = ref false | ||
158 : | val controlDependence = ref false | ||
159 : | val flinton = ref true | ||
160 : | |||
161 : | val compdebugging = ref false | ||
162 : | val mudebugging = ref false | ||
163 : | val eedebugging = ref false | ||
164 : | val insdebugging = ref false | ||
165 : | val smdebugging = ref false | ||
166 : | val emdebugging = ref false | ||
167 : | val esdebugging = ref false | ||
168 : | val etdebugging = ref false | ||
169 : | val ecdebugging = ref false | ||
170 : | val tmdebugging = ref false | ||
171 : | end | ||
172 : | val primaryPrompt = ref "- " | ||
173 : | val secondaryPrompt = ref "= " | ||
174 : | val printWarnings = ref true | ||
175 : | val valueRestrictionLocalWarn = ref false | ||
176 : | val valueRestrictionTopWarn = ref true | ||
177 : | monnier | 183 | val multDefWarn = ref false |
178 : | val shareDefError = ref true | ||
179 : | monnier | 16 | val instantiateSigs = ref true |
180 : | val debugging = ref false | ||
181 : | val internals = ref false | ||
182 : | monnier | 109 | val lazysml = ref false |
183 : | monnier | 16 | val interp = ref false |
184 : | (* | ||
185 : | val debugLook = ref false | ||
186 : | val debugCollect = ref false | ||
187 : | val debugBind = ref false | ||
188 : | *) | ||
189 : | val markabsyn = ref true | ||
190 : | val trackExn = ref true | ||
191 : | val indexing = ref false | ||
192 : | val instSigs = ref true | ||
193 : | val quotation = ref false (* controls backquote quotation *) | ||
194 : | val overloadKW = ref false (* controls "overload" as a keyword *) | ||
195 : | |||
196 : | val preserveLvarNames : bool ref = ref false | ||
197 : | monnier | 161 | val saveit = ref true |
198 : | monnier | 16 | val saveLvarNames : bool ref = saveit |
199 : | val saveAbsyn : bool ref = saveit | ||
200 : | val saveLambda : bool ref = saveit | ||
201 : | val saveConvert : bool ref = saveit | ||
202 : | val saveCPSopt : bool ref = saveit | ||
203 : | val saveClosure : bool ref = saveit | ||
204 : | |||
205 : | val lambdaSplitEnable = ref false | ||
206 : | val crossInlineEnable = ref false | ||
207 : | end |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |