Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Log of /MLRISC/trunk/ra/raBitmatrix.sml
[smlnj] / MLRISC / trunk / ra / raBitmatrix.sml  
ViewVC logotype

Log of /MLRISC/trunk/ra/raBitmatrix.sml

Parent Directory Parent Directory


Links to HEAD: (view) (download) (annotate)
Sticky Revision:

Revision 2126 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 2 16:11:29 2006 UTC (12 years, 8 months ago) by blume
File length: 6521 byte(s)
Diff to previous 1230
moved MLRISC to toplevel

Revision 1230 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 3 18:32:08 2002 UTC (17 years, 1 month ago) by george
Original Path: sml/trunk/src/MLRISC/ra/raBitmatrix.sml
File length: 6521 byte(s)
Diff to previous 1065
The empty bitmatrix must contain an table size that is
a non-zero power of two. The table is made bigger by
doubling its size, so an initial size of zero results
in a nice infinite loop.

Revision 1065 - (view) (download) (annotate) - [select for diffs]
Modified Thu Feb 14 15:05:16 2002 UTC (17 years, 5 months ago) by george
Original Path: sml/trunk/src/MLRISC/ra/raBitmatrix.sml
File length: 6521 byte(s)
Diff to previous 1053
Fixed the MLRISC bug sent by Markus Wenzel regarding the compilation
of Isabelle on the x86.

From Allen:
-----------
 I've found the problem:

     in ra-core.sml, I use the counter "blocked" to keep track of the
     true number of elements in the freeze queue.  When the counter goes
     to zero, I skip examining the queue.  But I've messed up the
     bookkeeping in combine():

         else ();
         case !ucol of
           PSEUDO => (if !cntv > 0 then
                 (if !cntu > 0 then blocked := !blocked - 1 else ();
                                    ^^^^^^^^^^^^^^^^^^^^^^^
                  moveu := mergeMoveList(!movev, !moveu)
                 )
              else ();

     combine() is called to coalesce two nodes u and v.
     I think I was thinking that if the move counts of u and v are both
     greater than zero then after they are coalesced then one node is
     removed from the freeze queue.  Apparently I was thinking that
     both u and v are of low degree, but that's clearly not necessarily true.


02/12/2002:
    Here's the patch.  HOL now compiles.

    I don't know how this impact on performance (compile
    time or runtime).  This bug caused the RA (especially on the x86)
    to go thru the potential spill phase when there are still nodes on the
    freeze queue.

Revision 1053 - (view) (download) (annotate) - [select for diffs]
Added Wed Feb 6 19:11:13 2002 UTC (17 years, 5 months ago) by george
Original Path: sml/trunk/src/MLRISC/ra/raBitmatrix.sml
File length: 6517 byte(s)
   Pulled out various utility modules that were embedded in the modules
   of the register allocator. I need these modules for other purposes, but
   they are not complete enough to put into a library (just yet).

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

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