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 2637, Wed May 28 05:20:45 2014 UTC revision 2646, Thu May 29 15:52:23 2014 UTC
# Line 31  Line 31 
31    
32      val trExp : env * TreeIL.exp -> CLang.exp      val trExp : env * TreeIL.exp -> CLang.exp
33    
34        val trAllTypes: TreeIL.Ty.ty list ->CLang.ty list
35    
36        val trAllOpr: TreeFunc.oprator list ->CLang.Cfn list
37    
38    (* vector indexing support.  Arguments are: vector, arity, index *)    (* vector indexing support.  Arguments are: vector, arity, index *)
39      val ivecIndex : CLang.exp * int * int -> CLang.exp      val ivecIndex : CLang.exp * int * int -> CLang.exp
40      val vecIndex : CLang.exp * int * int -> CLang.exp      val vecIndex : CLang.exp * int * int -> CLang.exp
# Line 44  Line 48 
48      structure Ty = IL.Ty      structure Ty = IL.Ty
49      structure V = IL.Var      structure V = IL.Var
50      (*structure gT=getTypes*)      (*structure gT=getTypes*)
51        structure Opr=OprToClang
52    
53      datatype var = datatype CLang.typed_var      datatype var = datatype CLang.typed_var
54      type env = CLang.typed_var TreeIL.Var.Map.map      type env = CLang.typed_var TreeIL.Var.Map.map
# Line 72  Line 77 
77              | Ty.TensorTy[] => !N.gRealTy              | Ty.TensorTy[] => !N.gRealTy
78              | Ty.TensorTy[n] => CL.T_Named(N.vecTy n)              | Ty.TensorTy[n] => CL.T_Named(N.vecTy n)
79              | Ty.TensorTy[n, m] => CL.T_Named(N.matTy(n,m))              | Ty.TensorTy[n, m] => CL.T_Named(N.matTy(n,m))
80                | Ty.TensorTy e => CL.T_Named(N.tenTy e)
81              | Ty.SeqTy(Ty.IntTy, n) => CL.T_Named(N.ivecTy n)              | Ty.SeqTy(Ty.IntTy, n) => CL.T_Named(N.ivecTy n)
82              | Ty.SeqTy(ty, n) => CL.T_Array(trType ty, SOME n)              | Ty.SeqTy(ty, n) => CL.T_Array(trType ty, SOME n)
83              | Ty.AddrTy(ImageInfo.ImgInfo{ty=(_, rTy), ...}) => CL.T_Ptr(CL.T_Num rTy)              | Ty.AddrTy(ImageInfo.ImgInfo{ty=(_, rTy), ...}) => CL.T_Ptr(CL.T_Num rTy)
# Line 271  Line 277 
277              | IL.E_Op(rator, args) => trOp (rator, trExps(env, args))              | IL.E_Op(rator, args) => trOp (rator, trExps(env, args))
278              | IL.E_Apply(f, args) => trApply(f, trExps(env, args))              | IL.E_Apply(f, args) => trApply(f, trExps(env, args))
279              | 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))
280                | IL.E_Cons(Ty.TensorTy e, args) => CL.mkApply(N.tenTy e,trExps(env, args))
281              | 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"])
282              | IL.E_mkVec( n, orig,_,args) =>              | IL.E_mkVec( n, orig,_,args) =>
283                            CL.mkApply(N.mkVecfn(n,orig), trExps(env, args))                            CL.mkApply(N.mkVecfn(n,orig), trExps(env, args))
# Line 578  Line 585 
585              (env, stms)              (env, stms)
586            end            end
587    
588        (*All Types in the program  *)
589        fun trAllTypes e=let
590    
591            val ClTyps=List.map trType e
592            fun prnt([],rest)=rest
593              | prnt(CL.T_Named(str)::es, rest)=prnt(es, rest@[str])
594              | prnt (e1::es, rest)= prnt(es,rest)
595            val str=prnt(ClTyps,[])
596            val _=print(String.concat["\n \t\t---- Tree-To-C Types \n",
597                    String.concatWith"," str])
598            in
599                ClTyps
600            end
601         fun trAllOpr e=let
602            val ClOprs=List.map Opr.handleOpr e
603            fun prnt([],rest)=rest
604              | prnt (e1::es, rest)= prnt(es,rest@[CL.fnCToString e1])
605            val str=prnt(ClOprs,[])
606            val _=print(String.concat["\n \t\t---- Tree-To-C Oprs \n",
607                      String.concat str])
608            in
609                ClOprs
610            end
611      val trBlock = trBlk      val trBlock = trBlk
612    
613    end    end

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

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