Changes between Version 55 and Version 56 of IR
- Timestamp:
- 11/25/15 10:46:29 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IR
v55 v56 220 220 * Wailtall: `\waitall e` where `e` is an array of process references (`Proc`) to be waited for; 221 221 * Allocation 222 * `\allocate e, h, t,e0;`, where222 * `\allocate e, h, t, e0;`, where 223 223 * `h` as type `Heap` 224 224 * `t` has type `Dytype` 225 * `e ` has integer type.226 * Allocates `e ` objects of type `t` on heap `h`225 * `e0` has integer type. 226 * Allocates `e0` objects of type `t` on heap `h` 227 227 * To translate the C `malloc` you first need to figure out the type of the elements being malloced. If the argument to malloc is `n`, then you first need to insert an assertion `\eq(\mod(n, \sizeof_type(t)), 0)`, and then `\allocate(h,t,\div(n, \sizeof_t(t)))`. 228 * Free: `\free (p);`228 * Free: `\free p;` 229 229 * Expression statement: `e;`, where `e` is side effect free except that it might contain error/exception (e.g., array index out of bound, division by zero); 230 230 * Noop: `;` … … 233 233 * Atomic_enter: `\atomic_enter;` 234 234 * Atomic_exit: `\atomic_exit;` 235 * Parfor_spawn: `\par for_spawn(int i,j,..: dom) f(i,j,...);` ** Maybe `\parspawn` ? **235 * Parfor_spawn: `\parspawn(int i,j,..: dom) f(i,j,...);` 236 236 * Domain iterator: `\next(dom,i,j,…)` updates `i`, `j`, ... to be the value of the inter tuple in `dom` after `(i, j, ...)` 237 237 * For_dom_enter (for domains): `\for_enter(i,j,k..: dom);`
