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

SCM Repository

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

Diff of /branches/pure-cfg/src/compiler/IL/ssa-fn.sml

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

revision 496, Sun Jan 30 03:52:13 2011 UTC revision 497, Mon Jan 31 04:40:27 2011 UTC
# Line 51  Line 51 
51              stm : assign,              stm : assign,
52              succ : node ref              succ : node ref
53            }            }
54        | NEW of {                        (* create new actor instance *)        | NEW of {                        (* create new strand instance *)
55              pred : node ref,              pred : node ref,
56              actor : Atom.atom,              strand : Atom.atom,
57              args : var list,              args : var list,
58              succ : node ref              succ : node ref
59            }            }
# Line 98  Line 98 
98      datatype program = Program of {      datatype program = Program of {
99          globals : var list,          globals : var list,
100          globalInit : cfg,          globalInit : cfg,
101          actors : actor list          strands : strand list
102          (* initialization *)          (* initialization *)
103        }        }
104    
105      and actor = Actor of {      and strand = Strand of {
106          name : Atom.atom,          name : Atom.atom,
107          params : var list,          params : var list,
108          state : var list,          state : var list,
# Line 141  Line 141 
141          val concat : cfg * cfg -> cfg          val concat : cfg * cfg -> cfg
142        (* convert a non-empty list of assignments to a CFG *)        (* convert a non-empty list of assignments to a CFG *)
143          val assignsToCFG : assign list -> cfg          val assignsToCFG : assign list -> cfg
144          (* append a node to a CFG *)
145            val appendNode : cfg * node -> cfg
146        end        end
147    
148    (* operations on CFG nodes *)    (* operations on CFG nodes *)
# Line 169  Line 171 
171          val mkCOND : {cond : var, trueBranch : node, falseBranch : node} -> node          val mkCOND : {cond : var, trueBranch : node, falseBranch : node} -> node
172          val mkCOM : string list -> node          val mkCOM : string list -> node
173          val mkASSIGN : assign -> node          val mkASSIGN : assign -> node
174          val mkNEW : {actor : Atom.atom, args : var list} -> node          val mkNEW : {strand : Atom.atom, args : var list} -> node
175          val mkDIE : unit -> node          val mkDIE : unit -> node
176          val mkSTABILIZE : unit -> node          val mkSTABILIZE : unit -> node
177          val mkEXIT : unit -> node          val mkEXIT : unit -> node
# Line 274  Line 276 
276              stm : assign,              stm : assign,
277              succ : node ref              succ : node ref
278            }            }
279        | NEW of {                        (* create new actor instance *)        | NEW of {                        (* create new strand instance *)
280              pred : node ref,              pred : node ref,
281              actor : Atom.atom,              strand : Atom.atom,
282              args : var list,              args : var list,
283              succ : node ref              succ : node ref
284            }            }
# Line 321  Line 323 
323      datatype program = Program of {      datatype program = Program of {
324          globals : var list,          globals : var list,
325          globalInit : cfg,          globalInit : cfg,
326          actors : actor list          strands : strand list
327          (* initialization *)          (* initialization *)
328        }        }
329    
330      and actor = Actor of {      and strand = Strand of {
331          name : Atom.atom,          name : Atom.atom,
332          params : var list,          params : var list,
333          state : var list,          state : var list,
# Line 373  Line 375 
375                })                })
376          fun mkCOM text = new (COM{pred = ref dummy, text = text, succ = ref dummy})          fun mkCOM text = new (COM{pred = ref dummy, text = text, succ = ref dummy})
377          fun mkASSIGN stm = new (ASSIGN{pred = ref dummy, stm = stm, succ = ref dummy})          fun mkASSIGN stm = new (ASSIGN{pred = ref dummy, stm = stm, succ = ref dummy})
378          fun mkNEW {actor, args} = new (NEW{          fun mkNEW {strand, args} = new (NEW{
379                  pred = ref dummy, actor = actor, args = args, succ = ref dummy                  pred = ref dummy, strand = strand, args = args, succ = ref dummy
380                })                })
381          fun mkDIE () = new (DIE{pred = ref dummy})          fun mkDIE () = new (DIE{pred = ref dummy})
382          fun mkSTABILIZE () = new (STABILIZE{pred = ref dummy})          fun mkSTABILIZE () = new (STABILIZE{pred = ref dummy})

Legend:
Removed from v.496  
changed lines
  Added in v.497

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