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/branches/primop-branch-3/NOTES/HISTORY
ViewVC logotype

Diff of /sml/branches/primop-branch-3/NOTES/HISTORY

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

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

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

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