Go to the documentation of this file.
52 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
54 <<
" from: " << op->toString() << std::endl;
59 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
61 <<
" to: " << op->toString() << std::endl;
68 if (prologMNOfRemoved) {
71 prologPO->removeInputNode(*prologMNOfRemoved);
77 if (prologMNOfShared) {
78 if (prologPO ==
nullptr) {
83 prologPO->addInputNode(*prologMNOfShared);
93 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
94 std::cerr <<
"\t\t\t\tBFShareOperand undoing itseld, shared: "
107 if (prologMNOfShared) {
109 assert(prologPO !=
nullptr);
110 prologPO->removeInputNode(*prologMNOfShared);
114 if (prologMNOfRemoved) {
116 assert(prologPO !=
nullptr);
117 prologPO->addInputNode(*prologMNOfRemoved);
122 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
123 std::cerr <<
"\t\t\t\t\t\tRestoring, op: "
124 << op->toString() << std::endl;
130 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
132 <<
" to: " << op->toString() << std::endl;
MoveNodeDuplicator & duplicator() const
std::string toString() const
Terminal & destination() const
ProgramOperationPtr duplicateProgramOperationPtr(ProgramOperationPtr old)
std::shared_ptr< ProgramOperation > ProgramOperationPtr
#define assert(condition)
virtual int operationIndex() const
void addDestinationOperationPtr(ProgramOperationPtr po)
virtual bool operator()()
std::set< ProgramOperationPtr > createdPrologPOs_
unsigned int destinationOperationCount() const
virtual void undoOnlyMe()
ProgramOperationPtr getProgramOperation(ProgramOperationPtr old)
MoveNode * getMoveNode(MoveNode &mn)
ProgramOperationPtr destinationOperationPtr(unsigned int index=0) const
TTAProgram::Move & move()
void removeDestinationOperation(const ProgramOperation *po)
std::vector< ProgramOperationPtr > ops_