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 3896, Sun May 22 18:24:49 2016 UTC revision 3900, Mon May 23 15:20:24 2016 UTC
# Line 13  Line 13 
13    
14      val trType : CodeGenEnv.t * TreeTypes.t -> CLang.ty      val trType : CodeGenEnv.t * TreeTypes.t -> CLang.ty
15    
     val trAPIType : CodeGenEnv.t * APITypes.t -> CLang.ty  
   
16      val trBlock : CodeGenEnv.t * TreeIR.block -> CLang.stm      val trBlock : CodeGenEnv.t * TreeIR.block -> CLang.stm
17    
18      val trExp : CodeGenEnv.t * TreeIR.exp -> CLang.exp      val trExp : CodeGenEnv.t * TreeIR.exp -> CLang.exp
# Line 26  Line 24 
24    
25      val trAssign : CodeGenEnv.t * CLang.exp * TreeIR.exp -> CLang.stm list      val trAssign : CodeGenEnv.t * CLang.exp * TreeIR.exp -> CLang.stm list
26    
27      (* generate code to register an error message (require that a world pointer "wrld" is in scope) *)
28        val errorMsgAdd : CLang.exp -> CLang.stm
29    
30    end = struct    end = struct
31    
32      structure CL = CLang      structure CL = CLang
# Line 52  Line 53 
53              | (Ty.StrandTy name) => CL.T_Named("strand_" ^ Atom.toString name)              | (Ty.StrandTy name) => CL.T_Named("strand_" ^ Atom.toString name)
54            (* end case *))            (* end case *))
55    
     fun trAPIType (env, ty) = (case ty  
            of APITypes.IntTy => Env.intTy env  
             | APITypes.BoolTy => Env.boolTy env  
             | APITypes.TensorTy[] => Env.realTy env  
             | APITypes.TensorTy dd => CL.T_Array(Env.realTy env, SOME(List.foldl Int.* 1 dd))  
             | APITypes.StringTy => CL.charPtr (* const?? *)  
             | APITypes.ImageTy(dim, _) => CL.T_Ptr(CL.T_Named "nrrd")  
             | APITypes.SeqTy(ty, NONE) => CL.T_Ptr(CL.T_Named "nrrd")  
             | APITypes.SeqTy(ty, SOME n) => CL.T_Array(trAPIType(env, ty), SOME n)  
           (* end case *))  
   
56    (* translate a local variable that occurs in an l-value context *)    (* translate a local variable that occurs in an l-value context *)
57      fun lvalueVar (env, x) = CL.mkVar(Env.lookup(env, x))      fun lvalueVar (env, x) = CL.mkVar(Env.lookup(env, x))
58    (* translate a variable that occurs in an r-value context *)    (* translate a variable that occurs in an r-value context *)
# Line 331  Line 321 
321                        val stm = (case ty                        val stm = (case ty
322                               of APITypes.SeqTy(ty, NONE) =>                               of APITypes.SeqTy(ty, NONE) =>
323                                    GenLoadNrrd.loadSeqFromFile (lvalueVar (env, lhs), ty, CL.mkStr nrrd)                                    GenLoadNrrd.loadSeqFromFile (lvalueVar (env, lhs), ty, CL.mkStr nrrd)
324                                | APITypes.ImageTy(dim, shape) =>                                | APITypes.ImageTy _ =>
325                                    GenLoadNrrd.loadImage (lvalueVar (env, lhs), dim, CL.mkStr nrrd)                                    GenLoadNrrd.loadImage (lvalueVar (env, lhs), CL.mkStr nrrd)
326                                | _ => raise Fail(concat[                                | _ => raise Fail(concat[
327                                      "bogus type ", APITypes.toString ty, " for LoadNrrd"                                      "bogus type ", APITypes.toString ty, " for LoadNrrd"
328                                    ])                                    ])
# Line 373  Line 363 
363              CL.mkBlock (dcls @ trStms (env, body))              CL.mkBlock (dcls @ trStms (env, body))
364            end            end
365    
366        fun errorMsgAdd msg =
367              CL.mkCall("biffMsgAdd", [CL.mkIndirect(CL.mkVar "wrld", "_errors"), msg])
368    
369    end    end

Legend:
Removed from v.3896  
changed lines
  Added in v.3900

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