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

SCM Repository

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

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

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

revision 3266, Fri Oct 2 18:54:29 2015 UTC revision 3267, Wed Oct 7 19:26:16 2015 UTC
# Line 203  Line 203 
203      (* record a local variable *)      (* record a local variable *)
204      fun addLocal (E{tbl, types,functs,locals}, x) = E{tbl=tbl,types=types, functs=functs,locals=x::locals}      fun addLocal (E{tbl, types,functs,locals}, x) = E{tbl=tbl,types=types, functs=functs,locals=x::locals}
205    
206      fun pntVar es=List.map (fn e=> print((DstV.name e)^","))es      fun pntVar es=List.map (fn e=> ((DstV.name e)^","))es
207      fun addLocals (E{tbl, types,functs,locals}, x) =      fun addLocals (E{tbl, types,functs,locals}, x) =
208                      (E{tbl=tbl,types=types, functs=functs,locals=x@locals})                      (E{tbl=tbl,types=types, functs=functs,locals=x@locals})
209      fun global (E{tbl, ...}, x, x') = (VT.insert tbl (x, GLOB x'))      fun global (E{tbl, ...}, x, x') = (VT.insert tbl (x, GLOB x'))
# Line 225  Line 225 
225                    VT.insert tbl (x, DEF( x'));                    VT.insert tbl (x, DEF( x'));
226                    env)                    env)
227    
228        fun getStmt (str,note)=List.map (fn e => (String.concat[Dst.toStringS e,note])) str
229      fun peekGlobal (E{tbl, ...}, x) = (case VT.find tbl x      fun peekGlobal (E{tbl, ...}, x) = (case VT.find tbl x
230          of SOME(GLOB x') => SOME x'          of SOME(GLOB x') => SOME x'
231          | SOME e         => NONE          | SOME e         => NONE
# Line 248  Line 248 
248                  val vs=List.map (fn n=>  newLocalWithTy(name,n) ) tys                  val vs=List.map (fn n=>  newLocalWithTy(name,n) ) tys
249                  val rhs=Dst.E_Mux(A, isFill,nOrig,Tys,List.map (fn v=>Dst.E_Var v) vs)                  val rhs=Dst.E_Mux(A, isFill,nOrig,Tys,List.map (fn v=>Dst.E_Var v) vs)
250                  val stmts=ListPair.map  (fn(x,e)=>Dst.S_Assign([x],e)) (vs,exps)                  val stmts=ListPair.map  (fn(x,e)=>Dst.S_Assign([x],e)) (vs,exps)
251                    val _= getStmt(stmts,"bindLocal")
252                    in                    in
253                      (renameExp(addLocals(env,vs),lhs,rhs),stmts)                      (renameExp(addLocals(env,vs),lhs,rhs),stmts)
254                    end                    end
# Line 416  Line 417 
417            fun assignExp (env, exp) = let            fun assignExp (env, exp) = let
418                (* operations that return matrices may not be supported inline *)                (* operations that return matrices may not be supported inline *)
419                  val (env, t) = doLHS()                  val (env, t) = doLHS()
420                    val _= getStmt([Dst.S_Assign([t], exp)],"assignExp")
421                  in                  in
422                    (env, [Dst.S_Assign([t], exp)])                    (env, [Dst.S_Assign([t], exp)])
423                  end                  end
# Line 425  Line 427 
427                  | x' as Dst.E_Var _     => (env, x', [])                  | x' as Dst.E_Var _     => (env, x', [])
428                  | e                     => let                  | e                     => let
429                        val x' = newLocal x                        val x' = newLocal x
430                          val _= getStmt([Dst.S_Assign([x'], e)],"bindVar")
431                        in                        in
432                          (addLocal(env, x'), Dst.E_Var x', [Dst.S_Assign([x'], e)])                          (addLocal(env, x'), Dst.E_Var x', [Dst.S_Assign([x'], e)])
433                        end                        end
# Line 473  Line 476 
476                          (*end case *))                          (*end case *))
477    
478                      val (env,stmt)= bindSimple (env, lhs,exp)                      val (env,stmt)= bindSimple (env, lhs,exp)
479                      val _ =(String.concat["\n**** State-",Dst.toString exp,"\n =>",Dst.toString exp])                      val _ =(String.concat["\n**** State-",Dst.toString exp,"=",Dst.toString exp])
480                      (*adds loadArr function to env*)                      (*adds loadArr function to env*)
481                      val env'=addOprFromExp(env, exp)                      val env'=addOprFromExp(env, exp)
482    
# Line 886  Line 889 
889                               val Trator =  LowOpToTreeOp.expandOp rator                               val Trator =  LowOpToTreeOp.expandOp rator
890                              val exp = Dst.E_Op(Trator, List.map (useVar env) xs)                              val exp = Dst.E_Op(Trator, List.map (useVar env) xs)
891                              val stm = Dst.S_Assign(ys, exp)                              val stm = Dst.S_Assign(ys, exp)
892                                  val _= getStmt([stm],"MASSIGN")
893                              in                              in
894                                doNode (env, ifStk, stm :: stms, !succ)                                doNode (env, ifStk, stm :: stms, !succ)
895                              end                              end

Legend:
Removed from v.3266  
changed lines
  Added in v.3267

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