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 393, Thu Oct 14 15:45:01 2010 UTC revision 394, Thu Oct 14 16:30:29 2010 UTC
# Line 89  Line 89 
89      and var = V of {      and var = V of {
90          name : string,                  (* name *)          name : string,                  (* name *)
91          id : Stamp.stamp,               (* unique ID *)          id : Stamp.stamp,               (* unique ID *)
92            ty : Ty.ty,                     (* type *)
93          bind : var_bind ref,            (* binding *)          bind : var_bind ref,            (* binding *)
94          useCnt : int ref,               (* count of uses *)          useCnt : int ref,               (* count of uses *)
95          props : PropList.holder          props : PropList.holder
# Line 196  Line 197 
197        end        end
198    
199      structure Var : sig      structure Var : sig
200          val new : string -> var          val new : string * Ty.ty -> var
201          val name : var -> string          val name : var -> string
202            val ty : var -> Ty.ty
203          val binding : var -> var_bind          val binding : var -> var_bind
204          val setBinding : var * var_bind -> unit          val setBinding : var * var_bind -> unit
205          val same : var * var -> bool          val same : var * var -> bool
# Line 314  Line 316 
316    
317      and var = V of {      and var = V of {
318          name : string,                  (* name *)          name : string,                  (* name *)
319            ty : Ty.ty,                     (* type *)
320          bind : var_bind ref,            (* binding *)          bind : var_bind ref,            (* binding *)
321          id : Stamp.stamp,               (* unique ID *)          id : Stamp.stamp,               (* unique ID *)
322          useCnt : int ref,               (* count of uses *)          useCnt : int ref,               (* count of uses *)
# Line 535  Line 538 
538    
539      structure Var =      structure Var =
540        struct        struct
541          fun new name = V{          fun new (name, ty) = V{
542                  name = name,                  name = name,
543                  id = Stamp.new(),                  id = Stamp.new(),
544                    ty = ty,
545                  bind = ref VB_NONE,                  bind = ref VB_NONE,
546                  useCnt = ref 0,                  useCnt = ref 0,
547                  props = PropList.newHolder()                  props = PropList.newHolder()
548                }                }
549          fun name (V{name, ...}) = name          fun name (V{name, ...}) = name
550            fun ty (V{ty, ...}) = ty
551          fun binding (V{bind, ...}) = !bind          fun binding (V{bind, ...}) = !bind
552          fun setBinding (V{bind, ...}, vb) = bind := vb          fun setBinding (V{bind, ...}, vb) = bind := vb
553          fun same (V{id=a, ...}, V{id=b, ...}) = Stamp.same(a, b)          fun same (V{id=a, ...}, V{id=b, ...}) = Stamp.same(a, b)

Legend:
Removed from v.393  
changed lines
  Added in v.394

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