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

SCM Repository

[diderot] Annotation of /branches/vis15/src/compiler/cxx-util/cxx-names.sml
ViewVC logotype

Annotation of /branches/vis15/src/compiler/cxx-util/cxx-names.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4071 - (view) (download)

1 : jhr 3906 (* cxx-names.sml
2 : jhr 3810 *
3 :     * This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu)
4 :     *
5 :     * COPYRIGHT (c) 2016 The University of Chicago
6 :     * All rights reserved.
7 :     *)
8 :    
9 : jhr 3906 structure CxxNames : sig
10 : jhr 3810
11 : jhr 3900 (* the base type of the world struct *)
12 :     val worldBaseTyName : string
13 : jhr 3810
14 : jhr 3900 (* the world type *)
15 :     val worldTyName : string
16 :     val worldPtrTy : CLang.ty
17 :    
18 :     (* the global variables struct *)
19 :     val globalTyName : string
20 :     val globalPtrTy : CLang.ty
21 :    
22 :     (* the pointer to the command-line options struct *)
23 :     val optionsPtrTy : CodeGenEnv.t -> CLang.ty
24 :    
25 : jhr 3906 (* standard names for accessing globals and state variables *)
26 : jhr 3927 val worldVar : CLang.var
27 : jhr 3952 val worldParam : CLang.param
28 : jhr 3908 val globalsVar : CLang.var
29 :     val globalsParam : CLang.param
30 :     val selfVar : CLang.var
31 :     val selfInVar : CLang.var
32 :     val selfOutVar : CLang.var
33 : jhr 3906
34 : jhr 3931 val inputsTyName : string
35 :     val inputsPtrTy : CLang.ty
36 :    
37 : jhr 4027 (* image type names *)
38 :     val imageTyName : int -> string
39 :     val qImageTyName : int -> string
40 :    
41 : jhr 3918 (* wrapper struct for tensor types (to enable overload resolution) *)
42 : jhr 4026 val tensorStruct : int list -> string
43 :     val tensorTy : int list -> CLang.ty
44 :     val tensorRefStruct : int list -> string
45 :     val tensorRefTy : int list -> CLang.ty
46 : jhr 3918
47 : jhr 3919 (* vector related names *)
48 :     val vecTyName : int -> string
49 :     val vecTy : int -> CLang.ty
50 : jhr 4068 val vscale : int -> string
51 : jhr 3921 val vsum : int -> string
52 : jhr 4056 val vdot : int -> string
53 : jhr 4068 val vclamp : int -> string
54 :     val vlerp : int -> string
55 :     val vceiling : int -> string
56 :     val vfloor : int -> string
57 :     val vround : int -> string
58 :     val vtrunc : int -> string
59 :     val vtoi : int -> string
60 : jhr 3919 val vcons : int -> string
61 :     val vload : int -> string
62 : jhr 3931 val vpack : int -> string
63 : jhr 3919
64 : jhr 3900 end = struct
65 :    
66 :     structure CL = CLang
67 :     structure Env = CodeGenEnv
68 :    
69 : jhr 3996 val diderotNS = "diderot::"
70 :    
71 : jhr 3900 (* the base type of the world struct *)
72 :     val worldBaseTyName = "world_base"
73 :    
74 :     (* the world type *)
75 :     val worldTyName = "world"
76 :     val worldPtrTy = CL.T_Ptr(CL.T_Named worldTyName)
77 :    
78 :     (* the global variables struct *)
79 :     val globalTyName = "globals"
80 :     val globalPtrTy = CL.T_Ptr(CL.T_Named globalTyName)
81 :    
82 :     (* the pointer to the command-line options struct *)
83 :     fun optionsPtrTy env =
84 : jhr 4032 CL.T_Ptr(CL.T_Template("diderot::options", [Env.realTy env, Env.intTy env]))
85 : jhr 3900
86 : jhr 3927 val worldVar = "wrld"
87 : jhr 3952 val worldParam = CL.PARAM([], worldPtrTy, "wrld")
88 : jhr 3917 val globalsVar = "glob"
89 : jhr 3908 val globalsParam = CL.PARAM([], globalPtrTy, globalsVar)
90 :     val selfVar = "self"
91 :     val selfInVar = "selfIn"
92 :     val selfOutVar = "selfOut"
93 : jhr 3906
94 : jhr 3931 val inputsTyName = "cmd_line_inputs"
95 :     val inputsPtrTy = CL.T_Ptr(CL.T_Named inputsTyName)
96 :    
97 : jhr 4027 fun imageTyName d = String.concat["image", Int.toString d, "d"]
98 :     fun qImageTyName d = String.concat[diderotNS, "image", Int.toString d, "d"]
99 :    
100 : jhr 3918 fun tensorStruct shape = "tensor_" ^ String.concatWithMap "_" Int.toString shape
101 :     fun tensorTy shape = CL.T_Named(tensorStruct shape)
102 : jhr 4026 fun tensorRefStruct shape = "tensor_ref_" ^ String.concatWithMap "_" Int.toString shape
103 :     fun tensorRefTy shape = CL.T_Named(tensorRefStruct shape)
104 : jhr 3918
105 : jhr 4068 fun vName name w = name ^ Int.toString w
106 :     val vecTyName = vName "vec"
107 : jhr 3919 fun vecTy w = CL.T_Named(vecTyName w)
108 : jhr 4068 val vscale = vName "vscale"
109 :     val vsum = vName "vsum"
110 :     val vdot = vName "vdot"
111 :     val vclamp = vName "vclamp"
112 :     val vlerp = vName "vlerp"
113 :     val vceiling = vName "vceiling"
114 :     val vfloor = vName "vfloor"
115 :     val vround = vName "vround"
116 :     val vtrunc = vName "vtrunc"
117 :     val vtoi = vName "vtoi"
118 :     val vcons = vName "vcons"
119 :     val vload = vName "vload"
120 :     val vpack = vName "vpack"
121 : jhr 3919
122 : jhr 3810 end

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