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/SSA/ssa-props.sig
ViewVC logotype

Annotation of /sml/trunk/src/MLRISC/SSA/ssa-props.sig

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : leunga 695 (*
2 :     * Instruction properties for utilizing the SSA form
3 :     *
4 :     * -- Allen (leunga@cs.nyu.edu)
5 :     *)
6 :     signature SSA_PROPERTIES =
7 :     sig
8 :    
9 :     structure I : INSTRUCTIONS
10 :     structure C : CELLS
11 :     structure RTL : MLTREE_RTL
12 :     structure T : MLTREE
13 :     structure RTLProps : RTL_PROPERTIES
14 :     structure OT : OPERAND_TABLE
15 :     sharing RTLProps.I = OT.I = I
16 :     sharing I.C = C
17 :     sharing RTL.T = T
18 :     sharing RTLProps.RTL = RTL
19 :    
20 :     (* Create special nodes *)
21 :     val source : I.instruction
22 :     val sink : I.instruction
23 :     val phi : I.instruction
24 :    
25 :     (* Physical registers whose value are volatile *)
26 :     val volatile : C.cell list
27 :    
28 :     (* Instructions with definitions (or use) of these registers will not
29 :     * be moved
30 :     *)
31 :     val pinnedDef : C.cell list
32 :     val pinnedUse : C.cell list
33 :    
34 :     (* Definitions (or use) of these registers will not be renamed *)
35 :     val fixedDef : C.cell list
36 :     val fixedUse : C.cell list
37 :    
38 :     (* Extract the naming constraints on the operands *)
39 :     val namingConstraints :
40 :     { instr : I.instruction, dst : C.cell list, src : C.cell list } ->
41 :     { dst : (T.var * C.cell) list, (* destination is fixed *)
42 :     src : (T.var * C.cell) list, (* source is fixed *)
43 :     dstsrc : (T.var * T.var) list (* dst = src *)
44 :     }
45 :    
46 :     (* Rewrite the operands of an instruction *)
47 :     val rewriteOperands :
48 :     { const : int -> OT.const } ->
49 :     { instr : I.instruction, dst : C.cell list, src : C.cell list } ->
50 :     I.instruction
51 :    
52 :     (* Make copies *)
53 :     val copies : {kind: C.cellkind, dst:C.cell, src:C.cell} list ->
54 :     I.instruction list
55 :     val copy : {instr:I.instruction,dst:C.cell list,src:C.cell list} ->
56 :     I.instruction
57 :     end
58 :    

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