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

SCM Repository

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

Diff of /trunk/src/compiler/IL/ssa-fn.sml

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

revision 366, Thu Sep 30 13:01:12 2010 UTC revision 367, Thu Sep 30 21:20:13 2010 UTC
# Line 88  Line 88 
88      and var = V of {      and var = V of {
89          name : string,                  (* name *)          name : string,                  (* name *)
90          id : Stamp.stamp,               (* unique ID *)          id : Stamp.stamp,               (* unique ID *)
91            bind : var_bind ref,            (* binding *)
92          useCnt : int ref,               (* count of uses *)          useCnt : int ref,               (* count of uses *)
93          props : PropList.holder          props : PropList.holder
94        }        }
95    
96        and var_bind
97          = VB_NONE
98          | VB_RHS of rhs
99          | VB_STATE_VAR
100    
101      withtype assign = (var * rhs)      withtype assign = (var * rhs)
102    
103      datatype program = Program of {      datatype program = Program of {
# Line 189  Line 195 
195      structure Var : sig      structure Var : sig
196          val new : string -> var          val new : string -> var
197          val name : var -> string          val name : var -> string
198            val binding : var -> var_bind
199            val setBinding : var * var_bind -> unit
200          val same : var * var -> bool          val same : var * var -> bool
201          val compare : var * var -> order          val compare : var * var -> order
202          val hash : var -> word          val hash : var -> word
# Line 298  Line 306 
306    
307      and var = V of {      and var = V of {
308          name : string,                  (* name *)          name : string,                  (* name *)
309            bind : var_bind ref,            (* binding *)
310          id : Stamp.stamp,               (* unique ID *)          id : Stamp.stamp,               (* unique ID *)
311          useCnt : int ref,               (* count of uses *)          useCnt : int ref,               (* count of uses *)
312          props : PropList.holder          props : PropList.holder
313        }        }
314    
315        and var_bind
316          = VB_NONE
317          | VB_RHS of rhs
318          | VB_STATE_VAR
319    
320      withtype assign = (var * rhs)      withtype assign = (var * rhs)
321    
322      datatype program = Program of {      datatype program = Program of {
# Line 514  Line 528 
528          fun new name = V{          fun new name = V{
529                  name = name,                  name = name,
530                  id = Stamp.new(),                  id = Stamp.new(),
531                    bind = ref VB_NONE,
532                  useCnt = ref 0,                  useCnt = ref 0,
533                  props = PropList.newHolder()                  props = PropList.newHolder()
534                }                }
535          fun name (V{name, ...}) = name          fun name (V{name, ...}) = name
536            fun binding (V{bind, ...}) = !bind
537            fun setBinding (V{bind, ...}, vb) = bind := vb
538          fun same (V{id=a, ...}, V{id=b, ...}) = Stamp.same(a, b)          fun same (V{id=a, ...}, V{id=b, ...}) = Stamp.same(a, b)
539          fun compare (V{id=a, ...}, V{id=b, ...}) = Stamp.compare(a, b)          fun compare (V{id=a, ...}, V{id=b, ...}) = Stamp.compare(a, b)
540          fun hash (V{id, ...}) = Stamp.hash id          fun hash (V{id, ...}) = Stamp.hash id

Legend:
Removed from v.366  
changed lines
  Added in v.367

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