Go to the documentation of this file.
48 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
49 std::cerr <<
"\t\t\tRemoving guard from succ: " <<
mn_.
toString()
55 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
56 std::cerr <<
"\t\t\t\tUnsched failed: " <<
mn_.
toString()
64 for (
auto e: inEdges) {
65 if (e->guardUse() && !e->isFalseDep()) {
70 for (
auto e: outEdges) {
79 if (prologMN !=
nullptr) {
87 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
88 std::cerr <<
"\t\t\t\tRe-scheduling ok: " <<
mn_.
toString()
93 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
94 std::cerr <<
"\t\t\t\tRe-scheduling failed, undoing..: "
103 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
104 std::cerr <<
"\t\t\tRestoring guard to succ: " <<
mn_.
toString()
110 if (prologMN !=
nullptr) {
115 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
116 std::cerr <<
"\t\t\tRestored guard to succ: " <<
mn_.
toString()
MoveNodeDuplicator & duplicator() const
std::string toString() const
bool operator()() override
void setGuard(MoveGuard *guard)
TTAProgram::MoveGuard * guard_
void undoOnlyMe() override
MoveGuard & guard() const
DataDependenceGraph & ddg()
virtual EdgeSet inEdges(const Node &node) const
MoveNode * getMoveNode(MoveNode &mn)
virtual EdgeSet outEdges(const Node &node) const
TTAProgram::Move & move()
bool runPreChild(Reversible *preChild)
bool runPostChild(Reversible *preChild)