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

SCM Repository

[smlnj] Diff of /sml/trunk/HISTORY
ViewVC logotype

Diff of /sml/trunk/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1124, Thu Mar 7 19:49:22 2002 UTC revision 1136, Tue Mar 12 19:44:02 2002 UTC
# Line 11  Line 11 
11  Date: yyyy/mm/dd  Date: yyyy/mm/dd
12  Tag: <post-commit CVS tag>  Tag: <post-commit CVS tag>
13  Description:  Description:
14    ----------------------------------------------------------------------
15    Name: Lal George
16    Date: 2002/03/12 12 14:42:36 EST
17    Tag: george-20020312-frequency-computation
18    Description:
19    
20    Integrated jump chaining and static block frequency into the
21    compiler. More details and numbers later.
22    
23    ----------------------------------------------------------------------
24    Name: Lal George
25    Date: 2002/03/11 11 22:38:53 EST
26    Tag: george-20020311-jump-chain-elim
27    Description:
28    
29    Tested the jump chain elimination on all architectures (except the
30    hppa).  This is on by default right now and is profitable for the
31    alpha and x86, however, it may not be profitable for the sparc and ppc
32    when compiling the compiler.
33    
34    The gc test will typically jump to a label at the end of the cluster,
35    where there is another jump to an external cluster containing the actual
36    code to invoke gc. This is to allow factoring of common gc invocation
37    sequences. That is to say, we generate:
38    
39            f:
40               testgc
41               ja   L1      % jump if above to L1
42    
43            L1:
44               jmp L2
45    
46    
47    After jump chain elimination the 'ja L1' instructions is converted to
48    'ja L2'. On the sparc and ppc, many of the 'ja L2' instructions may end
49    up being implemented in their long form (if L2 is far away) using:
50    
51            jbe     L3      % jump if below or equal to L3
52            jmp     L2
53         L3:
54            ...
55    
56    
57    For large compilation units L2  may be far away.
58    
59    
60    ----------------------------------------------------------------------
61    Name: Matthias Blume
62    Date: 2002/03/11 13:30:00 EST
63    Tag: blume-20020311-mltreeeval
64    Description:
65    
66    A functor parameter was missing.
67    
68    ----------------------------------------------------------------------
69    Name: Allen Leung
70    Date: 2002/03/11 10:30:00 EST
71    Tag: leunga-20020310-runtime-string0
72    Description:
73    
74       The representation of the empty string now points to a
75    legal null terminated C string instead of unit.  It is now possible
76    to convert an ML string into C string with InlineT.CharVector.getData.
77    This compiles into one single machine instruction.
78    
79    ----------------------------------------------------------------------
80    Name: Allen Leung
81    Date: 2002/03/10 23:55:00 EST
82    Tag: leunga-20020310-x86-call
83    Description:
84    
85       Added machine generation for CALL instruction (relative displacement mode)
86    
87    ----------------------------------------------------------------------
88    Name: Matthias Blume
89    Date: 2002/03/08 16:05:00
90    Tag: blume-20020308-entrypoints
91    Description:
92    
93    Version number bumped to 110.39.1.  NEW BOOTFILES!
94    
95    Entrypoints: non-zero offset into a code object where execution should begin.
96    
97    - Added the notion of an entrypoint to CodeObj.
98    - Added reading/writing of entrypoint info to Binfile.
99    - Made runtime system bootloader aware of entrypoints.
100    - Use the address of the label of the first function given to mlriscGen
101      as the entrypoint.  This address is currently always 0, but it will
102      not be 0 once we turn on block placement.
103    - Removed the linkage cluster code (which was The Other Way(tm) of dealing
104      with entry points) from mlriscGen.
105    
106    ----------------------------------------------------------------------
107    Name: Allen Leung
108    Date: 2002/03/07 20:45:00 EST
109    Tag: leunga-20020307-x86-cmov
110    Description:
111    
112       Bug fixes for CMOVcc on x86.
113    
114       1. Added machine code generation for CMOVcc
115       2. CMOVcc is now generated in preference over SETcc on PentiumPro or above.
116       3. CMOVcc cannot have an immediate operand as argument.
117    
118    ----------------------------------------------------------------------
119    Name: Matthias Blume
120    Date: 2002/03/07 16:15:00 EST
121    Tag: blume-20020307-controls
122    Description:
123    
124    This is a very large but mostly boring patch which makes (almost)
125    every tuneable compiler knob (i.e., pretty much everything under
126    Control.* plus a few other things) configurable via both the command
127    line and environment variables in the style CM did its configuration
128    until now.
129    
130    Try starting sml with '-h' (or, if you are brave, '-H')
131    
132    To this end, I added a structure Controls : CONTROLS to smlnj-lib.cm which
133    implements the underlying generic mechanism.
134    
135    The interface to some of the existing such facilities has changed somewhat.
136    For example, the MLRiscControl module now provides mkFoo instead of getFoo.
137    (The getFoo interface is still there for backward-compatibility, but its
138    use is deprecated.)
139    
140    The ml-build script passes -Cxxx=yyy command-line arguments through so
141    that one can now twiddle the compiler settings when using this "batch"
142    compiler.
143    
144    TODO items:
145    
146    We should go through and throw out all controls that are no longer
147    connected to anything.  Moreover, we should go through and provide
148    meaningful (and correct!) documentation strings for those controls
149    that still are connected.
150    
151    Currently, multiple calls to Controls.new are accepted (only the first
152    has any effect).  Eventually we should make sure that every control
153    is being made (via Controls.new) exactly once.  Future access can then
154    be done using Controls.acc.
155    
156    Finally, it would probably be a good idea to use the getter-setter
157    interface to controls rather than ref cells.  For the time being, both
158    styles are provided by the Controls module, but getter-setter pairs are
159    better if thread-safety is of any concern because they can be wrapped.
160    
161    *****************************************
162    
163    One bug fix: The function blockPlacement in three of the MLRISC
164    backpatch files used to be hard-wired to one of two possibilities at
165    link time (according to the value of the placementFlag).  But (I
166    think) it should rather sense the flag every time.
167    
168    *****************************************
169    
170    Other assorted changes (by other people who did not supply a HISTORY entry):
171    
172    1. the cross-module inliner now works much better (Monnier)
173    2. representation of weights, frequencies, and probabilities in MLRISC
174       changed in preparation of using those for weighted block placement
175       (Reppy, George)
176    
177  ----------------------------------------------------------------------  ----------------------------------------------------------------------
178  Name: Lal George  Name: Lal George

Legend:
Removed from v.1124  
changed lines
  Added in v.1136

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