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 4933 - (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 : jhr 4833 val optionsPtrTy : CLang.ty
24 : jhr 3900
25 : jhr 3906 (* standard names for accessing globals and state variables *)
26 : jhr 4933 val workerVar : CLang.var
27 :     val workerParam : CLang.param
28 : jhr 3927 val worldVar : CLang.var
29 : jhr 3952 val worldParam : CLang.param
30 : jhr 3908 val globalsVar : CLang.var
31 :     val globalsParam : CLang.param
32 :     val selfVar : CLang.var
33 : jhr 4500 val selfLocalVar : CLang.var
34 : jhr 3908 val selfInVar : CLang.var
35 :     val selfOutVar : CLang.var
36 : jhr 3906
37 : jhr 4505 (* get the strand array struct *)
38 :     val strandArray : CodeGenEnv.t -> CLang.exp
39 :    
40 : jhr 4373 (* the strand type *)
41 :     val strandTyName : string -> string
42 :     val strandTy : string -> CLang.ty
43 : jhr 4469 val localTyName : string -> string (* name of sub-struct that holds local state *)
44 :     val sharedTyName : string -> string (* name of sub-struct that holds shared state *)
45 : jhr 4373
46 : jhr 3931 val inputsTyName : string
47 :     val inputsPtrTy : CLang.ty
48 :    
49 : jhr 4027 (* image type names *)
50 :     val imageTyName : int -> string
51 :     val qImageTyName : int -> string
52 :    
53 : jhr 3918 (* wrapper struct for tensor types (to enable overload resolution) *)
54 : jhr 4026 val tensorStruct : int list -> string
55 :     val tensorTy : int list -> CLang.ty
56 :     val tensorRefStruct : int list -> string
57 :     val tensorRefTy : int list -> CLang.ty
58 : jhr 3918
59 : jhr 3919 (* vector related names *)
60 :     val vecTyName : int -> string
61 :     val vecTy : int -> CLang.ty
62 : jhr 4068 val vscale : int -> string
63 : jhr 3921 val vsum : int -> string
64 : jhr 4056 val vdot : int -> string
65 : jhr 4068 val vclamp : int -> string
66 :     val vlerp : int -> string
67 :     val vceiling : int -> string
68 :     val vfloor : int -> string
69 :     val vround : int -> string
70 :     val vtrunc : int -> string
71 :     val vtoi : int -> string
72 : jhr 3919 val vcons : int -> string
73 :     val vload : int -> string
74 : jhr 3931 val vpack : int -> string
75 : jhr 3919
76 : jhr 4151 (* inside test: args are dim and support *)
77 :     val inside : int * int -> string
78 :    
79 : jhr 3900 end = struct
80 :    
81 :     structure CL = CLang
82 :     structure Env = CodeGenEnv
83 :    
84 : jhr 3996 val diderotNS = "diderot::"
85 :    
86 : jhr 3900 (* the base type of the world struct *)
87 :     val worldBaseTyName = "world_base"
88 :    
89 : jhr 4933 (* the worker cache type *)
90 :     val workerTyName = "worker_cache"
91 :     val workerPtrTy = CL.T_Ptr(CL.T_Named workerTyName)
92 :    
93 : jhr 3900 (* the world type *)
94 :     val worldTyName = "world"
95 :     val worldPtrTy = CL.T_Ptr(CL.T_Named worldTyName)
96 :    
97 :     (* the global variables struct *)
98 :     val globalTyName = "globals"
99 :     val globalPtrTy = CL.T_Ptr(CL.T_Named globalTyName)
100 :    
101 :     (* the pointer to the command-line options struct *)
102 : jhr 4833 val optionsPtrTy = CL.T_Ptr(CL.T_Named "diderot::options")
103 : jhr 3900
104 : jhr 4933 val workerVar = "worker"
105 :     val workerParam = CL.PARAM([], workerPtrTy, workerVar)
106 : jhr 3927 val worldVar = "wrld"
107 : jhr 4933 val worldParam = CL.PARAM([], worldPtrTy, worldVar)
108 : jhr 3917 val globalsVar = "glob"
109 : jhr 3908 val globalsParam = CL.PARAM([], globalPtrTy, globalsVar)
110 :     val selfVar = "self"
111 : jhr 4500 val selfLocalVar = "selfLocal"
112 : jhr 3908 val selfInVar = "selfIn"
113 :     val selfOutVar = "selfOut"
114 : jhr 3906
115 : jhr 4505 fun strandArray env = CL.mkIndirect(CL.mkVar(Env.world env), "_strands")
116 :    
117 : jhr 4373 fun strandTyName s = s ^ "_strand"
118 :     fun strandTy s = CL.T_Named(strandTyName s)
119 : jhr 4469 fun localTyName s = s ^ "_local"
120 :     fun sharedTyName s = s ^ "_shared"
121 : jhr 4373
122 : jhr 3931 val inputsTyName = "cmd_line_inputs"
123 :     val inputsPtrTy = CL.T_Ptr(CL.T_Named inputsTyName)
124 :    
125 : jhr 4027 fun imageTyName d = String.concat["image", Int.toString d, "d"]
126 :     fun qImageTyName d = String.concat[diderotNS, "image", Int.toString d, "d"]
127 :    
128 : jhr 3918 fun tensorStruct shape = "tensor_" ^ String.concatWithMap "_" Int.toString shape
129 :     fun tensorTy shape = CL.T_Named(tensorStruct shape)
130 : jhr 4026 fun tensorRefStruct shape = "tensor_ref_" ^ String.concatWithMap "_" Int.toString shape
131 :     fun tensorRefTy shape = CL.T_Named(tensorRefStruct shape)
132 : jhr 3918
133 : jhr 4068 fun vName name w = name ^ Int.toString w
134 :     val vecTyName = vName "vec"
135 : jhr 3919 fun vecTy w = CL.T_Named(vecTyName w)
136 : jhr 4068 val vscale = vName "vscale"
137 :     val vsum = vName "vsum"
138 :     val vdot = vName "vdot"
139 :     val vclamp = vName "vclamp"
140 :     val vlerp = vName "vlerp"
141 :     val vceiling = vName "vceiling"
142 :     val vfloor = vName "vfloor"
143 :     val vround = vName "vround"
144 :     val vtrunc = vName "vtrunc"
145 :     val vtoi = vName "vtoi"
146 :     val vcons = vName "vcons"
147 :     val vload = vName "vload"
148 :     val vpack = vName "vpack"
149 : jhr 3919
150 : jhr 4151 fun inside (d, s) = String.concat["inside", Int.toString d, "Ds", Int.toString s]
151 :    
152 : jhr 3810 end

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