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 586, Thu Mar 30 05:08:07 2000 UTC revision 641, Thu May 11 01:16:45 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/10 21:17 EDT
17    Tag: leunga-20000510-moby-c--ssa
18    Description:
19    
20      Various bug fixes and new features for C--, Moby and MLRISC optimizations.
21    None of these affect SML/NJ.
22    
23    1. Register Allocation
24    
25        a. A new ra spilling module (ra/ra-spill-with-renaming) is implemented.
26           This module tries to remove local (i.e. basic block level) redundancies
27           during spilling.
28    
29        b. A new framework for performing region based register allocation.
30           Not yet entirely functional.
31    
32    2. X86
33    
34       a. DefUse for POP was missing the stack pointer [found by Lal]
35       b. Reload for CALL was incorrect in X86Spill [found by John]
36       c. Various fixes in X86Spill so that it can be used correctly for
37          the new spilling module.
38    
39    3. SSA/IR
40    
41       a. New module ir/dj-dataflow.sml implements elimination based
42          data flow analysis.
43    
44    4. MLRiscGen
45    
46       a. Fix for gc type annotation
47    
48    5. MDGen
49    
50       Various fixes for machine description -> ml code translation.  For ssa
51       only.
52    
53    ----------------------------------------------------------------------
54    Name: Allen Leung
55    Date: 2000/05/08 22:17 EDT
56    Tag: leunga-20000508-labexp
57    Description:
58    
59      Fermin has found a few assembly problems with constant expressions
60      generated in LabelExp.  Mostly, the problems involve extra parentheses,
61      which choke on dumb assemblers.  This is his fix.
62    
63    ----------------------------------------------------------------------
64    Name: Dave MacQueen
65    Date: 2000/04/09 14:00 EDT
66    Tag: dbm-20000502-Version_110_28
67    Description:
68    
69    1. Updated src/compiler/TopLevel/main/version.sml to version 110.28
70    
71    2. Updated config/version to 110.28
72    
73    3. Updated config/srcarchiveurl
74    
75    3. New boot files!
76       ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.28/
77    
78    ----------------------------------------------------------------------
79    Name: Matthias Blume
80    Date: 2000/05/01 19:05:00 JST
81    Tag: blume-20000501-noweb
82    Description:
83    
84    A new noweb tool has been added.  The existing system is entirely
85    unaffected by this, but some CM users have asked for renewed noweb
86    support.  Everything is documented in the CM manual.
87    
88    New (plugin) libraries:
89    
90       noweb-tool.cm
91       nw-ext.cm
92    
93    ----------------------------------------------------------------------
94    Name: Dave MacQueen
95    Date: 2000/04/30 12:40PM EDT
96    Tag: dbm-20000430-bug_fixes
97    Description:
98    
99    1. Fix for bug 1498
100       smlnj/src/system/Basis/Implementation/Unsafe/object.sig
101       smlnj/src/system/Basis/Implementation/Unsafe/object.sml
102         added toRealArray function
103       smlnj/src/compiler/MiscUtil/print/ppobj.sml
104         added check for tag Obj.RealArray to array printing case in ppObj
105    
106    2. Fix for bug 1510
107       smlnj/src/compiler/Semant/types/typesutil.sml
108         fixed definition of dummyargs (used by equalTycon) so that
109         dummy args are distinct types
110    
111    ----------------------------------------------------------------------
112    Name: Matthias Blume
113    Date: 2000/04/30 01:00:00 JST
114    Tag: blume-20000430-versions
115    Description:
116    
117    1. CM version numbering added.  This is an implementation of Lal's
118       proposal for adding version numbers and version checking to .cm
119       files.  Lal said that his proposal was just that -- a proposal.
120       For the time being I went ahead and implemented it so that people
121       can comment on it.  Everything is completely backward-compatible
122       (except for the stable library format, i.e., new bootfiles!).
123    
124       As usual, see the CM manual for details.
125    
126    2. An alternative syntax for anchored paths has been implemented.
127       Dave has recently voiced the same concerns that I had when I did
128       this, so there should be some support.  My take is that eventually
129       I will let support for the current syntax (where anchors are
130       "implicit") fade out in favor of the new, explicit syntax.
131       In order to be backward-compatible, both old and new syntax are
132       currently supported.
133    
134       Again, see the CM manual for details.
135    
136    3. Parallel make is trying to be slightly smarter:  When the master
137       process finds a "bottleneck", i.e., when there is only one
138       compilation unit that can be compiled and everybody else is
139       waiting on it, then it will simply compile it directly instead
140       of clumsily telling one of the slaves to do it.
141    
142    4. Support for "unsharing" added.  This is necessary in order to be
143       able to have two different versions of the same library running
144       at the same time (e.g., for trying out a new MLRISC while still
145       having the old MLRISC linked into the current compiler, etc.)
146       See the CM manual.
147    
148    5. Simple "makedepend" functionality added for generating Makefile
149       dependency information.  (This is rather crude at the moment.
150       Expect some changes here in the future.)
151    
152    6. ".fun" added as a recognized suffix for ML files. Also documented
153       explicitly in the manual that the fallback behavior (unknown suffix
154       -> ML file) is not an official feature!
155    
156    7. Small changes to the pickler for stable libraries.
157    
158    8. Several internal changes to CM (for cleanup/improvement).
159    
160    
161    !!!! NEW BINFILES !!!!
162    
163    ----------------------------------------------------------------------
164    Name: Matthias Blume
165    Date: 2000/04/28 17:30:00 JST
166    Tag: blume-20000428-pathconfig
167    Description:
168    
169    1. I changed config/install.sh to remove duplicate entries from the
170       lib/pathconfig file at the end.  Moreover, the final version of
171       lib/pathconfig is sorted alphabetically.  The same (sorting) is done
172       in src/system/installml.
173    
174    2. The config/install.sh script now consistently uses relative
175       pathnames in lib/pathconfig whenever the anchor is in the lib
176       directory.  (So far this was true for the libraries that come
177       pre-compiled and bundled as part of the bootfiles but not for
178       libraries that are compiled by the script itself.)
179    
180    ----------------------------------------------------------------------
181    Name: Matthias Blume
182    Date: 2000/04/26 13:10:00 JST
183    Tag: blume-20000426-fun_suffix
184    Description:
185    
186    Added ".fun" as a recognized file name suffix (for ML code).
187    
188    ----------------------------------------------------------------------
189    Name: Allen Leung
190    Date: 2000/04/25 17:00:00 EST
191    Tag: leunga-20000425-alpha-ra
192    Description:
193    
194    1. Alpha
195    
196        PSEUDOARITH was missing in AlphaRewrite.  This causes an endless loop
197    in C--.
198    
199    2. RA
200    
201       Added a flag "ra-dump-size" to print out the size of the flowgraph
202       and the interference graph.
203    
204    ----------------------------------------------------------------------
205    Name: Dave MacQueen
206    Date: 2000/04/25/
207    Tag: dbm-20000425-mlyacc_doc_examples
208    Description:
209      Updated mlyacc.tex sections 5 and 7 for SML '97 and CM.
210      Updated all three examples in src/ml-yacc/examples to run
211      under 110.* using CM.make.
212    
213    ----------------------------------------------------------------------
214    Name: Allen Leung
215    Date: 2000/04/20 23:04:00 EST
216    Tag: leunga-20000420-ssa-c---stuff
217    Description:
218    
219      This update synchronizes my repository with Yale's.  Most of these
220    changes, however, do not affect SML/NJ at all (the RA is an exception).
221    
222    1. Register Allocator
223    
224       a. An improvement in the interference graph construction:
225          Given a copy
226    
227                s <- t
228    
229          no interference edge between s and t is added for this definition of s.
230    
231       b. I've added two new spill heuristic modules that Fermin and I developed
232          (in the new library RA.cm). These are unused in SML/NJ but maybe
233          useful for others (Moby?)
234    
235    2. X86
236    
237       a. Various fixes in the backend provided by Fermin [C--] and Lal.
238    
239    3. Alpha
240    
241       a. Added the BSR instruction and code generation that goes with it [C--]
242       b. Other fixes too numerous to recount provided by Fermin [C--]
243    
244    4. Regmaps
245    
246       a. The regmaps are not initialized with the identity physical bindings
247          at creation time.  This is unneeded.
248    
249    5. MLRISC Optimizations
250    
251       a. The DJ-Graph module can now compute the iterated dominance frontiers
252          intersects with liveness incrementally in linear time! Woohoo!
253          This is now used in my new SSA construction algorithm.
254    
255       b. THe branch reorganization module is now smarter about linear chains of
256          basic blocks.
257    
258    
259    ----------------------------------------------------------------------
260    Name: Matthias Blume
261    Date: 2000/04/12 13:52:00 JST
262    Tag: blume_main_v110p27_1
263    Description:
264    
265    Changed install.sh script to handle archive files without version number
266    and to use "boot.<arch>-<os>" instead of "sml.boot.<arch>-<os>" for the
267    name of the boot file archive.
268    
269    ----------------------------------------------------------------------
270    Name: Dave MacQueen
271    Date: 2000/04/09 14:00 EDT
272    Tag: dbm-20000410-Version_110_27
273    Description:
274    
275    1. Updated src/compiler/TopLevel/main/version.sml to version 110.27
276    
277    2. Updated src/config/version to 110.27
278    
279    3. New boot files!
280    
281    ----------------------------------------------------------------------
282    Name: Allen Leung
283    Date: 2000/04/09 19:09:00 EST
284    Tag: leunga-20000409-misc
285    Description:
286    
287    1.  Yet another fix for x86 assembly for idivl, imull, mull and friends.
288    
289    2.  Miscellaneous improvements to MLRISC (unused in sml/nj)
290    
291    ----------------------------------------------------------------------
292    Name: Stefan
293    Date: 2000/04/07 10:00:00 EDT
294    Tag: monnier-20000406-branch-handling
295    Description:
296    
297    Improved handling of branches (mostly those generated from
298    polymorphic equality), removed switchoff and changed the
299    default optimization settings (more cpsopt and less flintopt).
300    
301    ----------------------------------------------------------------------
302    Name: Allen Leung
303    Date: 2000/04/06 01:30:00 EST
304    Tag: leunga-20000406-peephole-x86-SSA-2
305    Description:
306    
307       Forgot a few files.
308    
309    ----------------------------------------------------------------------
310    Name: Allen Leung
311    Date: 2000/04/06 00:36:00 EST
312    Tag: leunga-20000406-peephole-x86-SSA
313    Description:
314    
315    1.  New Peephole code
316    
317    2.  Minor improvement to X86 instruction selection
318    
319    3.  Various fixes to SSA and machine description -> code translator
320    
321    ----------------------------------------------------------------------
322    Name: Matthias Blume
323    Date: 2000/04/05 12:30:00 JST
324    Tag: blume_main_v110p26p2_3
325    Description:
326    
327    This update just merges three minor cosmetic updates to CM's sources
328    to get ready for the 110.27 code freeze on Friday.  No functionality
329    has changed.
330    
331    ----------------------------------------------------------------------
332    Name: Allen Leung
333    Date: 2000/04/04 19:39:00 EST
334    Tag: leunga-20000404-x86-asm
335    Description:
336    
337    1.  Fixed a problem in X86 assembly.
338    
339        Things like
340    
341           jmp %eax
342           jmp (%eax)
343    
344        should be output as
345    
346           jmp *%eax
347           jmp *(%eax)
348    
349    2.  Assembly output
350    
351          Added a new flag
352    
353              "asm-indent-copies" (default to false)
354    
355          When this flag is on, parallel copies will be indented an extra level.
356    
357    ----------------------------------------------------------------------
358    Name: Allen Leung
359    Date: 2000/04/04 03:18:00 EST
360    Tag: leunga-20000404-C--Moby
361    Description:
362    
363        All of these fixes are related to C--, Moby, and my own optimization
364        stuff; so they shouldn't affect SML/NJ.
365    
366    1.  X86
367    
368        Various fixes related floating point, and extensions.
369    
370    2.  Alpha
371    
372        Some extra patterns related to loads with signed/zero extension
373        provided by Fermin.
374    
375    3.  Assembly
376    
377        When generating assemby, resolve the value of client defined constants,
378        instead of generating symbolic values.  This is controlled by the
379        new flag "asm-resolve-constants", which is default to true.
380    
381    4.  Machine Descriptions
382    
383        a. The precedence parser was slightly broken when parsing infixr symbols.
384        b. The type generalizing code had the bound variables reversed, resulting
385           in a problem during arity raising.
386        c. Various fixes in machine descriptions.
387    
388    ----------------------------------------------------------------------
389    Name: Matthias Blume
390    Date: 2000/04/03 16:05:00 JST
391    Tag: blume_main_v110p26p2_2
392    Description:
393    
394    I eliminated coreEnv from compInfo.  Access to the "Core" structure is
395    now done via the ordinary static environment that is context to each
396    compilation unit.
397    
398    To this end, I arranged that instead of "structure Core" as "structure
399    _Core" is bound in the pervasive environment.  Core access is done via
400    _Core (which can never be accidentially rebound because _Core is not a
401    legal surface-syntax symbol).
402    
403    The current solution is much cleaner because the core environment is
404    now simply part of the pervasive environment which is part of every
405    compilation unit's context anyway.  In particular, this eliminates all
406    special-case handling that was necessary until now in order to deal
407    with dynamic and symbolic parts of the core environment.
408    
409    Remaining hackery (to bind the "magic" symbol _Core) is localized in the
410    compilation mananger's bootstrap compiler (actually: in the "init group"
411    handling).  See the comments in src/system/smlnj/init/init.cmi for
412    more details.
413    
414    I also tried to track down all mentions of "Core" (as string argument
415    to Symbol.strSymbol) in the compiler and replaced them with a
416    reference to the new CoreSym.coreSym.  Seems cleaner since the actual
417    name appears in one place only.
418    
419    Binfile and bootfile format have not changed, but the switchover from
420    the old "init.cmi" to the new one is a bit tricky, so I supplied new
421    bootfiles anyway.
422    
423    ----------------------------------------------------------------------
424    Name: Allen Leung
425    Date: 2000/04/02 21:17:00 EST
426    Tag: leunga-20000402-mltree
427    Description:
428    
429       1. Renamed the constructor CALL in MLTREE by popular demand.
430       2. Added a bunch of files from my repository.  These are currently
431          used by other non-SMLNJ backends.
432    
433    ----------------------------------------------------------------------
434    Name: Allen Leung
435    Date: 2000/03/31 21:15:00 EST
436    Tag: leunga-20000331-aliasing
437    Description:
438    
439    This update contains a rewritten (and hopefully more correct) module
440    for extracting aliasing information from CPS.
441    
442       To turn on this feature:
443    
444            Compiler.Control.CG.memDisambiguate := true
445    
446       To pretty print the region information with assembly
447    
448           Compiler.Control.MLRISC.getFlag "asm-show-region" := true;
449    
450       To control how many levels of aliasing information are printed, use:
451    
452           Compiler.Control.MLRISC.getInt "points-to-show-level" := n
453    
454       The default of n is 3.
455    
456    ----------------------------------------------------------------------
457    Name: David MacQueen
458    Date: 2000/03/31 11:15:00 EST
459    Tag: dbm-20000331-runtime_fix
460    Description:
461    
462    This update contains:
463    
464    1. runtime/c-lib/c-libraries.c
465       includes added in revision 1.2 caused compilation errors on hppa-hpux
466    
467    2. fix for bug 1556
468       system/Basis/Implementation/NJ/internal-signals.sml
469    
470    ----------------------------------------------------------------------
471    Name: Matthias Blume
472    Date: 2000/03/31 18:00:00 JST
473    Tag: blume_main_v110p26p2_1
474    Description:
475    
476    This update contains:
477    
478    1. A small change to CM's handling of stable libraries:
479       CM now maintains one "global" modmap that is used for all stable
480       libraries.  The use of such a global modmap maximizes sharing and
481       minimizes the need for re-traversing parts of environments during
482       modmap construction.  (However, this has minor impact since modmap
483       construction seems to account for just one percent or less of total
484       compile time.)
485    
486    2. I added a "genmap" phase to the statistics.  This is where I got the
487       "one percent" number (see above).
488    
489    3. CM's new tool parameter mechanism just became _even_ better. :)
490       - The parser understands named parameters and recursive options.
491       - The "make" and "shell" tools use these new features.
492         (This makes it a lot easier to cascade these tools.)
493       - There is a small syntax change: named parameters use a
494    
495           <name> : ( <option> ... )            or
496           <name> : <string>
497    
498         syntax.  Previously, named parameters were implemented in an
499         ad-hoc fashion by each tool individually (by parsing strings)
500         and had the form
501    
502           <name>=<string>
503    
504       See the CM manual for a full description of these issues.
505    
506    ----------------------------------------------------------------------
507    Name: Matthias Blume
508    Date: 2000/03/30 18:00:00 JST
509    Tag: blume_main_v110p26p2_0
510    Description:
511    
512    !!!!! WARNING !!!!!!
513    !!  New binfiles  !!
514    !!!!!!!!!!!!!!!!!!!!
515    
516    This update contains:
517    
518    1. Moderate changes to CM:
519    
520       - Changes to CM's tools mechanism.  In particular, it is now possible
521       to have tools that accept additional "command line" parameters
522       (specified in the .cm file at each instance where the tool's class is
523       used).
524    
525       This was done to accomodate the new "make" and "shell" tools which
526       facilitate fairly seemless hookup to portions of code managed using
527       Makefiles or Shell scripts.
528    
529       There are no classes "shared" or "private" anymore.  Instead, the
530       sharing annotation is now a parameter to the "sml" class.
531    
532       There is a bit of generic machinery for implementing one's own
533       tools that accept command-line parameters.  However, I am not yet fully
534       satisfied with that part, so expect changes here in the future.
535    
536       All existing tools are described in the CM manual.
537    
538       - Slightly better error handling.  (CM now surpresses many followup
539       error messages that tended to be more annoying than helpful.)
540    
541    2. Major changes to the compiler's static environment data structures.
542    
543       - no CMStaticEnv anymore.
544            - no CMEnv, no "BareEnvironment" (actually, _only_ BareEnvironment,
545              but it is called Environment), no conversions between different
546              kinds of static environments
547    
548       - There is still a notion of a "modmap", but such modmaps are generated
549         on demand at the time when they are needed.  This sounds slow, but I
550         sped up the code that generates modmaps enough for this not to lead to
551         a slowdown of the compiler (at least I didn't detect any).
552    
553       - To facilitate rapid modmap generation, static environments now
554         contain an (optional) "modtree" structure.  Modtree annotations are
555         constructed by the unpickler during unpickling.  (This means that
556         the elaborator does not have to worry about modtrees at all.)
557         Modtrees have the advantage that they are compositional in the same
558         way as the environment data structure itself is compositional.
559         As a result, modtrees never hang on to parts of an environment that
560         has already been rendered "stale" by filtering or rebinding.
561    
562       - I went through many, many trials and errors before arriving at the
563         current solution.  (The initial idea of "linkpaths" did not work.)
564         But the result of all this is that I have touched a lot of files that
565         depend on the "modules" and "types" data structures (most of the
566         elaborator). There were a lot of changes during my "linkpath" trials
567         that could have been reverted to their original state but weren't.
568         Please, don't be too harsh on me for messing with this code a bit more
569         than what was strictly necessary...  (I _did_ resist the tempation
570         of doing any "global reformatting" to avoid an untimely death at
571         Dave's hands. :)
572    
573       - One positive aspect of the previous point:  At least I made sure that
574         all files that I touched now compile without warnings (other than
575         "polyEqual").
576    
577       - compiler now tends to run "leaner" (i.e., ties up less memory in
578         redundant modmaps)
579    
580  ----------------------------------------------------------------------  ----------------------------------------------------------------------
581  Name: Allen Leung  Name: Allen Leung

Legend:
Removed from v.586  
changed lines
  Added in v.641

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