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 2689, Thu Aug 28 13:59:40 2014 UTC revision 2690, Fri Aug 29 15:41:22 2014 UTC
# Line 174  Line 174 
174    (* record a local variable *)    (* record a local variable *)
175      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}
176      fun addLocals (E{tbl, types,functs,locals}, x) = E{tbl=tbl,types=types, functs=functs,locals=x@locals}      fun addLocals (E{tbl, types,functs,locals}, x) = E{tbl=tbl,types=types, functs=functs,locals=x@locals}
177       fun testp t=1(*print(String.concat t)*)       fun testp t=print(String.concat t)
178      fun global (E{tbl, ...}, x, x') =( testp[("\n using global function "^V.name x^":\n")];      fun global (E{tbl, ...}, x, x') =( testp[("\n using global function "^V.name x^":\n")];
179                      VT.insert tbl (x, GLOB x'))                      VT.insert tbl (x, GLOB x'))
180    
# Line 330  Line 330 
330               (*Added here *)               (*Added here *)
331              (*when false calls assignExp *)              (*when false calls assignExp *)
332              (*sumvec- commenting out, we don't generate function*)              (*sumvec- commenting out, we don't generate function*)
333               | SrcOp.sumVec(n,_)    => false               | SrcOp.sumVec n    => false
334    
335               | SrcOp.imgAddr _      => false               | SrcOp.imgAddr _      => false
336               | SrcOp.imgLoad _      => false               | SrcOp.imgLoad _      => false
# Line 440  Line 440 
440    
441    
442                      val cnt=useCount lhs                      val cnt=useCount lhs
443                      val (expOpt,storeVecStatement,storeVecExp) = LowOpToTreeOp.vecToTree(t,cnt,rator,newSize,n,Pieces,argsS,argsV,isFill)                      val (expOpt,storeVecStatement) = LowOpToTreeOp.vecToTree(t,cnt,rator,newSize,n,Pieces,argsS,argsV,isFill)
444    
445                      val isBind=true                      val isBind=true
                     val isStatement=false  
446    
447    
448                      in (case (expOpt,storeVecStatement,storeVecExp,isStatement)  
449                          of (SOME x,_,_,_)=>  let                      in (case (expOpt,storeVecStatement)
450                               val _=testp ["\n **\n~~ RESULT ",Dst.toString x]                          of (SOME x,_)=>let
                            in  
                                 (env,[Dst.S_Assign([t],x)]) (*not using mkvec*)  
                             end  
                         | (NONE,_,SOME x,false)=>let  
451                               val _=testp ["\n **\nExp- RESULT ",Dst.toString x]                               val _=testp ["\n **\nExp- RESULT ",Dst.toString x]
452                              in                              in
453                                  if isBind then  bind (env, lhs, x)                                  if isBind then  bind (env, lhs, x)
454                                  else assignExp (env, x)                                  else assignExp (env, x)
455                              end                              end
456                          | (NONE,SOME x,_,true)=> let                          | (NONE,SOME x)=> let
457                              val _ =testp ["\n **\nStmt- RESULT ",Dst.toStringS x]                              val _ =testp ["\n **\nStmt- RESULT ",Dst.toStringS x]
458                              in                              in
459                                  (env,[x])                                  (env,[x])
460                              end                              end
461                          (*end case*))                          (*end case*))
462    
                 (*  
                     in (case (expOpt,storeVecStatement)  
                         of (SOME exp,_)     => let  
                            (* Dst.S_Assign([t],exp)*)  
                                 val _=print(String.concat["**\n",Dst.toString exp])  
                                 in  
                                 if isBind then  bind (env, lhs, exp)  
                                 else assignExp (env, exp)  
                                 end  
   
                         | (_,SOME stmt)    =>  (print(String.concat["**\n",Dst.toStringS stmt]); (env,[stmt]))  
                         (*end case*))  
   
                     *)  
   
463                     end                     end
464    
465                  val _= testp ["\n **************************** \n Analyzing ", SrcOp.toString rator]                  val _= testp ["\n **************************** \n Analyzing ", SrcOp.toString rator]
# Line 490  Line 470 
470                       of (SrcOp.addVec n,_)        =>  foundVec(DstOp.addVec,n,[],args')                       of (SrcOp.addVec n,_)        =>  foundVec(DstOp.addVec,n,[],args')
471                       | (SrcOp.subVec n,_)         =>  foundVec(DstOp.subVec,n,[],args')                       | (SrcOp.subVec n,_)         =>  foundVec(DstOp.subVec,n,[],args')
472                       | (SrcOp.prodScaV n,e1::es)  =>  foundVec(DstOp.prodScaV ,n, [e1], es)                       | (SrcOp.prodScaV n,e1::es)  =>  foundVec(DstOp.prodScaV ,n, [e1], es)
473                       | (SrcOp.prodVec(n,1),_)     =>  foundVec(DstOp.prodVec,n,[],args')                       | (SrcOp.prodVec n,_)     =>  foundVec(DstOp.prodVec,n,[],args')
474                       | (SrcOp.dotVec(n ,1),_)     =>  foundVec(DstOp.dotVec ,n,[],args')                       | (SrcOp.dotVec n ,_)     =>  foundVec(DstOp.dotVec ,n,[],args')
475                         | (SrcOp.sumVec n ,_)     =>  foundVec(DstOp.sumVec ,n,[],args')
476                       | (SrcOp.Floor n ,_)         =>  foundVec(DstOp.Floor ,n,[],args')                       | (SrcOp.Floor n ,_)         =>  foundVec(DstOp.Floor ,n,[],args')
477    
478                          (* removed sumVec*)                          (* removed sumVec*)
# Line 558  Line 539 
539          fun getFNC(env,stms)=let          fun getFNC(env,stms)=let
540    
541              val t1=peelEnv(env)              val t1=peelEnv(env)
542              val (ty2,opr2)= List.foldr (fn(e1,e2) => gT.getTypesFiltered (e2,e1)) t1 stms              val (ty2,opr2)= List.foldr (fn(e1,e2) => gT.stmtToOpr (e2,e1)) t1 stms
543              in              in
544                  setEnv(env, ty2,opr2)                  setEnv(env, ty2,opr2)
545              end              end
# Line 656  Line 637 
637                          (*end case*))                          (*end case*))
638    
639    
640                       val _=testp (["Src.Save\n",toS.SAVEtoString(lhs,rhs),"\n",Dst.toStringS stm,"\n rest"]@List.map Dst.toStringS stms)                       val _=testp (["Src.Save\n",toS.SAVEtoString(lhs,rhs),"\n",Dst.toStringS stm,"\n rest \n\t"]@List.map  Dst.toStringS stms)
641                      val stmts=stm::stms                      val stmts=stm::stms
642                        in                        in
643                          doNode (getFNC(env, stmts), ifStk, stmts, !succ)                          doNode (getFNC(env, stmts), ifStk, stmts, !succ)
# Line 807  Line 788 
788            val (typs,opr)= peelEnv(env)            val (typs,opr)= peelEnv(env)
789            val typsList=TySet.listItems(typs);            val typsList=TySet.listItems(typs);
790            val oprList=OprSet.listItems(opr);            val oprList=OprSet.listItems(opr);
791            val _=testp[(gT.prnTyFinal(typsList,oprList,"--FinalPostStrands--"))]            val _=testp[(TreeFunc.setToString(typsList,oprList,"--FinalPostStrands--"))]
792    
793            in  Dst.Program{            in  Dst.Program{
794                    props = props,                    props = props,

Legend:
Removed from v.2689  
changed lines
  Added in v.2690

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