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 624, Fri Apr 21 03:06:21 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/04/20 23:04:00 EST
17    Tag: leunga-20000420-ssa-c---stuff
18    Description:
19    
20      This update synchronizes my repository with Yale's.  Most of these
21    changes, however, do not affect SML/NJ at all (the RA is an exception).
22    
23    1. Register Allocator
24    
25       a. An improvement in the interference graph construction:
26          Given a copy
27    
28                s <- t
29    
30          no interference edge between s and t are added for this definition of s.
31    
32       b. I've added two new spill heuristic modules that Fermin and I developed
33          (in the new library RA.cm). These are unused in SML/NJ but maybe
34          useful for others (Moby?)
35    
36    2. X86
37    
38       a. Various fixes in the backend provided by Fermin [C--] and Lal.
39    
40    3. Alpha
41    
42       a. Added the BSR instruction and code generation that goes with it [C--]
43       b. Other fixes too numerous to recount provided by Fermin [C--]
44    
45    4. Regmaps
46    
47       a. The regmaps are not initialized with the identity physical bindings
48          at creation time.  This is unneeded.
49    
50    5. MLRISC Optimizations
51    
52       a. The DJ-Graph module can now compute the iterated dominance frontiers
53          intersects with liveness incrementally in linear time! Woohoo!
54          This is now used in my new SSA construction algorithm.
55    
56       b. THe branch reorganization module is now smarter about linear chains of
57          basic blocks.
58    
59    
60    ----------------------------------------------------------------------
61    Name: Matthias Blume
62    Date: 2000/04/12 13:52:00 JST
63    Tag: blume_main_v110p27_1
64    Description:
65    
66    Changed install.sh script to handle archive files without version number
67    and to use "boot.<arch>-<os>" instead of "sml.boot.<arch>-<os>" for the
68    name of the boot file archive.
69    
70    ----------------------------------------------------------------------
71    Name: Dave MacQueen
72    Date: 2000/04/09 14:00 EDT
73    Tag: dbm-20000410-Version_110_27
74    Description:
75    
76    1. Updated src/compiler/TopLevel/main/version.sml to version 110.27
77    
78    2. Updated src/config/version to 110.27
79    
80    3. New boot files!
81    
82    ----------------------------------------------------------------------
83    Name: Allen Leung
84    Date: 2000/04/09 19:09:00 EST
85    Tag: leunga-20000409-misc
86    Description:
87    
88    1.  Yet another fix for x86 assembly for idivl, imull, mull and friends.
89    
90    2.  Miscellaneous improvements to MLRISC (unused in sml/nj)
91    
92    ----------------------------------------------------------------------
93    Name: Stefan
94    Date: 2000/04/07 10:00:00 EDT
95    Tag: monnier-20000406-branch-handling
96    Description:
97    
98    Improved handling of branches (mostly those generated from
99    polymorphic equality), removed switchoff and changed the
100    default optimization settings (more cpsopt and less flintopt).
101    
102    ----------------------------------------------------------------------
103    Name: Allen Leung
104    Date: 2000/04/06 01:30:00 EST
105    Tag: leunga-20000406-peephole-x86-SSA-2
106    Description:
107    
108       Forgot a few files.
109    
110    ----------------------------------------------------------------------
111    Name: Allen Leung
112    Date: 2000/04/06 00:36:00 EST
113    Tag: leunga-20000406-peephole-x86-SSA
114    Description:
115    
116    1.  New Peephole code
117    
118    2.  Minor improvement to X86 instruction selection
119    
120    3.  Various fixes to SSA and machine description -> code translator
121    
122    ----------------------------------------------------------------------
123    Name: Matthias Blume
124    Date: 2000/04/05 12:30:00 JST
125    Tag: blume_main_v110p26p2_3
126    Description:
127    
128    This update just merges three minor cosmetic updates to CM's sources
129    to get ready for the 110.27 code freeze on Friday.  No functionality
130    has changed.
131    
132    ----------------------------------------------------------------------
133    Name: Allen Leung
134    Date: 2000/04/04 19:39:00 EST
135    Tag: leunga-20000404-x86-asm
136    Description:
137    
138    1.  Fixed a problem in X86 assembly.
139    
140        Things like
141    
142           jmp %eax
143           jmp (%eax)
144    
145        should be output as
146    
147           jmp *%eax
148           jmp *(%eax)
149    
150    2.  Assembly output
151    
152          Added a new flag
153    
154              "asm-indent-copies" (default to false)
155    
156          When this flag is on, parallel copies will be indented an extra level.
157    
158    ----------------------------------------------------------------------
159    Name: Allen Leung
160    Date: 2000/04/04 03:18:00 EST
161    Tag: leunga-20000404-C--Moby
162    Description:
163    
164        All of these fixes are related to C--, Moby, and my own optimization
165        stuff; so they shouldn't affect SML/NJ.
166    
167    1.  X86
168    
169        Various fixes related floating point, and extensions.
170    
171    2.  Alpha
172    
173        Some extra patterns related to loads with signed/zero extension
174        provided by Fermin.
175    
176    3.  Assembly
177    
178        When generating assemby, resolve the value of client defined constants,
179        instead of generating symbolic values.  This is controlled by the
180        new flag "asm-resolve-constants", which is default to true.
181    
182    4.  Machine Descriptions
183    
184        a. The precedence parser was slightly broken when parsing infixr symbols.
185        b. The type generalizing code had the bound variables reversed, resulting
186           in a problem during arity raising.
187        c. Various fixes in machine descriptions.
188    
189    ----------------------------------------------------------------------
190    Name: Matthias Blume
191    Date: 2000/04/03 16:05:00 JST
192    Tag: blume_main_v110p26p2_2
193    Description:
194    
195    I eliminated coreEnv from compInfo.  Access to the "Core" structure is
196    now done via the ordinary static environment that is context to each
197    compilation unit.
198    
199    To this end, I arranged that instead of "structure Core" as "structure
200    _Core" is bound in the pervasive environment.  Core access is done via
201    _Core (which can never be accidentially rebound because _Core is not a
202    legal surface-syntax symbol).
203    
204    The current solution is much cleaner because the core environment is
205    now simply part of the pervasive environment which is part of every
206    compilation unit's context anyway.  In particular, this eliminates all
207    special-case handling that was necessary until now in order to deal
208    with dynamic and symbolic parts of the core environment.
209    
210    Remaining hackery (to bind the "magic" symbol _Core) is localized in the
211    compilation mananger's bootstrap compiler (actually: in the "init group"
212    handling).  See the comments in src/system/smlnj/init/init.cmi for
213    more details.
214    
215    I also tried to track down all mentions of "Core" (as string argument
216    to Symbol.strSymbol) in the compiler and replaced them with a
217    reference to the new CoreSym.coreSym.  Seems cleaner since the actual
218    name appears in one place only.
219    
220    Binfile and bootfile format have not changed, but the switchover from
221    the old "init.cmi" to the new one is a bit tricky, so I supplied new
222    bootfiles anyway.
223    
224    ----------------------------------------------------------------------
225    Name: Allen Leung
226    Date: 2000/04/02 21:17:00 EST
227    Tag: leunga-20000402-mltree
228    Description:
229    
230       1. Renamed the constructor CALL in MLTREE by popular demand.
231       2. Added a bunch of files from my repository.  These are currently
232          used by other non-SMLNJ backends.
233    
234    ----------------------------------------------------------------------
235    Name: Allen Leung
236    Date: 2000/03/31 21:15:00 EST
237    Tag: leunga-20000331-aliasing
238    Description:
239    
240    This update contains a rewritten (and hopefully more correct) module
241    for extracting aliasing information from CPS.
242    
243       To turn on this feature:
244    
245            Compiler.Control.CG.memDisambiguate := true
246    
247       To pretty print the region information with assembly
248    
249           Compiler.Control.MLRISC.getFlag "asm-show-region" := true;
250    
251       To control how many levels of aliasing information are printed, use:
252    
253           Compiler.Control.MLRISC.getInt "points-to-show-level" := n
254    
255       The default of n is 3.
256    
257    ----------------------------------------------------------------------
258    Name: David MacQueen
259    Date: 2000/03/31 11:15:00 EST
260    Tag: dbm-20000331-runtime_fix
261    Description:
262    
263    This update contains:
264    
265    1. runtime/c-lib/c-libraries.c
266       includes added in revision 1.2 caused compilation errors on hppa-hpux
267    
268    2. fix for bug 1556
269       system/Basis/Implementation/NJ/internal-signals.sml
270    
271    ----------------------------------------------------------------------
272    Name: Matthias Blume
273    Date: 2000/03/31 18:00:00 JST
274    Tag: blume_main_v110p26p2_1
275    Description:
276    
277    This update contains:
278    
279    1. A small change to CM's handling of stable libraries:
280       CM now maintains one "global" modmap that is used for all stable
281       libraries.  The use of such a global modmap maximizes sharing and
282       minimizes the need for re-traversing parts of environments during
283       modmap construction.  (However, this has minor impact since modmap
284       construction seems to account for just one percent or less of total
285       compile time.)
286    
287    2. I added a "genmap" phase to the statistics.  This is where I got the
288       "one percent" number (see above).
289    
290    3. CM's new tool parameter mechanism just became _even_ better. :)
291       - The parser understands named parameters and recursive options.
292       - The "make" and "shell" tools use these new features.
293         (This makes it a lot easier to cascade these tools.)
294       - There is a small syntax change: named parameters use a
295    
296           <name> : ( <option> ... )            or
297           <name> : <string>
298    
299         syntax.  Previously, named parameters were implemented in an
300         ad-hoc fashion by each tool individually (by parsing strings)
301         and had the form
302    
303           <name>=<string>
304    
305       See the CM manual for a full description of these issues.
306    
307    ----------------------------------------------------------------------
308    Name: Matthias Blume
309    Date: 2000/03/30 18:00:00 JST
310    Tag: blume_main_v110p26p2_0
311    Description:
312    
313    !!!!! WARNING !!!!!!
314    !!  New binfiles  !!
315    !!!!!!!!!!!!!!!!!!!!
316    
317    This update contains:
318    
319    1. Moderate changes to CM:
320    
321       - Changes to CM's tools mechanism.  In particular, it is now possible
322       to have tools that accept additional "command line" parameters
323       (specified in the .cm file at each instance where the tool's class is
324       used).
325    
326       This was done to accomodate the new "make" and "shell" tools which
327       facilitate fairly seemless hookup to portions of code managed using
328       Makefiles or Shell scripts.
329    
330       There are no classes "shared" or "private" anymore.  Instead, the
331       sharing annotation is now a parameter to the "sml" class.
332    
333       There is a bit of generic machinery for implementing one's own
334       tools that accept command-line parameters.  However, I am not yet fully
335       satisfied with that part, so expect changes here in the future.
336    
337       All existing tools are described in the CM manual.
338    
339       - Slightly better error handling.  (CM now surpresses many followup
340       error messages that tended to be more annoying than helpful.)
341    
342    2. Major changes to the compiler's static environment data structures.
343    
344       - no CMStaticEnv anymore.
345            - no CMEnv, no "BareEnvironment" (actually, _only_ BareEnvironment,
346              but it is called Environment), no conversions between different
347              kinds of static environments
348    
349       - There is still a notion of a "modmap", but such modmaps are generated
350         on demand at the time when they are needed.  This sounds slow, but I
351         sped up the code that generates modmaps enough for this not to lead to
352         a slowdown of the compiler (at least I didn't detect any).
353    
354       - To facilitate rapid modmap generation, static environments now
355         contain an (optional) "modtree" structure.  Modtree annotations are
356         constructed by the unpickler during unpickling.  (This means that
357         the elaborator does not have to worry about modtrees at all.)
358         Modtrees have the advantage that they are compositional in the same
359         way as the environment data structure itself is compositional.
360         As a result, modtrees never hang on to parts of an environment that
361         has already been rendered "stale" by filtering or rebinding.
362    
363       - I went through many, many trials and errors before arriving at the
364         current solution.  (The initial idea of "linkpaths" did not work.)
365         But the result of all this is that I have touched a lot of files that
366         depend on the "modules" and "types" data structures (most of the
367         elaborator). There were a lot of changes during my "linkpath" trials
368         that could have been reverted to their original state but weren't.
369         Please, don't be too harsh on me for messing with this code a bit more
370         than what was strictly necessary...  (I _did_ resist the tempation
371         of doing any "global reformatting" to avoid an untimely death at
372         Dave's hands. :)
373    
374       - One positive aspect of the previous point:  At least I made sure that
375         all files that I touched now compile without warnings (other than
376         "polyEqual").
377    
378       - compiler now tends to run "leaner" (i.e., ties up less memory in
379         redundant modmaps)
380    
381  ----------------------------------------------------------------------  ----------------------------------------------------------------------
382  Name: Allen Leung  Name: Allen Leung

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

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