Go to the documentation of this file.
33 #ifndef TTA_CYCLE_LOOK_BACK_SOFTWARE_BYPASSER_HH
34 #define TTA_CYCLE_LOOK_BACK_SOFTWARE_BYPASSER_HH
76 std::set<std::pair<TTAProgram::Move*, int> >& removedMoves);
103 int& lastOperandCycle,
static int deadResultCount_
virtual void clearCaches(DataDependenceGraph &ddg, bool removeDeadResults)
static int triggerAbortCount_
std::set< MoveNode *, typename MoveNode ::Comparator > NodeSet
std::map< MoveNode *, const TTAMachine::Bus * > sourceBuses_
std::map< MoveNode *, int > sourceCycles_
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > storedSources_
Stores sources and bypassed moves in case they have to be unassigned (case when operands are schedule...
int bypassNode(MoveNode &nodeToBypass, int &lastOperandCycle, DataDependenceGraph &ddg, ResourceManager &rm)
virtual void removeBypass(MoveNodeGroup &candidates, DataDependenceGraph &ddg, ResourceManager &rm)
int cyclesToLookBackNoDRE_
count of cycles before the operand write to look for the producer of the read value when cannot kill ...
MoveNodeSelector * selector_
DataDependenceGraph::NodeSet removedNodes_
void setSelector(MoveNodeSelector *selector)
virtual ~CycleLookBackSoftwareBypasser()
CycleLookBackSoftwareBypasser()
virtual int removeDeadResults(MoveNodeGroup &candidates, DataDependenceGraph &ddg, ResourceManager &rm, std::set< std::pair< TTAProgram::Move *, int > > &removedMoves)
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > removedStoredSources_
int cyclesToLookBack_
count of cycles before the operand write to look for the producer of the read value
virtual int bypass(MoveNodeGroup &candidates, DataDependenceGraph &ddg, ResourceManager &rm, bool bypassTrigger)