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

SCM Repository

[diderot] Diff of /branches/lamont_dev/src/compiler/IL/check-il-fn.sml
ViewVC logotype

Diff of /branches/lamont_dev/src/compiler/IL/check-il-fn.sml

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

revision 1867, Mon May 7 14:43:11 2012 UTC revision 1868, Fri May 11 03:17:42 2012 UTC
# Line 68  Line 68 
68                      in                      in
69                        output                        output
70                      end                      end
71            | IL.FOREACH{phis, ...} => let
72                      (* add the lhs of the phi node.  We do not remove the rhs variables, since
73                       * after value numbering, they may have further uses.
74                       *)
75                        fun doPhi ((y, _), vs) = VSet.add(vs, y)
76                        val output = List.foldl doPhi input (!phis)
77                        in
78                          output
79                        end
80                  | IL.ASSIGN{stm=(y, _), ...} => VSet.add(input, y)                  | IL.ASSIGN{stm=(y, _), ...} => VSet.add(input, y)
81                  | IL.MASSIGN{stm=(ys, _, _), ...} => VSet.addList(input, ys)                  | IL.MASSIGN{stm=(ys, _, _), ...} => VSet.addList(input, ys)
82                  | _ => input                  | _ => input
# Line 262  Line 271 
271                              orelse VSet.member(bvs, cond)                              orelse VSet.member(bvs, cond)
272                                then ()                                then ()
273                                else errFn [S "unbound variable ", V cond, S " in conditional"]                                else errFn [S "unbound variable ", V cond, S " in conditional"]
274                | IL.FOREACH{cond,phis,...} =>
275                                if VSet.member(Avail.inValue nd, cond)
276                                orelse VSet.member(bvs, cond)
277                                  then List.app (checkPhi (VSet.union(Avail.inValue nd, bvs))) (!phis)
278                                  else errFn [S "unbound variable ", V cond, S " in foreach conditional"]
279                          | IL.ASSIGN{stm, ...} =>                          | IL.ASSIGN{stm, ...} =>
280                              ignore (checkAssign (stm, VSet.union(Avail.inValue nd, bvs)))                              ignore (checkAssign (stm, VSet.union(Avail.inValue nd, bvs)))
281                          | IL.MASSIGN{stm, ...} =>                          | IL.MASSIGN{stm, ...} =>

Legend:
Removed from v.1867  
changed lines
  Added in v.1868

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