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 /sml/trunk/src/MLRISC/ra/raBitmatrix.sml
[smlnj] / sml / trunk / src / MLRISC / ra / raBitmatrix.sml  
ViewVC logotype

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

Parent Directory Parent Directory


Sticky Revision:
(Current path doesn't exist after revision 2125)

Revision 1065 - (view) (download) (annotate) - [select for diffs]
Modified Thu Feb 14 15:05:16 2002 UTC (17 years, 4 months ago) by george
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, 4 months ago) by george
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