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;
#define assert(condition)
int maximumAllowedCycle() const
DataDependenceGraph & ddg()
virtual void unassign(MoveNode &mn, bool disposePrologCopy=true)
bool canBeScheduled(const MoveNode &mn)
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)
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)
virtual void undoOnlyMe()
virtual bool operator()()
std::string toString() const
TTAProgram::Move & move()
bool isSourceOperation() const
bool isDestinationVariable() const
bool runPostChild(Reversible *preChild)
void undoAndRemovePreChildren()
bool runPreChild(Reversible *preChild)
virtual TCEString name() const
void setBus(const TTAMachine::Bus &bus)
const TTAMachine::Bus & bus() const
static UniversalMachine & instance()
TTAMachine::Bus & universalBus() const