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

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

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