Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/MLRISC/ra/ra-core.sig
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 427 - (view) (download) (as text)

1 : monnier 427 (** Graph coloring register allocation.
2 :     ** Implements the 'iterated register coalescing' scheme described
3 :     ** in POPL'96, and TOPLAS v18 #3, pp 325-353.
4 :     **
5 :     ** RA CORE defines the core of the register allocator.
6 :     ** This basically means the enableMove, coalesce, simplify and freeze phases.
7 :     ** These are separated out from the rest for more modularity
8 :     ** and customizability.
9 :     **
10 :     ** -- Allen
11 :     **)
12 :    
13 :    
14 :     signature RA_CORE =
15 :     sig
16 :    
17 :     structure G : RA_GRAPH
18 :    
19 :     (*
20 :     * Basic functions
21 :     *)
22 :     (* add an edge *)
23 :     val addEdge : G.interferenceGraph -> G.node * G.node -> unit
24 :     (* debugging *)
25 :     val dumpGraph : G.interferenceGraph -> unit
26 :    
27 :    
28 :     (*
29 :     * Core phases
30 :     *)
31 :     val makeWorkLists : G.interferenceGraph -> G.movelist -> G.worklists
32 :     val simplifyPhase : G.interferenceGraph -> G.worklists -> G.worklists
33 :     val coalescePhase : G.interferenceGraph -> G.worklists -> G.worklists
34 :     val freezePhase : G.interferenceGraph -> G.worklists -> G.worklists
35 :     val wklFromFrozen : int * G.node -> G.node list
36 :    
37 :     (* Return a list of spill nodes *)
38 :     val optimisticSpilling : G.interferenceGraph -> G.worklists -> G.node list
39 :    
40 :     (* simplify/coalesce/freeze *)
41 :     val simplifyCoalesceFreeze : G.interferenceGraph -> G.worklists -> G.worklists
42 :    
43 :     (* Update the regmap to be consistent with the node set,
44 :     * after register allocation or copy propagation
45 :     *)
46 :     val finishRA : G.interferenceGraph -> unit
47 :     val finishCP : G.interferenceGraph -> unit
48 :     end
49 :    

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