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 1142, Wed Mar 13 22:25:37 2002 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Allen Leung
17    Date: 2002/03/13 17:30:00 EST
18    Tag: leunga-20020313-x86-fp-unary
19    Description:
20    
21    Bug fix for:
22    
23    > leunga@weaselbane:~/Yale/tmp/sml-dist{21} bin/sml
24    > Standard ML of New Jersey v110.39.1 [FLINT v1.5], March 08, 2002
25    > - fun f(x,(y,z)) = Real.~ y;
26    > [autoloading]
27    > [autoloading done]
28    >       fchsl   (%eax), 184(%esp)
29    > Error: MLRisc bug: X86MCEmitter.emitInstr
30    >
31    > uncaught exception Error
32    >   raised at: ../MLRISC/control/mlriscErrormsg.sml:16.14-16.19
33    
34    The problem was that the code generator did not generate any fp registers
35    in this case, and the ra didn't know that it needed to run the X86FP phase to
36    translate the pseudo fp instruction.   This only happened with unary fp
37    operators in certain situations.
38    
39    ----------------------------------------------------------------------
40    Name: Matthias Blume
41    Date: 2002/03/13 14:00:00 EST
42    Tag: blume-20020313-overload-etc
43    Description:
44    
45    1. Added _overload as a synonym for overload for backward compatibility.
46       (Control.overloadKW must be true for either version to be accepted.)
47    
48    2. Fixed bug in install script that caused more things to be installed
49       than what was requested in config/targets.
50    
51    3. Made CM aware of the (_)overload construct so that autoloading
52       works.
53    
54    ----------------------------------------------------------------------
55    Name: Matthias Blume
56    Date: 2002/03/12 22:03:00 EST
57    Tag: blume-20020312-url
58    Description:
59    
60    Forgot to update BOOT and srcarchiveurl.
61    
62    ----------------------------------------------------------------------
63    Name: Matthias Blume
64    Date: 2002/03/12 17:30:00 EST
65    Tag: blume-20020312-version110392
66    Description:
67    
68    Yet another version number bump (because of small changes to the
69    binfile format).  Version number is now 110.39.2.  NEW BOOTFILES!
70    
71    Changes:
72    
73      The new pid generation scheme described a few weeks ago was overly
74      complicated.  I implemented a new mechanism that is simpler and
75      provides a bit more "stability":  Once CM has seen a compilation
76      unit, it keeps its identity constant (as long as you do not delete
77      those crucial CM/GUID/* files).  This means that when you change
78      and interface, compiler, then go back to the old interface, and
79      compile again, you arrive at the original pid.
80    
81      There now also is a mechanism that instructs CM to use the plain
82      environment hash as a module's pid (effectively making its GUID
83      the empty string).  For this, "noguid" must be specified as an
84      option to the .sml file in question within its .cm file.
85      This is most useful for code that is being generated by tools such
86      as ml-nlffigen (because during development programmers tend to
87      erase the tool's entire output directory tree including CM's cached
88      GUIDs).  "noguid" is somewhat dangerous (since it can be used to locally
89      revert to the old, broken behavior of SML/NJ, but in specific cases
90      where there is no danger of interface confusion, its use is ok
91      (I think).
92    
93      ml-nlffigen by default generates "noguid" annotations.  They can be
94      turned off by specifying -guid in its command line.
95    
96    ----------------------------------------------------------------------
97    Name: Lal George
98    Date: 2002/03/12 12 14:42:36 EST
99    Tag: george-20020312-frequency-computation
100    Description:
101    
102    Integrated jump chaining and static block frequency into the
103    compiler. More details and numbers later.
104    
105    ----------------------------------------------------------------------
106    Name: Lal George
107    Date: 2002/03/11 11 22:38:53 EST
108    Tag: george-20020311-jump-chain-elim
109    Description:
110    
111    Tested the jump chain elimination on all architectures (except the
112    hppa).  This is on by default right now and is profitable for the
113    alpha and x86, however, it may not be profitable for the sparc and ppc
114    when compiling the compiler.
115    
116    The gc test will typically jump to a label at the end of the cluster,
117    where there is another jump to an external cluster containing the actual
118    code to invoke gc. This is to allow factoring of common gc invocation
119    sequences. That is to say, we generate:
120    
121            f:
122               testgc
123               ja   L1      % jump if above to L1
124    
125            L1:
126               jmp L2
127    
128    
129    After jump chain elimination the 'ja L1' instructions is converted to
130    'ja L2'. On the sparc and ppc, many of the 'ja L2' instructions may end
131    up being implemented in their long form (if L2 is far away) using:
132    
133            jbe     L3      % jump if below or equal to L3
134            jmp     L2
135         L3:
136            ...
137    
138    
139    For large compilation units L2  may be far away.
140    
141    
142    ----------------------------------------------------------------------
143    Name: Matthias Blume
144    Date: 2002/03/11 13:30:00 EST
145    Tag: blume-20020311-mltreeeval
146    Description:
147    
148    A functor parameter was missing.
149    
150    ----------------------------------------------------------------------
151    Name: Allen Leung
152    Date: 2002/03/11 10:30:00 EST
153    Tag: leunga-20020311-runtime-string0
154    Description:
155    
156       The representation of the empty string now points to a
157    legal null terminated C string instead of unit.  It is now possible
158    to convert an ML string into C string with InlineT.CharVector.getData.
159    This compiles into one single machine instruction.
160    
161    ----------------------------------------------------------------------
162    Name: Allen Leung
163    Date: 2002/03/10 23:55:00 EST
164    Tag: leunga-20020310-x86-call
165    Description:
166    
167       Added machine generation for CALL instruction (relative displacement mode)
168    
169    ----------------------------------------------------------------------
170    Name: Matthias Blume
171    Date: 2002/03/08 16:05:00
172    Tag: blume-20020308-entrypoints
173    Description:
174    
175    Version number bumped to 110.39.1.  NEW BOOTFILES!
176    
177    Entrypoints: non-zero offset into a code object where execution should begin.
178    
179    - Added the notion of an entrypoint to CodeObj.
180    - Added reading/writing of entrypoint info to Binfile.
181    - Made runtime system bootloader aware of entrypoints.
182    - Use the address of the label of the first function given to mlriscGen
183      as the entrypoint.  This address is currently always 0, but it will
184      not be 0 once we turn on block placement.
185    - Removed the linkage cluster code (which was The Other Way(tm) of dealing
186      with entry points) from mlriscGen.
187    
188    ----------------------------------------------------------------------
189    Name: Allen Leung
190    Date: 2002/03/07 20:45:00 EST
191    Tag: leunga-20020307-x86-cmov
192    Description:
193    
194       Bug fixes for CMOVcc on x86.
195    
196       1. Added machine code generation for CMOVcc
197       2. CMOVcc is now generated in preference over SETcc on PentiumPro or above.
198       3. CMOVcc cannot have an immediate operand as argument.
199    
200    ----------------------------------------------------------------------
201    Name: Matthias Blume
202    Date: 2002/03/07 16:15:00 EST
203    Tag: blume-20020307-controls
204    Description:
205    
206    This is a very large but mostly boring patch which makes (almost)
207    every tuneable compiler knob (i.e., pretty much everything under
208    Control.* plus a few other things) configurable via both the command
209    line and environment variables in the style CM did its configuration
210    until now.
211    
212    Try starting sml with '-h' (or, if you are brave, '-H')
213    
214    To this end, I added a structure Controls : CONTROLS to smlnj-lib.cm which
215    implements the underlying generic mechanism.
216    
217    The interface to some of the existing such facilities has changed somewhat.
218    For example, the MLRiscControl module now provides mkFoo instead of getFoo.
219    (The getFoo interface is still there for backward-compatibility, but its
220    use is deprecated.)
221    
222    The ml-build script passes -Cxxx=yyy command-line arguments through so
223    that one can now twiddle the compiler settings when using this "batch"
224    compiler.
225    
226    TODO items:
227    
228    We should go through and throw out all controls that are no longer
229    connected to anything.  Moreover, we should go through and provide
230    meaningful (and correct!) documentation strings for those controls
231    that still are connected.
232    
233    Currently, multiple calls to Controls.new are accepted (only the first
234    has any effect).  Eventually we should make sure that every control
235    is being made (via Controls.new) exactly once.  Future access can then
236    be done using Controls.acc.
237    
238    Finally, it would probably be a good idea to use the getter-setter
239    interface to controls rather than ref cells.  For the time being, both
240    styles are provided by the Controls module, but getter-setter pairs are
241    better if thread-safety is of any concern because they can be wrapped.
242    
243    *****************************************
244    
245    One bug fix: The function blockPlacement in three of the MLRISC
246    backpatch files used to be hard-wired to one of two possibilities at
247    link time (according to the value of the placementFlag).  But (I
248    think) it should rather sense the flag every time.
249    
250    *****************************************
251    
252    Other assorted changes (by other people who did not supply a HISTORY entry):
253    
254    1. the cross-module inliner now works much better (Monnier)
255    2. representation of weights, frequencies, and probabilities in MLRISC
256       changed in preparation of using those for weighted block placement
257       (Reppy, George)
258    
259    ----------------------------------------------------------------------
260  Name: Lal George  Name: Lal George
261  Date: 2002/03/07 14:44:24 EST 2002  Date: 2002/03/07 14:44:24 EST 2002
262  Tag: george-20020307-weighted-block-placement  Tag: george-20020307-weighted-block-placement

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

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