sail::Store Class Reference

A store instruction is of the form *s1.f1...fn = s2. Field selectors are optional and only appear if ALLOW_OFFSETS is enabled. More...

#include <Store.h>

Inheritance diagram for sail::Store:
sail::Instruction

List of all members.

Public Member Functions

 Store (Symbol *v1, Symbol *v2, int offset, string name, il::node *original, int line)
virtual string to_string () const
virtual string to_string (bool pretty_print) const
Symbolget_rhs ()
Symbolget_lhs ()
int get_offset ()
string & get_field_name ()
virtual bool is_removable ()

Friends

class boost::serialization::access

Detailed Description

A store instruction is of the form *s1.f1...fn = s2. Field selectors are optional and only appear if ALLOW_OFFSETS is enabled.

The field selectors in this instruction are optional; if ALLOW_OFFSETS in Function.cpp is set to false, SAIL generates only Store instructions with no field selectors. Note that disabling ALLOW_OFFSETS will cause stores with offsets to generate instructions that involve pointer arithmetic.


Member Function Documentation

bool sail::Store::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:
Generated on Sun Oct 17 14:01:34 2010 by  doxygen 1.6.3