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

SCM Repository

[diderot] Annotation of /branches/pure-cfg/src/compiler/codegen/tree-il.sml
ViewVC logotype

Annotation of /branches/pure-cfg/src/compiler/codegen/tree-il.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 529 - (view) (download)

1 : jhr 529 (* tree-il.sml
2 :     *
3 :     * COPYRIGHT (c) 2011 The Diderot Project (http://diderot-language.cs.uchicago.edu)
4 :     * All rights reserved.
5 :     *
6 :     * This representation restores the block structure and nested expression syntax
7 :     * of the source language.
8 :     *)
9 :    
10 :     structure TreeIL =
11 :     struct
12 :    
13 :     structure Op = LowOps
14 :    
15 :     datatype program = Program of {
16 :     globals : var list,
17 :     globalInit : stm,
18 :     strands : strand list
19 :     (* initialization *)
20 :     }
21 :    
22 :     and strand = Strand of {
23 :     name : Atom.atom,
24 :     params : var list,
25 :     state : var list,
26 :     stateInit : stm,
27 :     methods : method list
28 :     }
29 :    
30 :     and method = Method of {
31 :     name : Atom.atom,
32 :     body : stm (* method body *)
33 :     }
34 :    
35 :     and block = Block of {
36 :     locals : var list,
37 :     body : stm list
38 :     }
39 :    
40 :     and stm
41 :     = S_Comment of string list
42 :     | S_Assign of var * exp
43 :     | S_IfThen of var * block
44 :     | S_IfThenElse of var * block * block
45 :     | S_Die
46 :     | S_Stabilize
47 :    
48 :     and exp
49 :     = E_Var of var
50 :     | E_Lit of Literal.literal
51 :     | E_Op of Op.rator * exp list
52 :     | E_Cons of exp list (* tensor-value construction *)
53 :    
54 :     and var = V of {
55 :     name : string, (* name (should be unique) *)
56 :     id : Stamp.stamp, (* unique ID *)
57 :     kind : var_kind,
58 :     ty : Ty.ty (* type *)
59 :     }
60 :    
61 :     and kind
62 :     = VK_Global (* global variable *)
63 :     | VK_State of strand (* strand state variable *)
64 :     | VK_Local (* includes strand parameters *)
65 :    
66 :     end

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