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

SCM Repository

[diderot] Annotation of /branches/vis15/src/compiler/tree-ir/tree-global-var.sml
ViewVC logotype

Annotation of /branches/vis15/src/compiler/tree-ir/tree-global-var.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3896 - (view) (download)

1 : jhr 3832 (* tree-global-var.sml
2 :     *
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 :     structure TreeGlobalVar : sig
10 :    
11 :     type t = TreeIR.global_var
12 :    
13 :     val new : {
14 :     name : string, (* the variable name *)
15 :     ty : TreeTypes.t, (* *)
16 :     input : bool, (* true for inputs *)
17 :     output : bool, (* true for global outputs *)
18 :     varying : bool, (* true if this variable is modified in the global update
19 :     * phase during execution
20 :     *)
21 :     apiTy : APITypes.t option (* specifies external type for inputs and outputs *)
22 :     } -> t
23 :    
24 :     val name : t -> string
25 :    
26 :     val ty : t -> TreeTypes.t
27 :    
28 : jhr 3896 val apiTy : t -> APITypes.t
29 :    
30 : jhr 3832 val isInput : t -> bool
31 :     val isOutput : t -> bool
32 :     val isVarying : t -> bool
33 :    
34 :     val toString : t -> string
35 :    
36 :     end = struct
37 :    
38 :     datatype t = datatype TreeIR.global_var
39 :    
40 :     fun new {name, ty, input, output, varying, apiTy} = GV{
41 :     name = "gv_" ^ name,
42 :     ty = ty,
43 :     xty = apiTy,
44 :     input = input,
45 :     output = output,
46 :     varying = varying
47 :     }
48 :    
49 :     fun name (GV{name, ...}) = name
50 :    
51 :     fun ty (GV{ty, ...}) = ty
52 :    
53 : jhr 3896 fun apiTy (GV{xty = SOME ty, ...}) = ty
54 :     | apiTy (GV{name, ...}) = raise Fail("missing API Type for global " ^ name)
55 :    
56 : jhr 3832 fun isInput (GV{input, ...}) = input
57 :     fun isOutput (GV{output, ...}) = output
58 :     fun isVarying (GV{varying, ...}) = varying
59 :    
60 :     fun toString (GV{name, ...}) = "globals." ^ name
61 :    
62 :     end

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