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/mltree/rtl-props.sig
ViewVC logotype

Annotation of /sml/trunk/src/MLRISC/mltree/rtl-props.sig

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : leunga 591 (*
2 :     * Extract properties from RTLs
3 :     *)
4 :     signature RTL_PROPERTIES =
5 :     sig
6 :    
7 :     structure I : INSTRUCTIONS
8 :     structure C : CELLS
9 :     structure RTL : MLTREE_RTL
10 :     structure T : MLTREE
11 :     sharing I.C = C
12 :     sharing RTL.T = T
13 :    
14 :     datatype opnkind =
15 :     IMM (* immed value *)
16 :     | REG (* normal register *)
17 :     | FIX (* fixed register *)
18 :     | MEM (* memory *)
19 :     | CTRL (* control dependence *)
20 :    
21 :     (* Return the RTL describing the semantics of an instruction *)
22 :     val rtl : I.instruction -> RTL.rtl
23 :    
24 : leunga 606 (* Return the def/use of an instruction. *)
25 : leunga 591 val defUse : { immed : int -> C.cell,
26 :     operand : I.operand -> C.cell
27 :     } ->
28 : leunga 606 I.instruction -> C.cell list * C.cell list (* dst/src *)
29 : leunga 591
30 : leunga 606 (* Return the def/use of an instruction with cellkind information
31 :     * This function works the same way as the above. But with cellkind
32 :     * information attached.
33 :     *)
34 : leunga 591 val defUseWithCellKind :
35 :     { immed : int -> C.cell,
36 :     operand : I.operand -> C.cell
37 :     } ->
38 :     I.instruction ->
39 :     (C.cell * C.cellkind) list * (C.cell * C.cellkind) list
40 :    
41 :    
42 :     (* Return the operand kinds of an instruction. *)
43 :     val opnKind : I.instruction -> opnkind list * opnkind list (* dst/src *)
44 :    
45 :     (* Initialize the cellkinds of variables *)
46 :     val updateCellKind : {update:C.cell * C.cellkind -> unit} ->
47 :     I.instruction -> unit
48 :    
49 :     end
50 :    

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