Go to the documentation of this file.
44 std::cerr <<
"push deps up prefcycle negative! "
48 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
52 std::cerr <<
"\tPushing loop deps up: " <<
mn_.
toString() << std::endl;
57 for (
auto e : inEdges) {
62 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
63 std::cerr <<
"\t\t\tmy prefcycle is: " <<
prefCycle_
64 <<
" latency is: " << eLat
65 <<
" so preftailcycle is: " << prefTailCycle
67 std::cerr <<
"\t\t\t\tedge: " <<e->toString() << std::endl;
69 if (loopDepTail.
cycle() > prefTailCycle) {
70 if (prefTailCycle < 0) {
71 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
86 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
89 std::cerr <<
"\tpushed up succesfully: "
91 <<
" preChildren size: "
96 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
99 std::cerr <<
"\t\tpushing up fail: "
101 <<
" preChildren size: "
105 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
113 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
void undoAndRemovePreChildren()
virtual Node & tailNode(const Edge &edge) const
std::string toString() const
int edgeLatency(const DataDependenceEdge &edge, int ii, const MoveNode *tail, const MoveNode *head) const
std::stack< Reversible * > preChildren_
#define assert(condition)
std::set< DataDependenceEdge *, typename DataDependenceEdge ::Comparator > EdgeSet
bool isSourceOperation() const
DataDependenceGraph & ddg()
virtual EdgeSet inEdges(const Node &node) const
bool runPreChild(Reversible *preChild)
static int recurseCounter_