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 531 - (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 : jhr 531 structure Ty = LowILTypes
15 : jhr 529
16 :     datatype program = Program of {
17 :     globals : var list,
18 : jhr 531 globalInit : block,
19 : jhr 529 strands : strand list
20 :     (* initialization *)
21 :     }
22 :    
23 :     and strand = Strand of {
24 :     name : Atom.atom,
25 :     params : var list,
26 :     state : var list,
27 : jhr 531 stateInit : block,
28 : jhr 529 methods : method list
29 :     }
30 :    
31 :     and method = Method of {
32 :     name : Atom.atom,
33 : jhr 531 body : block (* method body *)
34 : jhr 529 }
35 :    
36 :     and block = Block of {
37 :     locals : var list,
38 :     body : stm list
39 :     }
40 :    
41 :     and stm
42 :     = S_Comment of string list
43 :     | S_Assign of var * exp
44 : jhr 531 | S_IfThen of exp * block
45 :     | S_IfThenElse of exp * block * block
46 : jhr 529 | S_Die
47 :     | S_Stabilize
48 :    
49 :     and exp
50 :     = E_Var of var
51 :     | E_Lit of Literal.literal
52 :     | E_Op of Op.rator * exp list
53 :     | E_Cons of exp list (* tensor-value construction *)
54 :    
55 :     and var = V of {
56 :     name : string, (* name (should be unique) *)
57 :     id : Stamp.stamp, (* unique ID *)
58 :     kind : var_kind,
59 :     ty : Ty.ty (* type *)
60 :     }
61 :    
62 : jhr 531 and var_kind
63 : jhr 529 = VK_Global (* global variable *)
64 :     | VK_State of strand (* strand state variable *)
65 :     | VK_Local (* includes strand parameters *)
66 :    
67 :     end

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