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

SCM Repository

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

Diff of /branches/vis15/src/compiler/cfg-ir/ssa-fn.sml

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

revision 3475, Wed Dec 2 18:48:58 2015 UTC revision 3485, Sun Dec 6 13:48:48 2015 UTC
# Line 165  Line 165 
165    
166      datatype program = Program of {      datatype program = Program of {
167          props : Properties.t list,          props : Properties.t list,
168          globals : global_var list,      (* global variables (both input and non-input) *)          consts : global_var list,       (* large constant variables *)
169          inputInit : cfg,                (* CFG to initialize input globals (if any) *)          inputs : global_var list,       (* global input variables *)
170            globals : global_var list,      (* other global variables *)
171            constInit : cfg,                (* code that initializes constants and inputs *)
172          globalInit : cfg,               (* CFG to initialize other globals (if any) *)          globalInit : cfg,               (* CFG to initialize other globals (if any) *)
173          initially : initially,          strand : strand,                (* the strand definition *)
174          strands : strand list          create : create,                (* initial strand creation *)
175        }          update : cfg option             (* optional update code. *)
   
     and initially = Initially of {  
         isArray : bool,                 (* true for initially array, false for collection *)  
         rangeInit : cfg,                (* code to compute bounds of iteration *)  
         iters : (var * var * var) list, (* "for" i = min .. max *)  
         create : (cfg * Atom.atom * var list)  
176        }        }
177    
178      and strand = Strand of {      and strand = Strand of {
# Line 184  Line 180 
180          params : var list,          params : var list,
181          state : state_var list,          state : state_var list,
182          stateInit : cfg,          stateInit : cfg,
183          methods : method list          initM : cfg option,
184            updateM : cfg,
185            stabilizeM : cfg option
186        }        }
187    
188      and method = Method of {      and create = Create of {
189          name : StrandUtil.method_name,          dim : int option,               (* grid dimension; NONE for collections *)
190          body : cfg              (* method body *)          code : cfg                      (* the loop nest for creating the strands *)
191        }        }
192    
193      structure GlobalVar =      structure GlobalVar =
# Line 415  Line 413 
413                })                })
414          fun mkEXIT (kind, xs) = new (EXIT{kind = kind, live = xs, pred = ref dummy, succ = ref NONE})          fun mkEXIT (kind, xs) = new (EXIT{kind = kind, live = xs, pred = ref dummy, succ = ref NONE})
415          fun mkFRAGMENT xs = mkEXIT (ExitKind.FRAGMENT, xs)          fun mkFRAGMENT xs = mkEXIT (ExitKind.FRAGMENT, xs)
416          fun mkSINIT () = mkEXIT (ExitKind.SINIT, [])          fun mkRETURN () = mkEXIT (ExitKind.RETURN, [])
         fun mkRETURN xs = mkEXIT (ExitKind.RETURN, xs)  
417          fun mkACTIVE () = mkEXIT (ExitKind.ACTIVE, [])          fun mkACTIVE () = mkEXIT (ExitKind.ACTIVE, [])
418          fun mkSTABILIZE () = mkEXIT (ExitKind.STABILIZE, [])          fun mkSTABILIZE () = mkEXIT (ExitKind.STABILIZE, [])
419          fun mkDIE () = mkEXIT (ExitKind.DIE, [])          fun mkDIE () = mkEXIT (ExitKind.DIE, [])

Legend:
Removed from v.3475  
changed lines
  Added in v.3485

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