SCM Repository
Log of /sml/trunk/src/MLRISC/ra/raBitmatrix.sml
Sticky Revision: |
Revision 1230 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 3 18:32:08 2002 UTC (18 years, 8 months ago) by george
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 (18 years, 11 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 (18 years, 11 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.
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |