SCM Repository
Diff of /trunk/src/compiler/simplify/lift.sml
Parent Directory
|
Revision Log
|
Patch
revision 245, Fri Aug 6 15:31:55 2010 UTC | revision 246, Fri Aug 6 15:32:26 2010 UTC | |
---|---|---|
# | Line 5 | Line 5 |
5 | * | * |
6 | * Lift field operations to global scope and split global initialization to | * Lift field operations to global scope and split global initialization to |
7 | * pre and post image loading phases. | * pre and post image loading phases. |
8 | * | |
9 | * NOTE: this process can be streamlined as follows: | |
10 | * 1) identify the static variables | |
11 | * 2) evaluate eagerly, with the proviso that if the lhs is not static, then | |
12 | * only evaluate if the rhs is static and the operation is supported | |
13 | * 3) reduce code | |
14 | * This evaluation process could be extended to the body of the actors too. | |
15 | *) | *) |
16 | ||
17 | structure Lift : sig | structure Lift : sig |
# | Line 18 | Line 25 |
25 | structure VSet = Var.Set | structure VSet = Var.Set |
26 | structure VMap = Var.Map | structure VMap = Var.Map |
27 | ||
(* | ||
BV.op_at | ||
BV.op_D | ||
BV.fn_convolve | ||
BV.fn_load | ||
*) | ||
28 | (* the kinds of things a variable in Simple AST can be bound to *) | (* the kinds of things a variable in Simple AST can be bound to *) |
29 | datatype var_binding | datatype var_binding |
30 | = RHS of S.exp | = RHS of S.exp |
# | Line 108 | Line 108 |
108 | (* end case *)) | (* end case *)) |
109 | val staticBlock = doBlock block | val staticBlock = doBlock block |
110 | in | in |
111 | print "**** static variables: "; | Log.msg "**** static variables: "; |
112 | VSet.app (fn x => print(" "^Var.uniqueNameOf x)) statics; | VSet.app (fn x => Log.msg(" "^Var.uniqueNameOf x)) statics; |
113 | print "\n"; | Log.msg "\n"; |
114 | staticBlock | staticBlock |
115 | end | end |
116 |
|
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |