12 |
Tag: <post-commit CVS tag> |
Tag: <post-commit CVS tag> |
13 |
Description: |
Description: |
14 |
---------------------------------------------------------------------- |
---------------------------------------------------------------------- |
15 |
|
Name: Matthias Blume |
16 |
|
Date: 2001/05/04 17:00:00 EDT |
17 |
|
Tag: blume-20010504-cm-lsplit |
18 |
|
Description: |
19 |
|
|
20 |
|
0. John merged pending changes to $/smlnj-lib.cm |
21 |
|
|
22 |
|
1. Allen's previous change accidentally backed out of one of Lal's |
23 |
|
earlier changes. I undid this mistake (re-introducing Lal's change). |
24 |
|
|
25 |
|
2. I used the new topOrder' function from graph-scc.sml (from $/smlnj-lib.cm) |
26 |
|
within the compiler where applicable. There is some code simplification |
27 |
|
because of that. |
28 |
|
|
29 |
|
3. The "split" phase (in FLINT) is now part of the default list of phases. |
30 |
|
Compiler.Control.LambdaSplitting.* can be used to globally control the |
31 |
|
lambda-splitting (cross-module-inlining) engine. In addition to that, |
32 |
|
it can now also be controlled on a per-source basis: CM has been taught |
33 |
|
a new tool parameter applicable to ML source files. |
34 |
|
|
35 |
|
- To turn lambda-splitting off completely: |
36 |
|
local open Compiler.Control.LambdaSplitting in |
37 |
|
val _ = set Off |
38 |
|
end |
39 |
|
- To make "no lambda-splitting" the global default (but allow per-source |
40 |
|
overriding); this is the initial setting: |
41 |
|
local open Compiler.Control.LambdaSplitting in |
42 |
|
val _ = set (Default NONE) |
43 |
|
end |
44 |
|
- To make "lambda-splitting with aggressiveness a" the global default |
45 |
|
(and allow per-source overriding): |
46 |
|
local open Compiler.Control.LambdaSplitting in |
47 |
|
val _ = set (Default (SOME a)) |
48 |
|
end |
49 |
|
|
50 |
|
- To turn lambda-splitting off for a given ML souce file (say: a.sml) |
51 |
|
write (in the respective .cm-file): |
52 |
|
a.sml (lambdasplitting:off) |
53 |
|
- To turn lambda-splitting for a.sml on with minimal aggressiveness: |
54 |
|
a.sml (lambdasplitting:on) |
55 |
|
- To turn lambda-splitting for a.sml on with aggressiveness <a> (where |
56 |
|
<a> is a decimal non-negative integer): |
57 |
|
a.sml (lambdasplitting:<a>) |
58 |
|
- To turn lambda-splitting for a.sml on with maximal aggressiveness: |
59 |
|
a.sml (lambdasplitting:infinity) |
60 |
|
- To use the global default for a.sml: |
61 |
|
a.sml (lambdasplitting:default) |
62 |
|
or simply |
63 |
|
a.sml |
64 |
|
|
65 |
|
---------------------------------------------------------------------- |
66 |
Name: Allen Leung |
Name: Allen Leung |
67 |
Date: 2001/05/04 01:57:00 EDT |
Date: 2001/05/04 01:57:00 EDT |
68 |
Tag: leunga-20010504-sync |
Tag: leunga-20010504-sync |