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

SCM Repository

[diderot] Diff of /branches/lamont/src/compiler/IL/ssa-sig.sml
ViewVC logotype

Diff of /branches/lamont/src/compiler/IL/ssa-sig.sml

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

revision 2081, Mon Nov 5 23:26:06 2012 UTC revision 2298, Fri Mar 15 22:18:22 2013 UTC
# Line 79  Line 79 
79              trueBranch : node ref,              trueBranch : node ref,
80              falseBranch : node ref              falseBranch : node ref
81            }            }
82          | FOREACH of {
83                pred : node ref,
84                cond : var,
85                phis : phi list ref,
86                stmBranch : node ref,
87                varStrandName : string ref,
88                shouldReplace : bool ref,
89                stmBranchDone : bool ref,
90                succ : node ref
91              }
92        | COM of  {                       (* comment *)        | COM of  {                       (* comment *)
93              pred : node ref,              pred : node ref,
94              text : string list,              text : string list,
# Line 112  Line 122 
122              live : var list             (* live variables *)              live : var list             (* live variables *)
123            }            }
124    
125        and strand_set
126          = SS_All
127          | SS_Stable
128          | SS_Active
129    
130      and rhs      and rhs
131        = STATE of state_var              (* read strand state variable *)        = STATE of state_var              (* read strand state variable *)
132        | VAR of var        | VAR of var
133        | LIT of Literal.literal        | LIT of Literal.literal
134          | SELECTOR of var * Atom.atom
135          | STRAND_SET of strand_set list
136        | OP of Op.rator * var list        | OP of Op.rator * var list
137        | APPLY of MathFuns.name * var list (* basis function application *)        | APPLY of MathFuns.name * var list (* basis function application *)
138        | CONS of Ty.ty * var list        (* tensor/sequence-value construction *)        | CONS of Ty.ty * var list        (* tensor/sequence-value construction *)
# Line 149  Line 166 
166      datatype program = Program of {      datatype program = Program of {
167          props : StrandUtil.program_prop list,          props : StrandUtil.program_prop list,
168          globalInit : cfg,          globalInit : cfg,
169            globalBlock : cfg,
170          initially : initially,          initially : initially,
171          strands : strand list          strands : strand list
172        }        }
# Line 263  Line 281 
281          val hasSucc : node -> bool          val hasSucc : node -> bool
282          val succs : node -> node list          val succs : node -> node list
283          val setSucc : node * node -> unit          val setSucc : node * node -> unit
284            val setStmBranch : node * node -> unit   (* set statement branch succesor for FOREACH node *)
285          val setTrueBranch : node * node -> unit  (* set trueBranch successor for COND node *)          val setTrueBranch : node * node -> unit  (* set trueBranch successor for COND node *)
286          val setFalseBranch : node * node -> unit (* set falseBranch successor for COND node *)          val setFalseBranch : node * node -> unit (* set falseBranch successor for COND node *)
287          val addEdge : node * node -> unit          val addEdge : node * node -> unit
# Line 274  Line 293 
293          val mkENTRY : unit -> node          val mkENTRY : unit -> node
294          val mkJOIN : (var * var list) list -> node          val mkJOIN : (var * var list) list -> node
295          val mkCOND : {cond : var, trueBranch : node, falseBranch : node} -> node          val mkCOND : {cond : var, trueBranch : node, falseBranch : node} -> node
296            val mkFOREACH : {cond: var, stmBranch: node, sName : string, phis:(var * var list) list} -> node
297          val mkCOM : string list -> node          val mkCOM : string list -> node
298          val mkASSIGN : assign -> node          val mkASSIGN : assign -> node
299          val mkMASSIGN : massign -> node          val mkMASSIGN : massign -> node
# Line 331  Line 351 
351    
352    (* operations on RHS expressions *)    (* operations on RHS expressions *)
353      structure RHS : sig      structure RHS : sig
354          (*  val reductionSame : reduction * reduction -> bool *)
355    (* FIXME: why are these strand_set functions defined here? *)
356            val strandSetSame : strand_set list * strand_set list -> bool
357         (*   val reductionToString: reduction -> string *)
358            val toStringSets : strand_set list -> string list
359          val toString : rhs -> string          val toString : rhs -> string
360          val vars : rhs -> var list          val vars : rhs -> var list
361          val map : (var -> var) -> rhs -> rhs          val map : (var -> var) -> rhs -> rhs

Legend:
Removed from v.2081  
changed lines
  Added in v.2298

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