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 4317 - (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 : jhr 4317 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 : jhr 3832
24 :     val name : t -> string
25 : jhr 4317 val qname : t -> string (* qualified name "gv_" ^ name *)
26 : jhr 3832
27 : jhr 3922 val same : t * t -> bool
28 :    
29 : jhr 3832 val ty : t -> TreeTypes.t
30 :    
31 : jhr 3896 val apiTy : t -> APITypes.t
32 :    
33 : jhr 3832 val isInput : t -> bool
34 :     val isOutput : t -> bool
35 :     val isVarying : t -> bool
36 :    
37 :     val toString : t -> string
38 :    
39 :     end = struct
40 :    
41 :     datatype t = datatype TreeIR.global_var
42 :    
43 :     fun new {name, ty, input, output, varying, apiTy} = GV{
44 : jhr 4317 name = name,
45 :     ty = ty,
46 :     xty = apiTy,
47 :     input = input,
48 :     output = output,
49 :     varying = varying
50 :     }
51 : jhr 3832
52 : jhr 3922 fun same (GV{name=a, ...}, GV{name=b, ...}) = (a = b)
53 :    
54 : jhr 3832 fun name (GV{name, ...}) = name
55 : jhr 3924 fun qname (GV{name, ...}) = "gv_" ^ name
56 : jhr 3832
57 :     fun ty (GV{ty, ...}) = ty
58 :    
59 : jhr 3896 fun apiTy (GV{xty = SOME ty, ...}) = ty
60 :     | apiTy (GV{name, ...}) = raise Fail("missing API Type for global " ^ name)
61 :    
62 : jhr 3832 fun isInput (GV{input, ...}) = input
63 :     fun isOutput (GV{output, ...}) = output
64 :     fun isVarying (GV{varying, ...}) = varying
65 :    
66 :     fun toString (GV{name, ...}) = "globals." ^ name
67 :    
68 :     end

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