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