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

SCM Repository

[diderot] Diff of /branches/lamont_dev/src/compiler/tree-il/low-to-tree-fn.sml
ViewVC logotype

Diff of /branches/lamont_dev/src/compiler/tree-il/low-to-tree-fn.sml

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

revision 2054, Tue Oct 23 13:59:08 2012 UTC revision 2055, Tue Oct 23 15:22:30 2012 UTC
# Line 383  Line 383 
383                        in                        in
384                              doNode (env, THEN_BR(stms, cond, !falseBranch)::ifStk, [], !trueBranch)                              doNode (env, THEN_BR(stms, cond, !falseBranch)::ifStk, [], !trueBranch)
385                        end                        end
386                    | IL.FOREACH{cond,stmBranch,phis,stmBranchDone,varStrandName,succ,...} =>                    | IL.FOREACH{cond as IL.OP(rator, args) ,stmBranch,phis,stmBranchDone,varStrandName,succ,...} =>
387                  if !stmBranchDone = false then                  if !stmBranchDone = false then
388                      (let                      (let
                         val e' = findVarExpr env cond  
389                          val (env, stms) = flushPending(env,stms)                          val (env, stms) = flushPending(env,stms)
390                          val (env',stms',phis',varList) =  addPhis(OPEN_JOIN_ND,!phis,env,[],stms,[])                          val (env',stms',phis',varList) =  addPhis(OPEN_JOIN_ND,!phis,env,[],stms,[])
391                            val e' = T.E_Op(rator, List.map (findVarExpr env) args)
392                       in                       in
393                          (stmBranchDone := true; dumpEnv env; doNode(env',(STM_BR(stms',e',phis',varList))::ifStk, [],!stmBranch))                          (stmBranchDone := true; dumpEnv env; doNode(env',(STM_BR(stms',e',phis',varList))::ifStk, [],!stmBranch))
394                       end)                       end)
# Line 397  Line 396 
396                          case (ifStk)                          case (ifStk)
397                          of (STM_BR(stms',cond,phis',varList)::stk)  =>                          of (STM_BR(stms',cond,phis',varList)::stk)  =>
398                                  let                                  let
399                                  val (env',stmBranch,_,_) = addPhis(OPEN_STM_BR,phis',env,[],stms,varList)                                  val (env',stmBranch,_,_) = (print "Got here\n"; addPhis(OPEN_STM_BR,phis',env,[],stms,varList))
400    
401                          val stm''' = mkForEach(cond,List.rev stmBranch,!varStrandName)                          val stm''' = mkForEach(cond,List.rev stmBranch,!varStrandName)
402                               in                               in

Legend:
Removed from v.2054  
changed lines
  Added in v.2055

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