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

Legend:
Removed from v.572  
changed lines
  Added in v.631

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