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 =
105std::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);
198std::shared_ptr<TTAProgram::Move>
204 std::shared_ptr<TTAProgram::Move> newMove(old.
copy());
216 newMove->setAnnotation(srcUnit);
220 operation(srcOp.
name());
229 returnAddressPort()));
243 newMove->setAnnotation(dstUnit);
248 operation(dstOp.
name());
254 newMove->setDestination(
257 returnAddressPort()));
267 newMove->setGuard(g);
#define assert(condition)
std::shared_ptr< ProgramOperation > ProgramOperationPtr
bool hasNode(const Node &) const
void copyDependencies(const MoveNode &src, MoveNode &dst, bool ignoreSameBBBackedges, bool moveOverLoopEdge=true)
void addNode(MoveNode &moveNode)
MoveNode & nodeOfMove(const TTAProgram::Move &move)
void removeNode(MoveNode &node)
virtual void writeToDotFile(const TCEString &fileName) const
DataDependenceGraph * bigDDG_
MoveNodeDuplicator(DataDependenceGraph &oldDDG, DataDependenceGraph &newDDG)
DataDependenceGraph * newDDG_
std::map< ProgramOperation *, ProgramOperationPtr, ProgramOperation::Comparator > programOperations_
std::shared_ptr< TTAProgram::Move > duplicateMove(TTAProgram::Move &old)
ProgramOperationPtr getProgramOperation(ProgramOperationPtr old)
std::map< TTAProgram::Move *, std::shared_ptr< TTAProgram::Move > > moves_
DataDependenceGraph * oldDDG_
std::map< ProgramOperation *, ProgramOperationPtr, ProgramOperation::Comparator > oldProgramOperations_
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > oldMoveNodes_
MoveNode * getMoveNode(MoveNode &mn)
void disposeMoveNode(MoveNode *newMN)
ProgramOperationPtr duplicateProgramOperationPtr(ProgramOperationPtr old)
std::map< MoveNode *, MoveNode *, MoveNode::Comparator > moveNodes_
std::pair< MoveNode *, bool > duplicateMoveNode(MoveNode &mn, bool addToDDG, bool ignoreSameBBBackEdges)
void setGuardOperationPtr(ProgramOperationPtr po)
void setSourceOperationPtr(ProgramOperationPtr po)
ProgramOperationPtr sourceOperationPtr() const
unsigned int destinationOperationCount() const
bool isGuardOperation() const
ProgramOperationPtr guardOperationPtr() const
ProgramOperation & sourceOperation() const
bool isDestinationOperation() const
std::string toString() const
ProgramOperation & guardOperation() const
TTAProgram::Move & move()
bool isSourceOperation() const
ProgramOperationPtr destinationOperationPtr(unsigned int index=0) const
void addDestinationOperationPtr(ProgramOperationPtr po)
ProgramOperation & destinationOperation(unsigned int index=0) const
virtual TCEString name() const
void addGuardOutputNode(MoveNode &node)
const Operation & operation() const
void addOutputNode(MoveNode &node, int outputIndex)
void addInputNode(MoveNode &node)
virtual TCEString name() const
MoveGuard & guard() const
bool isUnconditional() const
Terminal & source() const
std::shared_ptr< Move > copy() const
Terminal & destination() const
@ ANN_CONN_CANDIDATE_UNIT_DST
Dst. unit candidate.
@ ANN_CONN_CANDIDATE_UNIT_SRC
Src. unit candidate.
virtual bool isRA() const
virtual const TTAMachine::FunctionUnit & functionUnit() const
virtual int operationIndex() const
virtual bool isFUPort() const
static UniversalMachine & instance()
UniversalFunctionUnit & universalFunctionUnit() const