Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/tree-ir/tree-ir.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/tree-ir/tree-ir.sml

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

revision 3750, Wed Apr 13 07:35:23 2016 UTC revision 3812, Wed May 4 13:16:31 2016 UTC
# Line 12  Line 12 
12  structure TreeIR =  structure TreeIR =
13    struct    struct
14    
15      structure Op = LowOps      structure Op = TreeOps
16      structure Ty = TreeTypes      structure Ty = TreeTypes
17    
18      datatype program = Program of {      datatype program = Program of {
# Line 49  Line 49 
49    
50      and stm      and stm
51        = S_Comment of string list        = S_Comment of string list
52        | S_Assign of var list * exp        | S_Unpack of var list * exp      (* unpack vector pieces into local variables *)
53          | S_Assign of var * exp
54        | S_GAssign of global_var * exp        | S_GAssign of global_var * exp
55        | S_IfThen of exp * block        | S_IfThen of exp * block
56        | S_IfThenElse of exp * block * block        | S_IfThenElse of exp * block * block
57        | S_Foreach of var * exp * block        | S_Foreach of var * exp * block
58      (* special Diderot forms *)      (* special Diderot forms *)
59        | S_LoadNrrd of var * Ty.ty * string        | S_LoadNrrd of var * string
60        | S_Input of global_var * string * string option * exp option (* get input *)        | S_Input of global_var * string * string option * exp option (* get input *)
61        | S_InputNrrd of global_var * string * string option * string option (* get image/seq input *)        | S_InputNrrd of global_var * string * string option * string option (* get image/seq input *)
62        | S_New of Atom.atom * exp list   (* new strand creation *)        | S_New of Atom.atom * exp list   (* new strand creation *)
63        | S_Save of state_var list * exp  (* save strand state *)        | S_Save of state_var * exp  (* save strand state *)
64        | S_Exit of exp list        | S_Exit of exp list
65          | S_Print of Ty.t list * exp list
66      (* return functions for methods *)      (* return functions for methods *)
67        | S_Active        | S_Active
68        | S_Stabilize        | S_Stabilize
# Line 72  Line 74 
74        | E_Var of var        | E_Var of var
75        | E_Lit of Literal.t        | E_Lit of Literal.t
76        | E_Op of Op.rator * exp list        | E_Op of Op.rator * exp list
77        | E_Cons of Ty.ty * exp list        | E_Cons of exp list * Ty.t
78        | E_Seq of Ty.ty * exp list        | E_Seq of exp list * Ty.t
79          | E_Pack of exp list              (* pack vector pieces into composite vector value *)
80    
81      and global_var = GV of {      and global_var = GV of {
82          name : string,          (* name (should be unique) *)          name : string,          (* name (should be unique) *)
83          ty : Ty.ty,             (* type *)          ty : Ty.t,              (* type *)
84          input : bool            (* is an input variable *)          input : bool            (* is an input variable *)
85        }        }
86    
87      and state_var = SV of {      and state_var = SV of {
88          name : string,          (* name (should be unique) *)          name : string,          (* name (should be unique) *)
89          ty : Ty.ty,             (* type *)          ty : Ty.t,              (* type *)
90          varying : bool,         (* varies over the lifetime of the strand *)          varying : bool,         (* varies over the lifetime of the strand *)
91          output : bool           (* is the output value of the strand *)          output : bool           (* is the output value of the strand *)
92        }        }
# Line 91  Line 94 
94      and var = V of {      and var = V of {
95          name : string,                  (* name (should be unique) *)          name : string,                  (* name (should be unique) *)
96          id : Stamp.stamp,               (* unique ID *)          id : Stamp.stamp,               (* unique ID *)
97          ty : Ty.ty                      (* type *)          ty : Ty.t                      (* type *)
98        }        }
99    
100      withtype input = global_var Inputs.input      withtype input = global_var Inputs.input
101    
102      structure GlobalVar : sig      structure GlobalVar : sig
103          val name : global_var -> string          val name : global_var -> string
104          val ty : global_var -> Ty.ty          val ty : global_var -> Ty.t
105          val isInput : global_var -> bool          val isInput : global_var -> bool
106          val toString : global_var -> string          val toString : global_var -> string
107        end = struct        end = struct
# Line 110  Line 113 
113    
114      structure StateVar : sig      structure StateVar : sig
115          val name : state_var -> string          val name : state_var -> string
116          val ty : state_var -> Ty.ty          val ty : state_var -> Ty.t
117          val isOutput : state_var -> bool          val isOutput : state_var -> bool
118          val isVarying : state_var -> bool          val isVarying : state_var -> bool
119          val toString : state_var -> string          val toString : state_var -> string
# Line 124  Line 127 
127    
128      structure Var : sig      structure Var : sig
129    
130          val new : string * Ty.ty -> var          val new : string * Ty.t -> var
131          val name : var -> string          val name : var -> string
132          val toString : var -> string          val toString : var -> string
133          val ty : var -> Ty.ty          val ty : var -> Ty.t
134    
135            structure Set : ORD_SET where type Key.ord_key = var
136          structure Map : ORD_MAP where type Key.ord_key = var          structure Map : ORD_MAP where type Key.ord_key = var
137    
138        end = struct        end = struct
# Line 147  Line 151 
151                fun compare (V{id=a, ...}, V{id=b, ...}) = Stamp.compare(a, b)                fun compare (V{id=a, ...}, V{id=b, ...}) = Stamp.compare(a, b)
152              end              end
153          in          in
154            structure Set = RedBlackSetFn (VarOrd)
155          structure Map = RedBlackMapFn (VarOrd)          structure Map = RedBlackMapFn (VarOrd)
156          end (* local *)          end (* local *)
157        end        end

Legend:
Removed from v.3750  
changed lines
  Added in v.3812

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