Go to the documentation of this file.
50 oldDDG_(&oldDDG), newDDG_(&newDDG),
58 std::cerr <<
"\t\t\t\t\tCannot dispose scheduled mn: "
63 std::map<MoveNode*,MoveNode*,MoveNode::Comparator>::iterator i =
86 std::map<MoveNode*,MoveNode*,MoveNode::Comparator>::iterator iter =
105 std::pair<MoveNode*, bool>
107 MoveNode& old,
bool addToDDG,
bool ignoreSameBBBackEdges) {
108 std::map<MoveNode*,MoveNode*,MoveNode::Comparator>::iterator iter =
121 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
122 std::cerr <<
"\t\t\t\t\told mn found: "
125 return std::make_pair(
moveNodes_[&old],
false);
145 for (
unsigned int i = 0;
160 return std::make_pair(newMN,
true);
198 std::shared_ptr<TTAProgram::Move>
204 std::shared_ptr<TTAProgram::Move> newMove(old.
copy());
220 operation(srcOp.
name());
229 returnAddressPort()));
248 operation(dstOp.
name());
257 returnAddressPort()));
std::shared_ptr< Move > copy() const
const Operation & operation() const
virtual bool isFUPort() const
DataDependenceGraph * newDDG_
void addGuardOutputNode(MoveNode &node)
DataDependenceGraph * bigDDG_
virtual TCEString name() const
std::map< ProgramOperation *, ProgramOperationPtr, ProgramOperation::Comparator > programOperations_
std::string toString() const
ProgramOperationPtr guardOperationPtr() const
MoveNodeDuplicator(DataDependenceGraph &oldDDG, DataDependenceGraph &newDDG)
bool isDestinationOperation() const
bool isUnconditional() const
void setAnnotation(const ProgramAnnotation &annotation)
Terminal & destination() const
std::map< TTAProgram::Move *, std::shared_ptr< TTAProgram::Move > > moves_
static UniversalMachine & instance()
void setGuard(MoveGuard *guard)
ProgramOperationPtr duplicateProgramOperationPtr(ProgramOperationPtr old)
virtual TCEString name() const
std::shared_ptr< ProgramOperation > ProgramOperationPtr
void addOutputNode(MoveNode &node, int outputIndex)
std::pair< MoveNode *, bool > duplicateMoveNode(MoveNode &mn, bool addToDDG, bool ignoreSameBBBackEdges)
void setSourceOperationPtr(ProgramOperationPtr po)
ProgramOperation & sourceOperation() const
#define assert(condition)
void setDestination(Terminal *dst)
bool isGuardOperation() const
@ ANN_CONN_CANDIDATE_UNIT_SRC
Src. unit candidate.
virtual int operationIndex() const
void addDestinationOperationPtr(ProgramOperationPtr po)
void disposeMoveNode(MoveNode *newMN)
MoveGuard & guard() const
MoveNode & nodeOfMove(const TTAProgram::Move &move)
DataDependenceGraph * oldDDG_
void removeNode(MoveNode &node)
bool isSourceOperation() const
unsigned int destinationOperationCount() const
ProgramOperationPtr getProgramOperation(ProgramOperationPtr old)
bool hasNode(const Node &) const
virtual void writeToDotFile(const TCEString &fileName) const
virtual const TTAMachine::FunctionUnit & functionUnit() const
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > moveNodes_
UniversalFunctionUnit & universalFunctionUnit() const
MoveNode * getMoveNode(MoveNode &mn)
ProgramOperation & destinationOperation(unsigned int index=0) const
void addNode(MoveNode &moveNode)
void addInputNode(MoveNode &node)
ProgramOperationPtr destinationOperationPtr(unsigned int index=0) const
TTAProgram::Move & move()
std::map< ProgramOperation *, ProgramOperationPtr, ProgramOperation::Comparator > oldProgramOperations_
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > oldMoveNodes_
void setGuardOperationPtr(ProgramOperationPtr po)
ProgramOperationPtr sourceOperationPtr() const
Terminal & source() const
virtual bool isRA() const
void setBus(const TTAMachine::Bus &bus)
void copyDependencies(const MoveNode &src, MoveNode &dst, bool ignoreSameBBBackedges, bool moveOverLoopEdge=true)
void setSource(Terminal *src)
std::shared_ptr< TTAProgram::Move > duplicateMove(TTAProgram::Move &old)
@ ANN_CONN_CANDIDATE_UNIT_DST
Dst. unit candidate.
ProgramOperation & guardOperation() const