Changes between Version 62 and Version 63 of IR


Ignore:
Timestamp:
11/25/15 21:07:13 (10 years ago)
Author:
siegel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IR

    v62 v63  
    175175 * `\array(T, <e0, ..., en-1>)`: value of type `Array[T, n]`, a literal array
    176176 * `\array(T, n, e)`: value of type `Array[T,n]` in which each of the n elements is `e`
    177  * `\asub(e1, e2)` : array subscript expression.  Note that `e1` must have array type, not pointer type. (This is different from C.)   If `e1` has pointer type, use `\deref(\padd(e1, e2))` instead. 
    178  * `\aslice(a, dom)`, where `a` is an expression of array type and `dom` is an expression of `Domain` type.   The dimension of the array must match the dimension of the domain.   This represents all memory units which are the cells in the array indexed by a tuple in `dom`.
    179  * `\bit_and(e1, e2)`, `\bit_or(e1, e2)`, `\bit_xor(e1, e2)`, `\bit_comp(e1)` : bit-wise operations: arguments are arrays of booleans
     177 * `\asub(e1, e2)` : array subscript expression.  Note that `e1` must have array type, not pointer type. (This is different from C.)   If `e1` has pointer type, use `\deref(\padd(e1, e2))` instead.
     178 * `\seq_add(a,e)` : array obtained by adding element e to the end of the array.  Original array a is not modified.
     179 * `\seq_append(a1,a2)` : array obtained by concatenating two arrays.  Original array not modified.
     180 * `\seq_remove(a,i)` : array obtained by removing element at position i from a.  Original array a not modified.  **WHAT HAPPENS TO REFERENCES INTO A**
     181 * `\bit_and(e1, e2)`, `\bit_or(e1, e2)`, `\bit_xor(e1, e2)`, `\bit_comp(e1)` : bit-wise operations: arguments are arrays of booleans of equal length.
    180182* Tuples
    181183 * `\tuple(S, <e0, e1, ...>)` : value of tuple type `S` (tuple literal)
     
    188190 * `\psub(e1,e2)`: pointer subtraction
    189191 * `\region(ptr)`, where `ptr` is an expression with a pointer type.  This represents the set of all memory units reachable from `ptr`, including the memory unit pointed to by `ptr` itself.
    190  * `\mem_union(mem1, mem2)`, where `mem1` and `mem2` are expressions of type `Memory`.  This is the union of the two memory sets.
    191  * `\mem_intersect(mem1, mem1)` : set intersection
    192  * `\mem_comp(mem1)` : set complement (everything not in `mem1`)
     192 * `\munion(mem1, mem2)`, where `mem1` and `mem2` are expressions of type `Memory`.  This is the union of the two memory sets.
     193 * `\misect(mem1, mem1)` : set intersection
     194 * `\mcomp(mem1)` : set complement (everything not in `mem1`)
     195 * `\aslice(a, dom)`, where `a` is an expression of array type and `dom` is an expression of `Domain` type.   The dimension of the array must match the dimension of the domain.   This represents all memory units which are the cells in the array indexed by a tuple in `dom`.
    193196* Scopes and Processes
    194197 * `\root`, `\here` : values of type `Scope`