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 575, Fri Mar 10 02:55:58 2000 UTC revision 624, Fri Apr 21 03:06:21 2000 UTC
# Line 11  Line 11 
11  Date:  Date:
12  Tag: <post-commit CVS tag>  Tag: <post-commit CVS tag>
13  Description:  Description:
14    ----------------------------------------------------------------------
15    Name: Allen Leung
16    Date: 2000/04/20 23:04:00 EST
17    Tag: leunga-20000420-ssa-c---stuff
18    Description:
19    
20      This update synchronizes my repository with Yale's.  Most of these
21    changes, however, do not affect SML/NJ at all (the RA is an exception).
22    
23    1. Register Allocator
24    
25       a. An improvement in the interference graph construction:
26          Given a copy
27    
28                s <- t
29    
30          no interference edge between s and t are added for this definition of s.
31    
32       b. I've added two new spill heuristic modules that Fermin and I developed
33          (in the new library RA.cm). These are unused in SML/NJ but maybe
34          useful for others (Moby?)
35    
36    2. X86
37    
38       a. Various fixes in the backend provided by Fermin [C--] and Lal.
39    
40    3. Alpha
41    
42       a. Added the BSR instruction and code generation that goes with it [C--]
43       b. Other fixes too numerous to recount provided by Fermin [C--]
44    
45    4. Regmaps
46    
47       a. The regmaps are not initialized with the identity physical bindings
48          at creation time.  This is unneeded.
49    
50    5. MLRISC Optimizations
51    
52       a. The DJ-Graph module can now compute the iterated dominance frontiers
53          intersects with liveness incrementally in linear time! Woohoo!
54          This is now used in my new SSA construction algorithm.
55    
56       b. THe branch reorganization module is now smarter about linear chains of
57          basic blocks.
58    
59    
60    ----------------------------------------------------------------------
61    Name: Matthias Blume
62    Date: 2000/04/12 13:52:00 JST
63    Tag: blume_main_v110p27_1
64    Description:
65    
66    Changed install.sh script to handle archive files without version number
67    and to use "boot.<arch>-<os>" instead of "sml.boot.<arch>-<os>" for the
68    name of the boot file archive.
69    
70    ----------------------------------------------------------------------
71    Name: Dave MacQueen
72    Date: 2000/04/09 14:00 EDT
73    Tag: dbm-20000410-Version_110_27
74    Description:
75    
76    1. Updated src/compiler/TopLevel/main/version.sml to version 110.27
77    
78    2. Updated src/config/version to 110.27
79    
80    3. New boot files!
81    
82    ----------------------------------------------------------------------
83    Name: Allen Leung
84    Date: 2000/04/09 19:09:00 EST
85    Tag: leunga-20000409-misc
86    Description:
87    
88    1.  Yet another fix for x86 assembly for idivl, imull, mull and friends.
89    
90    2.  Miscellaneous improvements to MLRISC (unused in sml/nj)
91    
92    ----------------------------------------------------------------------
93    Name: Stefan
94    Date: 2000/04/07 10:00:00 EDT
95    Tag: monnier-20000406-branch-handling
96    Description:
97    
98    Improved handling of branches (mostly those generated from
99    polymorphic equality), removed switchoff and changed the
100    default optimization settings (more cpsopt and less flintopt).
101    
102    ----------------------------------------------------------------------
103    Name: Allen Leung
104    Date: 2000/04/06 01:30:00 EST
105    Tag: leunga-20000406-peephole-x86-SSA-2
106    Description:
107    
108       Forgot a few files.
109    
110    ----------------------------------------------------------------------
111    Name: Allen Leung
112    Date: 2000/04/06 00:36:00 EST
113    Tag: leunga-20000406-peephole-x86-SSA
114    Description:
115    
116    1.  New Peephole code
117    
118    2.  Minor improvement to X86 instruction selection
119    
120    3.  Various fixes to SSA and machine description -> code translator
121    
122    ----------------------------------------------------------------------
123    Name: Matthias Blume
124    Date: 2000/04/05 12:30:00 JST
125    Tag: blume_main_v110p26p2_3
126    Description:
127    
128    This update just merges three minor cosmetic updates to CM's sources
129    to get ready for the 110.27 code freeze on Friday.  No functionality
130    has changed.
131    
132    ----------------------------------------------------------------------
133    Name: Allen Leung
134    Date: 2000/04/04 19:39:00 EST
135    Tag: leunga-20000404-x86-asm
136    Description:
137    
138    1.  Fixed a problem in X86 assembly.
139    
140        Things like
141    
142           jmp %eax
143           jmp (%eax)
144    
145        should be output as
146    
147           jmp *%eax
148           jmp *(%eax)
149    
150    2.  Assembly output
151    
152          Added a new flag
153    
154              "asm-indent-copies" (default to false)
155    
156          When this flag is on, parallel copies will be indented an extra level.
157    
158    ----------------------------------------------------------------------
159    Name: Allen Leung
160    Date: 2000/04/04 03:18:00 EST
161    Tag: leunga-20000404-C--Moby
162    Description:
163    
164        All of these fixes are related to C--, Moby, and my own optimization
165        stuff; so they shouldn't affect SML/NJ.
166    
167    1.  X86
168    
169        Various fixes related floating point, and extensions.
170    
171    2.  Alpha
172    
173        Some extra patterns related to loads with signed/zero extension
174        provided by Fermin.
175    
176    3.  Assembly
177    
178        When generating assemby, resolve the value of client defined constants,
179        instead of generating symbolic values.  This is controlled by the
180        new flag "asm-resolve-constants", which is default to true.
181    
182    4.  Machine Descriptions
183    
184        a. The precedence parser was slightly broken when parsing infixr symbols.
185        b. The type generalizing code had the bound variables reversed, resulting
186           in a problem during arity raising.
187        c. Various fixes in machine descriptions.
188    
189    ----------------------------------------------------------------------
190    Name: Matthias Blume
191    Date: 2000/04/03 16:05:00 JST
192    Tag: blume_main_v110p26p2_2
193    Description:
194    
195    I eliminated coreEnv from compInfo.  Access to the "Core" structure is
196    now done via the ordinary static environment that is context to each
197    compilation unit.
198    
199    To this end, I arranged that instead of "structure Core" as "structure
200    _Core" is bound in the pervasive environment.  Core access is done via
201    _Core (which can never be accidentially rebound because _Core is not a
202    legal surface-syntax symbol).
203    
204    The current solution is much cleaner because the core environment is
205    now simply part of the pervasive environment which is part of every
206    compilation unit's context anyway.  In particular, this eliminates all
207    special-case handling that was necessary until now in order to deal
208    with dynamic and symbolic parts of the core environment.
209    
210    Remaining hackery (to bind the "magic" symbol _Core) is localized in the
211    compilation mananger's bootstrap compiler (actually: in the "init group"
212    handling).  See the comments in src/system/smlnj/init/init.cmi for
213    more details.
214    
215    I also tried to track down all mentions of "Core" (as string argument
216    to Symbol.strSymbol) in the compiler and replaced them with a
217    reference to the new CoreSym.coreSym.  Seems cleaner since the actual
218    name appears in one place only.
219    
220    Binfile and bootfile format have not changed, but the switchover from
221    the old "init.cmi" to the new one is a bit tricky, so I supplied new
222    bootfiles anyway.
223    
224    ----------------------------------------------------------------------
225    Name: Allen Leung
226    Date: 2000/04/02 21:17:00 EST
227    Tag: leunga-20000402-mltree
228    Description:
229    
230       1. Renamed the constructor CALL in MLTREE by popular demand.
231       2. Added a bunch of files from my repository.  These are currently
232          used by other non-SMLNJ backends.
233    
234    ----------------------------------------------------------------------
235    Name: Allen Leung
236    Date: 2000/03/31 21:15:00 EST
237    Tag: leunga-20000331-aliasing
238    Description:
239    
240    This update contains a rewritten (and hopefully more correct) module
241    for extracting aliasing information from CPS.
242    
243       To turn on this feature:
244    
245            Compiler.Control.CG.memDisambiguate := true
246    
247       To pretty print the region information with assembly
248    
249           Compiler.Control.MLRISC.getFlag "asm-show-region" := true;
250    
251       To control how many levels of aliasing information are printed, use:
252    
253           Compiler.Control.MLRISC.getInt "points-to-show-level" := n
254    
255       The default of n is 3.
256    
257    ----------------------------------------------------------------------
258    Name: David MacQueen
259    Date: 2000/03/31 11:15:00 EST
260    Tag: dbm-20000331-runtime_fix
261    Description:
262    
263    This update contains:
264    
265    1. runtime/c-lib/c-libraries.c
266       includes added in revision 1.2 caused compilation errors on hppa-hpux
267    
268    2. fix for bug 1556
269       system/Basis/Implementation/NJ/internal-signals.sml
270    
271    ----------------------------------------------------------------------
272    Name: Matthias Blume
273    Date: 2000/03/31 18:00:00 JST
274    Tag: blume_main_v110p26p2_1
275    Description:
276    
277    This update contains:
278    
279    1. A small change to CM's handling of stable libraries:
280       CM now maintains one "global" modmap that is used for all stable
281       libraries.  The use of such a global modmap maximizes sharing and
282       minimizes the need for re-traversing parts of environments during
283       modmap construction.  (However, this has minor impact since modmap
284       construction seems to account for just one percent or less of total
285       compile time.)
286    
287    2. I added a "genmap" phase to the statistics.  This is where I got the
288       "one percent" number (see above).
289    
290    3. CM's new tool parameter mechanism just became _even_ better. :)
291       - The parser understands named parameters and recursive options.
292       - The "make" and "shell" tools use these new features.
293         (This makes it a lot easier to cascade these tools.)
294       - There is a small syntax change: named parameters use a
295    
296           <name> : ( <option> ... )            or
297           <name> : <string>
298    
299         syntax.  Previously, named parameters were implemented in an
300         ad-hoc fashion by each tool individually (by parsing strings)
301         and had the form
302    
303           <name>=<string>
304    
305       See the CM manual for a full description of these issues.
306    
307    ----------------------------------------------------------------------
308    Name: Matthias Blume
309    Date: 2000/03/30 18:00:00 JST
310    Tag: blume_main_v110p26p2_0
311    Description:
312    
313    !!!!! WARNING !!!!!!
314    !!  New binfiles  !!
315    !!!!!!!!!!!!!!!!!!!!
316    
317    This update contains:
318    
319    1. Moderate changes to CM:
320    
321       - Changes to CM's tools mechanism.  In particular, it is now possible
322       to have tools that accept additional "command line" parameters
323       (specified in the .cm file at each instance where the tool's class is
324       used).
325    
326       This was done to accomodate the new "make" and "shell" tools which
327       facilitate fairly seemless hookup to portions of code managed using
328       Makefiles or Shell scripts.
329    
330       There are no classes "shared" or "private" anymore.  Instead, the
331       sharing annotation is now a parameter to the "sml" class.
332    
333       There is a bit of generic machinery for implementing one's own
334       tools that accept command-line parameters.  However, I am not yet fully
335       satisfied with that part, so expect changes here in the future.
336    
337       All existing tools are described in the CM manual.
338    
339       - Slightly better error handling.  (CM now surpresses many followup
340       error messages that tended to be more annoying than helpful.)
341    
342    2. Major changes to the compiler's static environment data structures.
343    
344       - no CMStaticEnv anymore.
345            - no CMEnv, no "BareEnvironment" (actually, _only_ BareEnvironment,
346              but it is called Environment), no conversions between different
347              kinds of static environments
348    
349       - There is still a notion of a "modmap", but such modmaps are generated
350         on demand at the time when they are needed.  This sounds slow, but I
351         sped up the code that generates modmaps enough for this not to lead to
352         a slowdown of the compiler (at least I didn't detect any).
353    
354       - To facilitate rapid modmap generation, static environments now
355         contain an (optional) "modtree" structure.  Modtree annotations are
356         constructed by the unpickler during unpickling.  (This means that
357         the elaborator does not have to worry about modtrees at all.)
358         Modtrees have the advantage that they are compositional in the same
359         way as the environment data structure itself is compositional.
360         As a result, modtrees never hang on to parts of an environment that
361         has already been rendered "stale" by filtering or rebinding.
362    
363       - I went through many, many trials and errors before arriving at the
364         current solution.  (The initial idea of "linkpaths" did not work.)
365         But the result of all this is that I have touched a lot of files that
366         depend on the "modules" and "types" data structures (most of the
367         elaborator). There were a lot of changes during my "linkpath" trials
368         that could have been reverted to their original state but weren't.
369         Please, don't be too harsh on me for messing with this code a bit more
370         than what was strictly necessary...  (I _did_ resist the tempation
371         of doing any "global reformatting" to avoid an untimely death at
372         Dave's hands. :)
373    
374       - One positive aspect of the previous point:  At least I made sure that
375         all files that I touched now compile without warnings (other than
376         "polyEqual").
377    
378       - compiler now tends to run "leaner" (i.e., ties up less memory in
379         redundant modmaps)
380    
381    ----------------------------------------------------------------------
382    Name: Allen Leung
383    Date: 2000/03/29 18:00:00
384    Tag: leunga-20000327-mlriscGen_hppa_alpha_x86
385    Boot files (optional): ftp://react-ilp.cs.nyu.edu/leunga/110.26.1-sml.boot.x86-unix-20000330.tar.gz
386    Description:
387    
388       This update contains *MAJOR* changes to the way code is generated from CPS
389    in the module mlriscGen, and in various backend modules.
390    
391    CHANGES
392    =======
393    
394    1. MLRiscGen: forward propagation fix.
395    
396       There was a bug in forward propagation introduced at about the same time
397       as the MLRISC x86 backend, which prohibits coalescing to be
398       performed effectively in loops.
399    
400       Effect: speed up of loops in RISC architectures.
401               By itself, this actually slowed down certain benchmarks on the x86.
402    
403    2. MLRiscGen:  forward propagating addresses from consing.
404    
405       I've changed the way consing code is generated.  Basically I separated
406       out the initialization part:
407    
408            store tag,   offset(allocptr)
409            store elem1, offset+4(allocptr)
410            store elem2, offset+8(allocptr)
411            ...
412            store elemn, offset+4n(allocptr)
413    
414       and the address computation part:
415    
416            celladdr <- offset+4+alloctpr
417    
418       and move the address computation part
419    
420       Effect:  register pressure is generally lower as a result.  This
421                makes compilation of certain expressions much faster, such as
422                long lists with non-trivial elements.
423    
424                 [(0,0), (0,0), .... (0,0)]
425    
426    3. MLRiscGen: base pointer elimination.
427    
428        As part of the linkage mechanism, we generate the sequence:
429    
430         L:  ...  <- start of the code fragment
431    
432         L1:
433             base pointer <- linkreg - L1 + L
434    
435         The base pointer was then used for computing relocatable addresses
436       in the code fragment.  Frequently (such as in lots of continuations)
437       this is not needed.  We now eliminate this sequence whenever possible.
438    
439         For compile time efficiency, I'm using a very stupid local heuristic.
440       But in general, this should be done as a control flow analysis.
441    
442       Effect:  Smaller code size.  Speed up of most programs.
443    
444    4. Hppa back end
445    
446         Long jumps in span dependence resolution used to depend on the existence
447      of the base pointer.
448    
449         A jump to a long label L was expanded into the following sequence:
450    
451          LDIL %hi(L-8192), %r29
452          LDO  %lo(L-8192)(%r29), %r29
453          ADD  %r29, baseptr, %r29
454          BV,n %r0(%r29)
455    
456         In the presence of change (3) above, this will not work.  I've changed
457       it so that the following sequence of instructions are generated, which
458       doesn't mention the base pointer at all:
459    
460             BL,n  L', %r29           /* branch and link, L' + 4 -> %r29 */
461        L':  ADDIL L-(L'+4), %r29     /* Compute address of L */
462             BV,n  %r0(%r29)          /* Jump */
463    
464    5. Alpha back end
465    
466          New alpha instructions LDB/LDW have been added, as per Fermin's
467       suggestions.   This is unrelated to all other changes.
468    
469    6. X86 back end
470    
471         I've changed andl to testl in the floating point test sequence
472         whenever appropriate.  The Intel optimization guide states that
473         testl is perferable to andl.
474    
475    7. RA (x86 only)
476    
477         I've improved the spill propagation algorithm, using an approximation
478       of maximal weighted independent sets.   This seems to be necessary to
479       alleviate the negative effect in light of the slow down in (1).
480    
481         I'll write down the algorithm one of these days.
482    
483    8. MLRiscGen: frequencies
484    
485         I've added an annotation that states that all call gc blocks have zero
486       execution frequencies.  This improves register allocation on the x86.
487    
488    BENCHMARKS
489    ==========
490    
491       I've only perform the comparison on 110.25.
492    
493       The platforms are:
494    
495        HPPA  A four processor HP machine (E9000) with 5G of memory.
496        X86   A 300Hhz Pentium II with 128M of memory, and
497        SPARC An Ultra sparc 2 with 512M of memory.
498    
499       I used the following parameters for the SML benchmarks:
500    
501                 @SMLalloc
502         HPPA    256k
503         SPARC   512k
504         X86     256k
505    
506    COMPILATION TIME
507    ----------------
508       Here are the numbers comparing the compilation times of the compilers.
509       I've only compared 110.25 compiling the new sources versus
510       a fixpoint version of the new compiler compiling the same.
511    
512                     110.25                                  New
513               Total  Time in RA  Spill+Reload   Total  Time In RA Spill+Reload
514         HPPA   627s    116s        2684+3584     599s    95s       1003+1879
515         SPARC  892s    173s        2891+3870     708s    116s      1004+1880
516         X86    999s    315s       94006+130691   987s    296s    108877+141957
517    
518                   110.25         New
519                Code Size      Code Size
520         HPPA   8596736         8561421
521         SPARC  8974299         8785143
522         X86    9029180         8716783
523    
524       So in summary, things are at least as good as before.   Dramatic
525       reduction in compilation is obtained on the Sparc; I can't explain it,
526       but it is reproducible.  Perhaps someone should try to reproduce this
527       on their own machines.
528    
529    SML BENCHMARKS
530    --------------
531    
532        On the average, all benchmarks perform at least as well as before.
533    
534          HPPA         Compilation Time     Spill+Reload      Run Time
535                     110.25  New            110.25    New   110.25  New
536    
537          barnesHut  3.158  3.015  4.75%    1+1       0+0   2.980  2.922   2.00%
538              boyer  6.152  5.708  7.77%    0+0       0+0   0.218  0.213   2.34%
539       count-graphs  1.168  1.120  4.32%    0+0       0+0  22.705 23.073  -1.60%
540                fft  0.877  0.792 10.74%    1+3       1+3   0.602  0.587   2.56%
541        knuthBendix  3.180  2.857 11.32%    0+0       0+0   0.675  0.662   2.02%
542             lexgen  6.190  5.290 17.01%    0+0       0+0   0.913  0.788  15.86%
543               life  0.803  0.703 14.22%   25+25      0+0   0.153  0.140   9.52%
544              logic  2.048  2.007  2.08%    6+6       1+1   4.133  4.008   3.12%
545         mandelbrot  0.077  0.080 -4.17%    0+0       0+0   0.765  0.712   7.49%
546             mlyacc 22.932 20.937  9.53%  154+181    32+57  0.468  0.430   8.91%
547            nucleic  5.183  5.060  2.44%    2+2       0+0   0.125  0.120   4.17%
548      ratio-regions  3.357  3.142  6.84%    0+0       0+0  116.225 113.173 2.70%
549                ray  1.283  1.290 -0.52%    0+0       0+0   2.887  2.855   1.11%
550             simple  6.307  6.032  4.56%   28+30      5+7   3.705  3.658   1.28%
551                tsp  0.888  0.862  3.09%    0+0       0+0   7.040  6.893   2.13%
552               vliw 24.378 23.455  3.94%  106+127    25+45  2.758  2.707   1.91%
553      --------------------------------------------------------------------------
554       Average                     6.12%                                   4.09%
555    
556          SPARC        Compilation Time     Spill+Reload      Run Time
557                     110.25  New            110.25    New   110.25  New
558    
559          barnesHut  3.778  3.592  5.20%    2+2       0+0   3.648  3.453    5.65%
560              boyer  6.632  6.110  8.54%    0+0       0+0   0.258  0.242    6.90%
561       count-graphs  1.435  1.325  8.30%    0+0       0+0  33.672 34.737   -3.07%
562                fft  0.980  0.940  4.26%    3+9       2+6   0.838  0.827    1.41%
563        knuthBendix  3.590  3.138 14.39%    0+0       0+0   0.962  0.967   -0.52%
564             lexgen  6.593  6.072  8.59%    1+1       0+0   1.077  1.078   -0.15%
565               life  0.972  0.868 11.90%   26+26      0+0   0.143  0.140    2.38%
566              logic  2.525  2.387  5.80%    7+7       1+1   5.625  5.158    9.05%
567         mandelbrot  0.090  0.093 -3.57%    0+0       0+0   0.855  0.728   17.39%
568             mlyacc 26.732 23.827 12.19%  162+189    32+57  0.550  0.560   -1.79%
569            nucleic  6.233  6.197  0.59%    3+3       0+0   0.163  0.173   -5.77%
570      ratio-regions  3.780  3.507  7.79%    0+0       0+0 133.993 131.035   2.26%
571                ray  1.595  1.550  2.90%    1+1       0+0   3.440  3.418    0.63%
572             simple  6.972  6.487  7.48%   29+32      5+7   3.523  3.525   -0.05%
573                tsp  1.115  1.063  4.86%    0+0       0+0   7.393  7.265    1.77%
574               vliw 27.765 24.818 11.87%  110+135    25+45  2.265  2.135    6.09%
575      ----------------------------------------------------------------------------
576       Average                     6.94%                                    2.64%
577    
578          X86          Compilation Time     Spill+Reload      Run Time
579                     110.25  New            110.25    New   110.25  New
580    
581          barnesHut  5.530  5.420  2.03%  593+893   597+915   3.532  3.440   2.66%
582              boyer  8.768  7.747 13.19%  493+199   301+289   0.327  0.297  10.11%
583       count-graphs  2.040  2.010  1.49%  298+394   315+457  26.578 28.660  -7.26%
584                fft  1.327  1.302  1.92%  112+209   115+210   1.055  0.962   9.71%
585        knuthBendix  5.218  5.475 -4.69%  451+598   510+650   0.928  0.932  -0.36%
586             lexgen  9.970  9.623  3.60% 1014+841  1157+885   0.947  0.928   1.97%
587               life  1.183  1.183  0.00%  162+182   145+148   0.127  0.103  22.58%
588              logic  3.285  3.512 -6.45%  514+684   591+836   5.682  5.577   1.88%
589         mandelbrot  0.147  0.143  2.33%   38+41     33+54    0.703  0.690   1.93%
590             mlyacc 35.457 32.763  8.22% 3496+4564 3611+4860  0.552  0.550   0.30%
591            nucleic  7.100  6.888  3.07%  239+168   201+158   0.175  0.173   0.96%
592      ratio-regions  6.388  6.843 -6.65% 1182+257   981+300  120.142 120.345 -0.17%
593                ray  2.332  2.338 -0.29%  346+398   402+494   3.593  3.540   1.51%
594             simple  9.912  9.903  0.08% 1475+941  1579+1168  3.057  3.178  -3.83%
595                tsp  1.623  1.532  5.98%  266+200   250+211   8.045  7.878   2.12%
596               vliw 33.947 35.470 -4.29% 2629+2774 2877+3171  2.072  1.890   9.61%
597      ----------------------------------------------------------------------------
598       Average                     1.22%                                     3.36%
599    
600    ----------------------------------------------------------------------
601    Name: Allen Leung
602    Date: 2000/03/23 16:25:00
603    Tag: leunga-20000323-fix_x86_alpha
604    Description:
605    
606    1. X86 fixes/changes
607    
608       a.  The old code generated for SETcc was completely wrong.
609           The Intel optimization guide is VERY misleading.
610    
611    2. ALPHA fixes/changes
612    
613       a.  Added the instructions LDBU, LDWU, STB, STW as per Fermin's suggestion.
614       b.  Added a new mode byteWordLoadStores to the functor parameter to Alpha()
615       c.  Added reassociation code for address computation.
616    
617    ----------------------------------------------------------------------
618    Name: Allen Leung
619    Date: 2000/03/22 01:23:00
620    Tag: leunga-20000322-fix_x86_hppa_ra
621    Description:
622    
623    1. X86 fixes/changes
624    
625       a.  x86Rewrite bug with MUL3 (found by Lal)
626       b.  Added the instructions FSTS, FSTL
627    
628    2. PA-RISC fixes/changes
629    
630       a.  B label should not be a delay slot candidate!  Why did this work?
631       b.  ADDT(32, REG(32, r), LI n) now generates one instruction instead of two,
632           as it should be.
633       c.  The assembly syntax for fstds and fstdd was wrong.
634       d.  Added the composite instruction COMICLR/LDO, which is the immediate
635           operand variant of COMCLR/LDO.
636    
637    3. Generic MLRISC
638    
639       a.  shuffle.sml rewritten to be slightly more efficient
640       b.  DIV bug in mltree-simplify fixed (found by Fermin)
641    
642    4. Register Allocator
643    
644       a.  I now release the interference graph earlier during spilling.
645           May improve memory usage.
646    
647    ----------------------------------------------------------------------
648    Name: Matthias Blume
649    Date: 2000/03/14 14:15:32
650    Tag: blume_main_v110p26p1_2
651    Description:
652    
653    1. Tools.registerStdShellCmdTool (from smlnj/cm/tool.cm) takes an
654    additional argument called "template" which is an optional string that
655    specifiel the layout of the tool command line.  See the CM manual for
656    explanation.
657    
658    2. A special-purpose tool can be "regisitered" by simply dropping the
659    corresponding <...>-tool.cm (and/or <...>-ext.cm) into the same
660    directory where the .cm file lives that uses this tool.  (The
661    behavior/misfeature until now was to look for the tool description
662    files in the current working directory.)  As before, tool description
663    files could also be anchored -- in which case they can live anywhere
664    they like.  Following the recent e-mail discussion, this change should
665    make it easier to have special-purpose tools that are shipped together
666    with the sources of the program that uses them.
667    
668    ----------------------------------------------------------------------
669    Name: Matthias Blume
670    Date: 2000/03/10 07:48:34
671    Tag: blume_main_v110p26p1_1
672    Description:
673    
674    I added a re-written version of Dave's fixpt script to src/system.
675    Changes relative to the original version:
676      - sh-ified (not everybody has ksh)
677      - automatically figures out which architecture it runs on
678      - uses ./makeml a bit more cleverly
679      - never invokes ./installml (and, thus, does not clobber your
680        good and working installation of sml in case something goes wrong)
681      - accepts max iteration count using option "-iter <n>"
682      - accepts a "base" name using option "-base <base>"
683    
684    It does not build any extraneous heap images but directly rebuilds
685    bin- and boot-hierarchies using makeml's "-rebuild" switch. Finally,
686    it can incorporate existing bin- and boot- hierarchies.  For example,
687    suppose the base is set to "sml" (which is the default).  Then it
688    successively builds
689    
690            sml.bin.<arch>-unix and sml.boot.<arch>-unix
691    then    sml1.bin.<arch>-unix and sml1.boot.<arch>-unix
692    then    sml2.bin.<arch>-unix and sml2.boot.<arch>-unix
693    ...
694    then    sml<n>.bin.<arch>-unix and sml<n>.boot.<arch>-unix
695    
696    and so on.  If any of these already exist, it will just use what's
697    there.  In particular, many people will have the initial set of bin
698    and boot files around, so this saves time for at least one full
699    rebuild.  Having sets of the form <base><k>.{bin,boot}.<arch>-unix for
700    <k>=1,2,... is normally not a good idea when invoking fixpt.  However,
701    they might be the result of an earlier partial run of fixpt (which
702    perhaps got accidentially killed).  In this case, fixpt will quickly
703    move through what exists before continuing where it left off earlier,
704    and, thus, saves a lot of time.
705    
706    ----------------------------------------------------------------------
707    Name: Allen Leung
708    Date: 00/03/10 02:20:00
709    Tag: leunga-20000310-fix_x86_asm_ra
710    Description:
711    
712    More assembly output problems involving the indexed addressing mode
713    on the x86 have been found and corrected. Thanks to Fermin Reig for the
714    fix.
715    
716    The interface and implementation of the register allocator have been changed
717    slightly to accommodate the possibility to skip the register allocation
718    phases completely and go directly to memory allocation.  This is needed
719    for C-- use.
720    
721  ----------------------------------------------------------------------  ----------------------------------------------------------------------
722  Name: Matthias Blume  Name: Matthias Blume

Legend:
Removed from v.575  
changed lines
  Added in v.624

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