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

SCM Repository

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

Diff of /branches/vis12-cl/src/compiler/c-util/tree-to-c.sml

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

revision 2048, Sun Oct 21 17:43:32 2012 UTC revision 2051, Mon Oct 22 14:14:10 2012 UTC
# Line 23  Line 23 
23    
24      type env = CLang.typed_var TreeIL.Var.Map.map      type env = CLang.typed_var TreeIL.Var.Map.map
25    
26        val empty : env
27    
28      val trType : TreeIL.Ty.ty -> CLang.ty      val trType : TreeIL.Ty.ty -> CLang.ty
29    
30      val trBlock : env * TreeIL.block -> CLang.stm      val trBlock : env * TreeIL.block -> CLang.stm
# Line 33  Line 35 
35    
36      val trExp : env * TreeIL.exp -> CLang.exp      val trExp : env * TreeIL.exp -> CLang.exp
37    
38        val trAssign : env * CLang.exp * TreeIL.exp -> CLang.stm list
39    
40    (* vector indexing support.  Arguments are: vector, arity, index *)    (* vector indexing support.  Arguments are: vector, arity, index *)
41      val ivecIndex : CLang.exp * int * int -> CLang.exp      val ivecIndex : CLang.exp * int * int -> CLang.exp
42      val vecIndex : CLang.exp * int * int -> CLang.exp      val vecIndex : CLang.exp * int * int -> CLang.exp
# Line 49  Line 53 
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
55    
56        val empty = TreeIL.Var.Map.empty
57    
58      fun lookup (env, x) = (case V.Map.find (env, x)      fun lookup (env, x) = (case V.Map.find (env, x)
59             of SOME(V(_, x')) => x'             of SOME(V(_, x')) => x'
60              | NONE => raise Fail(concat["lookup(_, ", V.name x, ")"])              | NONE => raise Fail(concat["lookup(_, ", V.name x, ")"])
# Line 557  Line 563 
563                    | IL.S_Save([x], exp) => trAssign (env, VarToC.lvalueStateVar x, exp)                    | IL.S_Save([x], exp) => trAssign (env, VarToC.lvalueStateVar x, exp)
564                    | IL.S_Save(xs, exp) =>                    | IL.S_Save(xs, exp) =>
565                        trMultiAssign (env, List.map VarToC.lvalueStateVar xs, exp)                        trMultiAssign (env, List.map VarToC.lvalueStateVar xs, exp)
 (* DEPRECATED  
                   | IL.S_LoadImage(lhs, dim, name) => checkSts (fn sts => let  
                       val lhs = VarToC.lvalueVar (env, lhs)  
                       val name = trExp(env, name)  
                       val imgTy = CL.T_Named(N.imageTy dim)  
                       val loadFn = N.loadImage dim  
                       in [  
                         CL.mkDecl(  
                           CL.T_Named N.statusTy, sts,  
                           SOME(CL.I_Exp(CL.E_Apply(loadFn, [  
                               CL.mkCast(CL.T_Ptr(CL.T_Named "WorldPrefix_t"), CL.mkVar "wrld"),  
                               name, addrOf lhs  
                             ]))))  
                       ] end)  
 *)  
566                    | IL.S_LoadNrrd(lhs, Ty.DynSeqTy ty, nrrd) => let                    | IL.S_LoadNrrd(lhs, Ty.DynSeqTy ty, nrrd) => let
567                        val lhs = VarToC.lvalueVar (env, lhs)                        val lhs = VarToC.lvalueVar (env, lhs)
568                        val (nDims, dimInit, dimExp, elemTy) = (case ty                        val (nDims, dimInit, dimExp, elemTy) = (case ty
# Line 605  Line 596 
596                                CL.mkReturn(SOME(CL.mkVar "true")))                                CL.mkReturn(SOME(CL.mkVar "true")))
597                            ]                            ]
598                        )] end                        )] end
599                    | IL.S_LoadNrrd(lhs, Ty.ImageTy info, nrrd) => checkSts (fn sts => let                    | IL.S_LoadNrrd(lhs, Ty.ImageTy info, nrrd) =>
600                        val lhs = VarToC.lvalueVar (env, lhs)                        [GenLoadNrrd.loadImage (VarToC.lvalueVar (env, lhs), info, CL.E_Str nrrd)]
                       val name = CL.E_Str nrrd  
                       val dim = ImageInfo.dim info  
                       val imgTy = CL.T_Named(N.imageTy dim)  
                       val loadFn = N.loadImage dim  
                       in [  
                         CL.mkDecl(  
                           CL.T_Named N.statusTy, sts,  
                           SOME(CL.I_Exp(CL.E_Apply(loadFn, [  
                               CL.mkCast(CL.T_Ptr(CL.T_Named "WorldPrefix_t"), CL.mkVar "wrld"),  
                               name, addrOf lhs  
                             ]))))  
                       ] end)  
601                    | IL.S_Input(_, _, _, NONE) => []                    | IL.S_Input(_, _, _, NONE) => []
602                    | IL.S_Input(lhs, name, _, SOME dflt) => [                    | IL.S_Input(lhs, name, _, SOME dflt) => [
603                          CL.mkAssign(VarToC.lvalueVar(env, lhs), trExp(env, dflt))                          CL.mkAssign(VarToC.lvalueVar(env, lhs), trExp(env, dflt))

Legend:
Removed from v.2048  
changed lines
  Added in v.2051

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