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

Diff of /sml/trunk/src/MLRISC/ra/ra-core.sig

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

sml/branches/SMLNJ/src/MLRISC/ra/ra-core.sig revision 475, Wed Nov 10 22:59:58 1999 UTC sml/trunk/src/MLRISC/ra/ra-core.sig revision 705, Wed Sep 27 18:44:44 2000 UTC
# Line 9  Line 9 
9  sig  sig
10    
11     structure G  : RA_GRAPH     structure G  : RA_GRAPH
12       structure BM :
13       sig
14          val size   : G.bitMatrix -> int
15          val member : G.bitMatrix -> int * int -> bool
16          val add    : G.bitMatrix -> int * int -> bool
17       end
18       structure MV : RA_PRIORITY_QUEUE where type elem = G.move
19       structure FZ : RA_PRIORITY_QUEUE where type elem = G.node
20    
21     type move_queue     type move_queue
22     type freeze_queue     type freeze_queue
23    
24       val NO_OPTIMIZATION      : G.mode
25       val BIASED_SELECTION     : G.mode
26       val DEAD_COPY_ELIM       : G.mode
27       val COMPUTE_SPAN         : G.mode
28       val SAVE_COPY_TEMPS      : G.mode
29       val HAS_PARALLEL_COPIES  : G.mode
30    
31     (*     (*
32      * Basic functions      * Basic functions
33      *)      *)
# Line 24  Line 39 
39     (* add an edge to the interference graph *)     (* add an edge to the interference graph *)
40     val addEdge : G.interferenceGraph -> G.node * G.node -> unit     val addEdge : G.interferenceGraph -> G.node * G.node -> unit
41    
    (* remove an edge from the interference graph *)  
    val removeEdge : G.interferenceGraph -> G.node * G.node -> unit  
   
42     (*     (*
43      * Function to create new nodes      * Function to create new nodes
44      *)      *)
# Line 45  Line 57 
57      * and a list of moves      * and a list of moves
58      *)      *)
59     val initWorkLists : G.interferenceGraph ->     val initWorkLists : G.interferenceGraph ->
60            { moves : G.move list,            { moves : G.move list
             deadCopyElim : bool  
61            } ->            } ->
62            { simplifyWkl : G.node list,            { simplifyWkl : G.node list,
63              moveWkl     : move_queue,              moveWkl     : move_queue,
# Line 60  Line 71 
71     val clearGraph : G.interferenceGraph -> unit     val clearGraph : G.interferenceGraph -> unit
72    
73     (*     (*
74      * Remove all adjacency lists from the nodes table      * Remove all adjacency lists from the nodes table.
75      *)      *)
76     val clearNodes : G.interferenceGraph -> unit     val clearNodes : G.interferenceGraph -> unit
77    
# Line 91  Line 102 
102     val potentialSpillNode :     val potentialSpillNode :
103          G.interferenceGraph ->          G.interferenceGraph ->
104             { node  : G.node,             { node  : G.node,
105                 cost  : real,
106               stack : G.node list               stack : G.node list
107             } ->             } ->
108             { moveWkl   : move_queue,             { moveWkl   : move_queue,
# Line 104  Line 116 
116      *)      *)
117     val select :     val select :
118          G.interferenceGraph ->          G.interferenceGraph ->
119             { biased : bool, (* use biased coloring too? *)             { stack  : G.node list
              stack  : G.node list  
120             } ->             } ->
121             { spills : G.node list (* actual spills *)             { spills : G.node list (* actual spills *)
122             }             }
123    
124     (*     (*
125      * Spill propagation/coalescing phase      * Incorporate memory <-> register moves
     *)  
    val spillPropagation : G.interferenceGraph -> G.node list -> G.node list  
   
    (*  
     * Spill coalescing phase  
126      *)      *)
127     val spillCoalescing : G.interferenceGraph -> G.node list -> unit     val initMemMoves : G.interferenceGraph -> unit
128    
129     (*     (*
130      * Spill coloring phase      * Compute spill savings due to memory <-> register moves
131      *)      *)
132     val spillColoring : G.interferenceGraph -> G.node list -> unit     val moveSavings : G.interferenceGraph -> (int -> int)
133    
134  end  end

Legend:
Removed from v.475  
changed lines
  Added in v.705

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