Go to the documentation of this file.
33 #ifndef OPERATION_PIMPL_HH
34 #define OPERATION_PIMPL_HH
104 bool canSwap(
int id1,
int id2)
const;
bool writesMemory() const
std::set< std::string > affects_
Operations that affects this Operation.
bool hasSideEffects() const
void setBranch(bool setting)
TCEString dagError(int index) const
int affectedByCount() const
void loadState(const ObjectState *state)
std::vector< OperationDAGInfo > DAGContainer
std::string error
Error message if creating DAG failed.
void addInput(Operand *operand)
OperationDAG * dag
DAG presentation of code. set to NullOperationDAG if could not be created.
bool isControlFlowOperation() const
void setCall(bool setting)
int inputs_
The number of inputs of the Operation.
void addOutput(Operand *operand)
std::set< std::string > affectedBy_
Operations that are affected by this Operation.
TCEString emulationFunctionName() const
bool canTrap_
Flag indicating if Operation can trap.
int outputs_
The number of outputs of the Operation.
std::string name_
Name of the Operation.
TCEString dagCode(int index) const
std::vector< Operand * > outputOperands_
Output Operands of the Operation.
int numberOfOutputs() const
void setControlFlowOperation(bool setting)
bool isClocked_
Flag indicating if Operation is clocked and needs AdvanceClock.
ObjectState * saveState() const
void setBehavior(OperationBehavior &behavior)
Operand & output(int index) const
std::string code
Source code for creating DAG for operation.
bool writesMemory_
Flag indicating if Operation writes to memory.
bool simulateTrigger(SimValue **, OperationContext &context) const
TCEString affects(unsigned int i) const
void setReadsMemory(bool setting)
OperationPimpl & operator=(const OperationPimpl &)
Assignment not allowed.
Operand & operand(int id) const
void createState(OperationContext &context) const
OperationBehavior & behavior() const
DAGContainer dags_
Table of DAGs and their source codes of an operation.
void insertOperand(Operand *operand, std::vector< Operand * > &ops)
Operand & fetchOperand(int id, const std::vector< Operand * > &ops) const
OperationBehavior * behavior_
The behavior of the Operation.
void removeDag(int index)
bool isBranch_
Flag indicating if Operation is branch changing control flow.
std::vector< Operand * > inputOperands_
Input Operands of the Operation.
bool dependsOn(const Operation &op) const
OperationDAG & dag(int index) const
bool canSwap(int id1, int id2) const
TCEString affectedBy(unsigned int i) const
bool compilationFailed
If code was already tried to compile and it did not succeed.
bool readsMemory_
Flag indicating if Operation reads from memory.
bool canBeSimulated() const
std::string description_
Description of the Operation.
bool hasSideEffects_
Flag indicating if Operation has side effects.
void addDag(const TCEString &code)
Operand & input(int index) const
bool controlFlowOperation_
Flag indicating if the Operation can change program flow.
TCEString description() const
void setWritesMemory(bool setting)
void deleteState(OperationContext &context) const
bool isCall_
Flag indicating if Operation is call.
void setDagCode(int index, const TCEString &code)
int numberOfInputs() const