Go to the documentation of this file.
57 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
58 std::cerr <<
"\tPerforming BFSchduleTD for: " <<
mn_.
toString() <<
59 " ec limit: " <<
ec_ << std::endl;
90 ddg().latestCycle(
mn_,
ii(),
false,
false));
91 int ddgec = std::max(
ec_,
92 ddg().earliestCycle(
mn_,
ii(),
false,
false));
94 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
95 std::cerr <<
"\t\tDDG lc: " << ddglc << std::endl;
96 std::cerr <<
"\t\tDDG ec: " << ddgec << std::endl;
97 std::cerr <<
"\t\tRM ec: " << rmec << std::endl;
99 if (rmec != -1 && ddglc >= rmec) {
101 if (regCopyAfter != NULL) {
107 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
108 std::cerr <<
"\t\tTD Assigned ok:" <<
mn_.
toString()
120 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
121 std::cerr <<
"unassign td: " <<
mn_.
toString() << std::endl;
virtual void unassign(MoveNode &mn, bool disposePrologCopy=true)
void undoAndRemovePreChildren()
virtual bool assign(int cycle, MoveNode &, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU_=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, const TTAMachine::Bus *prologBus=nullptr, int immWriteCycle=-1, int prologImmWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1, bool ignoreGuardWriteCycle=false)
bool isDestinationVariable() const
virtual TCEString name() const
std::string toString() const
TTAMachine::Bus & universalBus() const
static UniversalMachine & instance()
const TTAMachine::Bus & bus() const
virtual int rmEC(int cycle, MoveNode &mn, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, const TTAMachine::Bus *prologBus=nullptr, int immWriteCycle=-1, int prologImmWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1)
#define assert(condition)
virtual void undoOnlyMe()
bool isSourceOperation() const
DataDependenceGraph & ddg()
bool canBeScheduled(const MoveNode &mn)
virtual bool operator()()
TTAProgram::Move & move()
bool runPreChild(Reversible *preChild)
int maximumAllowedCycle() const
bool runPostChild(Reversible *preChild)
void setBus(const TTAMachine::Bus &bus)