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 /MLRISC/trunk/ra/ra-graph.sig
ViewVC logotype

Diff of /MLRISC/trunk/ra/ra-graph.sig

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1009, Wed Jan 9 19:44:22 2002 UTC revision 1065, Thu Feb 14 15:05:16 2002 UTC
# Line 8  Line 8 
8  sig  sig
9    
10     structure C : CELLS_BASIS     structure C : CELLS_BASIS
11      structure BM : RA_BITMATRIX = RaBitmatrix
12    (*    (*
13     * The following are the data structures used in the register allocator.     * The following are the data structures used in the register allocator.
14     *)     *)
15    
   (* A new bit matrix datatype.  
    * We use the small representation whenever possible to save space.  
    *)  
   datatype bitMatrix = BM of {table:hashTable,  
                               elems:int ref,  
                               edges:int}  
   and hashTable = SMALL of word list Array.array ref * word  
                 | LARGE of bucket Array.array ref * word  
              (* | BITMATRIX of Word8Array.array *)  
   and bucket = NIL | B of int * int * bucket  
   
16    exception Nodes    exception Nodes
17    
18    type priority = int    type priority = int
# Line 57  Line 46 
46    
47    datatype interferenceGraph =    datatype interferenceGraph =
48       GRAPH of       GRAPH of
49       { bitMatrix    : bitMatrix ref,       { bitMatrix    : BM.bitMatrix ref,
50         nodes        : node IntHashTable.hash_table,         nodes        : node IntHashTable.hash_table,
51         K            : int,         K            : int,
52         firstPseudoR : int,         firstPseudoR : int,
# Line 96  Line 85 
85         (* mode *)         (* mode *)
86         mode         : mode,         mode         : mode,
87    
88         pseudoCount  : int ref,         pseudoCount  : int ref
        blockedCount : int ref  
89       }       }
90    
91    and moveStatus = BRIGGS_MOVE             (* not yet coalesceable *)    and moveStatus = BRIGGS_MOVE             (* not yet coalesceable *)
# Line 161  Line 149 
149    and trailInfo = END | UNDO of node * moveStatus ref * trailInfo    and trailInfo = END | UNDO of node * moveStatus ref * trailInfo
150    
151    (* Create a new bitMatrix *)    (* Create a new bitMatrix *)
152    val newBitMatrix : {edges : int, maxRegs : int} -> bitMatrix    val newBitMatrix : {edges : int, maxRegs : int} -> BM.bitMatrix
153    
154    (* Create a new interference graph *)    (* Create a new interference graph *)
155    val newGraph : { nodes        : node IntHashTable.hash_table,    val newGraph : { nodes        : node IntHashTable.hash_table,

Legend:
Removed from v.1009  
changed lines
  Added in v.1065

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