13 |
Description: |
Description: |
14 |
|
|
15 |
---------------------------------------------------------------------- |
---------------------------------------------------------------------- |
16 |
|
Name: Lal George |
17 |
|
Date: 2002/02/14 09:55:27 EST 2002 |
18 |
|
Tag: george-20020214-isabelle-bug |
19 |
|
Description: |
20 |
|
|
21 |
|
Fixed the MLRISC bug sent by Markus Wenzel regarding the compilation |
22 |
|
of Isabelle on the x86. |
23 |
|
|
24 |
|
From Allen: |
25 |
|
----------- |
26 |
|
I've found the problem: |
27 |
|
|
28 |
|
in ra-core.sml, I use the counter "blocked" to keep track of the |
29 |
|
true number of elements in the freeze queue. When the counter goes |
30 |
|
to zero, I skip examining the queue. But I've messed up the |
31 |
|
bookkeeping in combine(): |
32 |
|
|
33 |
|
else (); |
34 |
|
case !ucol of |
35 |
|
PSEUDO => (if !cntv > 0 then |
36 |
|
(if !cntu > 0 then blocked := !blocked - 1 else (); |
37 |
|
^^^^^^^^^^^^^^^^^^^^^^^ |
38 |
|
moveu := mergeMoveList(!movev, !moveu) |
39 |
|
) |
40 |
|
else (); |
41 |
|
|
42 |
|
combine() is called to coalesce two nodes u and v. |
43 |
|
I think I was thinking that if the move counts of u and v are both |
44 |
|
greater than zero then after they are coalesced then one node is |
45 |
|
removed from the freeze queue. Apparently I was thinking that |
46 |
|
both u and v are of low degree, but that's clearly not necessarily true. |
47 |
|
|
48 |
|
|
49 |
|
02/12/2002: |
50 |
|
Here's the patch. HOL now compiles. |
51 |
|
|
52 |
|
I don't know how this impact on performance (compile |
53 |
|
time or runtime). This bug caused the RA (especially on the x86) |
54 |
|
to go thru the potential spill phase when there are still nodes on the |
55 |
|
freeze queue. |
56 |
|
|
57 |
|
|
58 |
|
|
59 |
|
|
60 |
|
---------------------------------------------------------------------- |
61 |
Name: Matthias Blume |
Name: Matthias Blume |
62 |
Date: 2002/02/13 22:40:00 EST |
Date: 2002/02/13 22:40:00 EST |
63 |
Tag: blume-20020213-fptr-rtti |
Tag: blume-20020213-fptr-rtti |