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

SCM Repository

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

Diff of /branches/charisee/src/compiler/c-util/tree-to-c-fn.sml

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

revision 2631, Fri May 23 18:13:12 2014 UTC revision 2637, Wed May 28 05:20:45 2014 UTC
# Line 43  Line 43 
43      structure Op = IL.Op      structure Op = IL.Op
44      structure Ty = IL.Ty      structure Ty = IL.Ty
45      structure V = IL.Var      structure V = IL.Var
46         structure gT=getTypes      (*structure gT=getTypes*)
47    
48      datatype var = datatype CLang.typed_var      datatype var = datatype CLang.typed_var
49      type env = CLang.typed_var TreeIL.Var.Map.map      type env = CLang.typed_var TreeIL.Var.Map.map
# Line 157  Line 157 
157              | (Op.prodVec 2, args)   => CL.E_Apply(N.prod 2, args)              | (Op.prodVec 2, args)   => CL.E_Apply(N.prod 2, args)
158              | (Op.prodVec 3, args)   => CL.E_Apply(N.prod 3, args)              | (Op.prodVec 3, args)   => CL.E_Apply(N.prod 3, args)
159              | (Op.prodVec 4, args)   => CL.E_Apply(N.prod 4, args)              | (Op.prodVec 4, args)   => CL.E_Apply(N.prod 4, args)
160              | (Op.prodVec _, _)      => raise Fail"what do I do?"              | (Op.prodVec _, _)      => CL.E_Apply(N.prod 4, args)
161              | (Op.prodScaV 2,args)   => CL.E_Apply(N.scale 2, args)              | (Op.prodScaV 2,args)   => CL.E_Apply(N.scale 2, args)
162              | (Op.prodScaV 3,args)   => CL.E_Apply(N.scale 3, args)              | (Op.prodScaV 3,args)   => CL.E_Apply(N.scale 3, args)
163              | (Op.prodScaV 4,args)   => CL.E_Apply(N.scale 4, args)              | (Op.prodScaV 4,args)   => CL.E_Apply(N.scale 4, args)
164              | (Op.prodScaV _,_)      => raise Fail"what do I do?"              | (Op.prodScaV _,_)      =>  CL.E_Apply(N.scale 4, args)
165              | (Op.sumVec 2,args)     => CL.E_Apply(N.sum 2, args)              | (Op.sumVec 2,args)     => CL.E_Apply(N.sum 2, args)
166              | (Op.sumVec 3,args)     => CL.E_Apply(N.sum 3, args)              | (Op.sumVec 3,args)     => CL.E_Apply(N.sum 3, args)
167              | (Op.sumVec 4,args)     => CL.E_Apply(N.sum 4, args)              | (Op.sumVec 4,args)     => CL.E_Apply(N.sum 4, args)
168              | (Op.sumVec _,_)        => raise Fail"what do I do?"              | (Op.sumVec _,_)        => CL.E_Apply(N.sum 4, args)
169              | (Op.IndexTensor(_,_, Ty.indexTy indexAt, resultTy),args)=> CL.E_Apply(N.indexVec(2,indexAt) ,args)              | (Op.IndexTensor(_,_, Ty.indexTy indexAt, resultTy),args)=> CL.E_Apply(N.indexVec(2,indexAt) ,args)
170    
171    
# Line 272  Line 272 
272              | IL.E_Apply(f, args) => trApply(f, trExps(env, args))              | IL.E_Apply(f, args) => trApply(f, trExps(env, args))
273              | IL.E_Cons(Ty.TensorTy[n], args) => CL.mkApply(N.mkVec n, trExps(env, args))              | IL.E_Cons(Ty.TensorTy[n], args) => CL.mkApply(N.mkVec n, trExps(env, args))
274              | IL.E_Cons(ty, _) => raise Fail(concat["E_Cons(", Ty.toString ty, ", _) in expression"])              | IL.E_Cons(ty, _) => raise Fail(concat["E_Cons(", Ty.toString ty, ", _) in expression"])
275                | IL.E_mkVec( n, orig,_,args) =>
276                              CL.mkApply(N.mkVecfn(n,orig), trExps(env, args))
277              | IL.E_LoadVec(n, orig, _,arg) =>              | IL.E_LoadVec(n, orig, _,arg) =>
278                          CL.mkApply(N.ldVecfn(n, orig), trExps(env, [arg]))                          CL.mkApply(N.ldVecfn(n, orig), trExps(env, [arg]))
279                      | IL.E_mkVec( n, orig,_,args) =>(print "ji";              | IL.E_FillVec(n,orig,_,arg)  =>
280                            CL.mkApply(N.mkVecfn(n,orig), trExps(env, args)))                      CL.mkApply(N.ldVecfn(n, orig), trExps(env, [arg]))
281                | IL.E_SliceVec(n,orig,_,arg)  =>
282                        CL.mkApply(N.ldVecfn(n, orig), trExps(env, [arg]))
283    
284    
285            (* end case *))            (* end case *))
# Line 480  Line 484 
484    
485      fun trStms (env, stms) = let      fun trStms (env, stms) = let
486            val _= pntTest "\n tree Stmt"            val _= pntTest "\n tree Stmt"
487            val items=ref []  
488            val namesAll=ref []  
489            fun trStmt (env, stm) = (case stm            fun trStmt (env, stm) = (case stm
490                   of IL.S_Comment text => [CL.mkComment text]                   of IL.S_Comment text => [CL.mkComment text]
491                    | IL.S_Assign([x], exp) => let                    | IL.S_Assign([x], exp) => let
492    
493                          val types=gT.getTypesFiltered stm                         (* val types=gT.getTypesFiltered stm
494                          val _=items:=(types@(!items))                          val _=items:=(types@(!items))
495                          val names=fnNames.ExptoCString  stm  
496                          val _=namesAll:=(names@(!namesAll))                    *)
497    
498                          in                          in
499                              trAssign (env, VarToC.lvalueVar (env, x), exp)                              trAssign (env, VarToC.lvalueVar (env, x), exp)
# Line 540  Line 544 
544    
545    
546            val r=List.foldr (fn (stm, stms) => trStmt(env, stm)@stms) [] stms            val r=List.foldr (fn (stm, stms) => trStmt(env, stm)@stms) [] stms
547            val _= gT.gotFiltered(!items)          (*  val _= gT.prnTy("FinalTypes",!items)
548            val _= fnNames.gotFiltered(!namesAll)    *)
549            in r            in r
550            end            end
551    

Legend:
Removed from v.2631  
changed lines
  Added in v.2637

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