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

Legend:
Removed from v.570  
changed lines
  Added in v.632

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