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 282, Fri Aug 13 19:20:23 2010 UTC revision 283, Fri Aug 13 20:38:43 2010 UTC
# Line 129  Line 129 
129          val setTrueBranch : node * node -> unit  (* set trueBranch successor for COND node *)          val setTrueBranch : node * node -> unit  (* set trueBranch successor for COND node *)
130          val setFalseBranch : node * node -> unit (* set falseBranch successor for COND node *)          val setFalseBranch : node * node -> unit (* set falseBranch successor for COND node *)
131          val addEdge : node * node -> unit          val addEdge : node * node -> unit
132          (* properties *)
133            val newProp : (node -> 'a) -> {
134                    getFn : node -> 'a,
135                    peekFn : node -> 'a option,
136                    setFn : node * 'a -> unit,
137                    clrFn : node -> unit
138                  }
139            val newFlag : unit -> {
140                    getFn : node -> bool,
141                    setFn : node * bool -> unit
142                  }
143        end        end
144    
145      structure Stmt : sig      structure Stmt : sig
# Line 149  Line 160 
160          val mkDIE : unit -> stmt          val mkDIE : unit -> stmt
161          val mkSTABILIZE : unit -> stmt          val mkSTABILIZE : unit -> stmt
162          val mkEXIT : unit -> stmt          val mkEXIT : unit -> stmt
163          (* properties *)
164            val newProp : (stmt -> 'a) -> {
165                    getFn : stmt -> 'a,
166                    peekFn : stmt -> 'a option,
167                    setFn : stmt * 'a -> unit,
168                    clrFn : stmt -> unit
169                  }
170            val newFlag : unit -> {
171                    getFn : stmt -> bool,
172                    setFn : stmt * bool -> unit
173                  }
174        end        end
175    
176      structure Var : sig      structure Var : sig
# Line 157  Line 179 
179          val compare : var * var -> order          val compare : var * var -> order
180          val hash : var -> word          val hash : var -> word
181          val toString : var -> string          val toString : var -> string
182          (* properties *)
183            val newProp : (var -> 'a) -> {
184                    getFn : var -> 'a,
185                    peekFn : var -> 'a option,
186                    setFn : var * 'a -> unit,
187                    clrFn : var -> unit
188                  }
189            val newFlag : unit -> {
190                    getFn : var -> bool,
191                    setFn : var * bool -> unit
192                  }
193          (* collections *)
194          structure Map : ORD_MAP where type Key.ord_key = var          structure Map : ORD_MAP where type Key.ord_key = var
195          structure Set : ORD_SET where type Key.ord_key = var          structure Set : ORD_SET where type Key.ord_key = var
196          structure Tbl : MONO_HASH_TABLE where type Key.hash_key = var          structure Tbl : MONO_HASH_TABLE where type Key.hash_key = var
# Line 380  Line 414 
414  (*DEBUG*)handle ex => (  (*DEBUG*)handle ex => (
415  print(concat["error in addEdge(", toString nd1, ",", toString nd2, ")\n"]);  print(concat["error in addEdge(", toString nd1, ",", toString nd2, ")\n"]);
416  raise ex)  raise ex)
417          (* properties *)
418            fun newProp initFn =
419                  PropList.newProp (fn (ND{props, ...}) => props, initFn)
420            fun newFlag () =
421                  PropList.newFlag (fn (ND{props, ...}) => props)
422        end        end
423    
424      structure Stmt =      structure Stmt =
# Line 444  Line 483 
483          fun mkDIE () = new (S_SIMPLE(Node.mkDIE ()), NONE)          fun mkDIE () = new (S_SIMPLE(Node.mkDIE ()), NONE)
484          fun mkSTABILIZE () = new (S_SIMPLE(Node.mkSTABILIZE ()), NONE)          fun mkSTABILIZE () = new (S_SIMPLE(Node.mkSTABILIZE ()), NONE)
485          fun mkEXIT () = new (S_SIMPLE(Node.mkEXIT ()), NONE)          fun mkEXIT () = new (S_SIMPLE(Node.mkEXIT ()), NONE)
486          (* properties *)
487            fun newProp initFn =
488                  PropList.newProp (fn (STM{props, ...}) => props, initFn)
489            fun newFlag () =
490                  PropList.newFlag (fn (STM{props, ...}) => props)
491        end        end
492    
493      structure Var =      structure Var =
# Line 458  Line 502 
502          fun compare (V{id=a, ...}, V{id=b, ...}) = Stamp.compare(a, b)          fun compare (V{id=a, ...}, V{id=b, ...}) = Stamp.compare(a, b)
503          fun hash (V{id, ...}) = Stamp.hash id          fun hash (V{id, ...}) = Stamp.hash id
504          fun toString (V{name, id, ...}) = name ^ Stamp.toString id          fun toString (V{name, id, ...}) = name ^ Stamp.toString id
505          (* properties *)
506            fun newProp initFn =
507                  PropList.newProp (fn (V{props, ...}) => props, initFn)
508            fun newFlag () =
509                  PropList.newFlag (fn (V{props, ...}) => props)
510          local          local
511            structure V =            structure V =
512              struct              struct

Legend:
Removed from v.282  
changed lines
  Added in v.283

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