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 /MLRISC/releases/release-110.84/IR/mlrisc-ir.sig
ViewVC logotype

Annotation of /MLRISC/releases/release-110.84/IR/mlrisc-ir.sig

Parent Directory Parent Directory | Revision Log Revision Log


Revision 245 - (view) (download) (as text)
Original Path: sml/branches/SMLNJ/src/MLRISC/IR/mlrisc-ir.sig

1 : monnier 245 (*
2 :     * MLRISC Internal IR
3 :     * This is for performing whole program analysis.
4 :     *)
5 :    
6 :     signature MLRISC_IR =
7 :     sig
8 :    
9 :     structure I : INSTRUCTIONS
10 :     structure CFG : CONTROL_FLOW_GRAPH
11 :     structure Dom : DOMINATOR_TREE
12 :     structure CDG : CONTROL_DEPENDENCE_GRAPH
13 :     structure Loop : LOOP_STRUCTURE
14 :     structure Util : CFG_UTIL
15 :     sharing Util.CFG = CFG
16 :     sharing CFG.I = I
17 :     sharing Loop.Dom = CDG.Dom = Dom
18 :    
19 :     type cfg = CFG.cfg
20 :     type IR = CFG.cfg (* The IR looks just like a CFG! *)
21 :     type dom = (CFG.block,CFG.edge_info,CFG.info) Dom.dominator_tree
22 :     type pdom = (CFG.block,CFG.edge_info,CFG.info) Dom.postdominator_tree
23 :     type cdg = (CFG.block,CFG.edge_info,CFG.info) CDG.cdg
24 :     type loop = (CFG.block,CFG.edge_info,CFG.info) Loop.loop_structure
25 :    
26 :     (*
27 :     * Extract various views from an IR.
28 :     * These are computed by need.
29 :     *)
30 :     val dom : IR -> dom
31 :     val pdom : IR -> pdom
32 :     val cdg : IR -> cdg
33 :     val loop : IR -> loop
34 :    
35 :     (*
36 :     * Signal that the IR has been changed
37 :     *)
38 :     val changed : IR -> unit
39 :    
40 :     (*
41 :     * View as a picture
42 :     *)
43 :     val view : string -> IR -> unit (* view some aspect of the IR *)
44 :     val viewSubgraph : IR -> cfg -> unit (* view a subgraph of the IR *)
45 :    
46 :     (*
47 :     * This function allows the client to design a new view and extend
48 :     * the functionality of the IR
49 :     *)
50 :     val memo : (IR -> 'facet) -> IR -> 'facet
51 :    
52 :     end
53 :    
54 :     (*
55 :     * $Log$
56 :     *)

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