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

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/cxx-util/tree-to-cxx.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/cxx-util/tree-to-cxx.sml

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

revision 3982, Thu Jun 16 15:16:17 2016 UTC revision 3988, Fri Jun 17 17:26:51 2016 UTC
# Line 41  Line 41 
41      structure Env = CodeGenEnv      structure Env = CodeGenEnv
42      structure RN = CxxNames      structure RN = CxxNames
43    
44      fun trType (env, ty) = (case ty      val trType = TypeToCxx.trType
45             of Ty.BoolTy => CL.boolTy      val dynseqTy = TypeToCxx.dynseqTy
             | Ty.StringTy => CL.T_Named "std::string"  
             | Ty.IntTy => Env.intTy env  
             | (Ty.VecTy(1, 1)) => Env.realTy env  
             | (Ty.VecTy(d, _)) => CL.T_Named("vec" ^ Int.toString d)  
             | (Ty.TensorTy dd) => CL.T_Array(Env.realTy env, SOME(List.foldl Int.* 1 dd))  
             | (Ty.TensorRefTy _) => CL.constPtrTy(Env.realTy env)  
             | (Ty.TupleTy tys) => raise Fail "FIXME: TupleTy"  
             | (Ty.SeqTy(ty, NONE)) => dynseqTy (env, ty)  
             | (Ty.SeqTy(ty, SOME n)) => CL.T_Array(trType(env, ty), SOME n)  
             | (Ty.ImageTy info) =>  
                 CL.T_Template(  
                   concat["diderot::image", Int.toString(ImageInfo.dim info), "d"],  
                   [Env.realTy env])  
             | (Ty.StrandTy name) => CL.T_Named("strand_" ^ Atom.toString name)  
           (* end case *))  
   
   (* dynamic sequence of the specified element type *)  
     and dynseqTy (env, ty) = CL.T_Template("diderot::dynseq", [trType(env, ty)])  
46    
47    (* translate a local variable that occurs in an l-value context *)    (* translate a local variable that occurs in an l-value context *)
48      fun lvalueVar (env, x) = CL.mkVar(Env.lookup(env, x))      fun lvalueVar (env, x) = CL.mkVar(Env.lookup(env, x))
# Line 361  Line 343 
343                    | IR.S_LoadNrrd(lhs, ty, nrrd) => let                    | IR.S_LoadNrrd(lhs, ty, nrrd) => let
344                        val stm = (case ty                        val stm = (case ty
345                               of APITypes.SeqTy(ty, NONE) =>                               of APITypes.SeqTy(ty, NONE) =>
346                                    GenLoadNrrd.loadSeqFromFile (lvalueVar (env, lhs), ty, CL.mkStr nrrd)                                    GenLoadNrrd.loadSeqFromFile (
347                                        env, lvalueVar (env, lhs), ty, CL.mkStr nrrd)
348                                | APITypes.ImageTy _ =>                                | APITypes.ImageTy _ =>
349                                    GenLoadNrrd.loadImage (lvalueVar (env, lhs), CL.mkStr nrrd)                                    GenLoadNrrd.loadImage (lvalueVar (env, lhs), CL.mkStr nrrd)
350                                | _ => raise Fail(concat[                                | _ => raise Fail(concat[

Legend:
Removed from v.3982  
changed lines
  Added in v.3988

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