sail::ArrayRefWrite Class Reference
v1[index].(f1...fk) = s. Field selectors are optional and appear only if ALLOW_OFFSETS is enabled.
More...
#include <ArrayRefWrite.h>
List of all members.
Detailed Description
v1[index].(f1...fk) = s. Field selectors are optional and appear only if ALLOW_OFFSETS is enabled.
Here, v1 is always a non-pointer array. The sequence of field selectors is represented by the ivar called offset and the "name" can be used for pretty printing the fields. The offset in this instruction is optional; if ALLOW_OFFSETS in Function.cpp is set to false, SAIL generates only ArrayWrite instructions with no field selectors.
Member Function Documentation
| string sail::ArrayRefWrite::get_field_name |
( |
|
) |
|
- Returns:
- string representing the field selectors that can be used for pretty-printing the offset
| Symbol * sail::ArrayRefWrite::get_index |
( |
|
) |
|
- Returns:
- the index of the array
| Variable * sail::ArrayRefWrite::get_lhs |
( |
|
) |
|
- Returns:
- the array that is written to
| int sail::ArrayRefWrite::get_offset |
( |
|
) |
|
- Returns:
- offset of the aggregate field selectors f1, ..., fk.
| Symbol * sail::ArrayRefWrite::get_rhs |
( |
|
) |
|
- Returns:
- the value that is written
| bool sail::ArrayRefWrite::is_removable |
( |
|
) |
[virtual] |
An instruction is removable if it's not present in the original source code, but introduced in the translation from the high-level language to the low-level language. For instance, if **x is an expression used in the original code, the low-level language will introduce a temporary t=*x; such instructions are "removable" for printing purposes.
Implements sail::Instruction.
The documentation for this class was generated from the following files: