40 #ifndef TTA_BYPASSING_BU_BB_SCHEDULER_HH 41 #define TTA_BYPASSING_BU_BB_SCHEDULER_HH 89 virtual void handleDDG(
93 virtual std::string shortDescription()
const;
94 virtual std::string longDescription()
const;
107 bool renameSourceIfNotConnected(
108 MoveNode& moveNode,
int latestCycle);
112 bool scheduleOperation(
116 bool scheduleResults(
121 bool scheduleMoveUB(
MoveNode& mn,
int earlistCycle,
int latestCycle);
124 MoveNode& mn,
int earlistCycle,
int latestCycle,
127 int bypassNode(
MoveNode& node,
int maxHopCount);
129 std::pair<MoveNode*, int> findBypassSource(
132 bool bypassAndScheduleNode(
134 bool allowRegCopies);
136 bool bypassAndScheduleOperands(
138 bool allowRegCopies);
140 bool scheduleOperandOrTrigger(
142 bool allowRegCopies);
152 void undoBypassAndUnschedule(
MoveNode& mn);
162 void createAntidepsFromUnscheduledRegCopies(
166 std::set<TTAMachine::RegisterFile*, TTAMachine::MachinePart::Comparator>
167 possibleTempRegRFs(
const MoveNode& mn,
bool tempRegAfter);
TTAMachine::Machine * machine
the architecture definition of the estimated processor
virtual MoveNodeSelector * createSelector(TTAProgram::BasicBlock &bb, const TTAMachine::Machine &machine)
std::set< MoveNode *, MoveNode::Comparator > removedNodes_
virtual DataDependenceGraphBuilder & ddgBuilder()
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > removedBypassSources_
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > bypassSources_
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > regCopiesAfter_
std::set< MoveNode *, MoveNode::Comparator > scheduledMoves_
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > regCopiesBefore_
std::set< MoveNode *, MoveNode::Comparator > pendingBypassSources_