@@ -53,6 +53,7 @@ Datatype:
53
53
| ExtCall funname varname varname varname varname
54
54
| Raise ('a word)
55
55
| Return ('a exp)
56
+ | ShMem memop varname ('a exp)
56
57
| Tick;
57
58
End
58
59
@@ -150,6 +151,7 @@ Definition assigned_free_vars_def:
150
151
(assigned_free_vars (Call (SOME ((SOME rt), rp, (SOME (_, p)))) e es) =
151
152
rt :: assigned_free_vars rp ++ assigned_free_vars p) ∧
152
153
(assigned_free_vars (Call (SOME ((SOME rt), rp, NONE )) e es) = rt :: assigned_free_vars rp) ∧
154
+ (assigned_free_vars (ShMem op r ad) = [r]) ∧
153
155
(assigned_free_vars _ = [])
154
156
End
155
157
@@ -166,6 +168,7 @@ Definition assigned_vars_def:
166
168
(assigned_vars (Call (SOME ((SOME rt), rp, (SOME (_, p)))) e es) =
167
169
rt :: assigned_vars rp ++ assigned_vars p) ∧
168
170
(assigned_vars (Call (SOME ((SOME rt), rp, NONE )) e es) = rt :: assigned_vars rp) ∧
171
+ (assigned_vars (ShMem op r ad) = [r]) ∧
169
172
(assigned_vars _ = [])
170
173
End
171
174
@@ -229,6 +232,7 @@ Definition acc_vars_def:
229
232
(acc_vars (Call (SOME ((SOME rv), rp, (SOME (w, ep)))) trgt args) l =
230
233
let nl = list_insert (rv :: FLAT (MAP var_cexp (trgt::args))) l in
231
234
acc_vars rp (acc_vars ep nl)) ∧
235
+ (acc_vars (ShMem op r e) l = list_insert (r::var_cexp e) l) ∧
232
236
(acc_vars _ l = l)
233
237
End
234
238
0 commit comments