Go to the documentation of this file.
66 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
70 std::cerr <<
"\t\tUnscheduling original: " <<
mn_.
toString()
74 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
80 std::cerr <<
"\t\tCannot assign to old cycle: " <<
mn_.
toString()
81 <<
" old cycle: " <<
oldCycle_ << std::endl;
84 std::cerr <<
"\t\twhole src PO: "
88 std::cerr <<
"\t\twhole dst PO: "
97 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
101 std::cerr <<
"\t\treturning original: " <<
mn_.
toString()<<
" current bus: "
106 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
109 std::cerr <<
"Cannot return to old cycle: " <<
mn_.
toString()
119 std::cerr <<
"Original bus: " <<
oldBus_->
name() << std::endl;
122 for (
int i = 0; i < ins->
moveCount(); i++) {
128 <<
" immediates." << std::endl;
137 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
138 std::cerr <<
"BFUnscheudleMove undo" << std::endl;
virtual int immediateWriteCycle(const MoveNode &) const
virtual TCEString name() const
std::string toString() const
virtual int index() const
bool isDestinationOperation() const
Terminal & destination() const
const TTAMachine::Bus * oldBus_
const TTAMachine::Bus & bus() const
virtual void assign(int cycle, MoveNode &node, const TTAMachine::Bus *bus=NULL, const TTAMachine::FunctionUnit *srcFU=NULL, const TTAMachine::FunctionUnit *dstFU=NULL, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) override
void unscheduleOriginal()
virtual void unassign(MoveNode &node) override
void undoOnlyMe() override
bool operator()() override
ProgramOperation & sourceOperation() const
#define assert(condition)
virtual bool isImmediateRegister() const
const TTAMachine::FunctionUnit * srcFU_
bool isSourceOperation() const
virtual const TTAMachine::ImmediateUnit & immediateUnit() const
DataDependenceGraph & ddg()
SimpleResourceManager & rm() const
virtual void writeToDotFile(const TCEString &fileName) const
virtual const TTAMachine::FunctionUnit & functionUnit() const
const TTAMachine::ImmediateUnit * immu_
ProgramOperation & destinationOperation(unsigned int index=0) const
TTAProgram::Move & move()
std::string toString() const
static std::string disassemble(const TTAProgram::Move &move)
const TTAMachine::FunctionUnit * dstFU_
static int recurseCounter_
int immediateCount() const
Terminal & source() const
virtual bool canAssign(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, bool ignoreGWN=false)
virtual TTAProgram::Instruction * instruction(int cycle) const override