Go to the documentation of this file.
53 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
74 if (removedPrologMN != NULL) {
82 if (sharedPrologMN != NULL) {
97 if (BFShareOperand::operator()()) {
100 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
101 std::cerr <<
"\t\t\t\tShare operand late OK for: "
103 std::cerr <<
"\t\t\t\tRescheduling trigger closer:"
104 << removedOpTrigger->
toString() << std::endl;
109 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
111 std::cerr <<
"\t\t\tRescheduled trigger closer." << std::endl;
118 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
119 std::cerr <<
"\t\t\t\tShare operand late FAIL on assign for: "
140 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
156 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
167 for (
int i = 0; i < ins->
moveCount(); i++) {
170 <<
" bus: " << m.
bus().
name() << std::endl;
virtual int immediateWriteCycle(const MoveNode &) const
virtual void unassign(MoveNode &mn, bool disposePrologCopy=true)
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 TCEString name() const
MoveNodeDuplicator & duplicator() const
std::string toString() const
virtual int index() const
virtual void undoOnlyMe()
const TTAMachine::Bus & bus() const
virtual void dropNode(Node &node)
MoveNode * triggeringMove() const
#define assert(condition)
const TTAMachine::Bus * originalRemovedPrologBus_
virtual bool isImmediateRegister() const
const TTAMachine::ImmediateUnit * removedImmu_
SimpleResourceManager * prologRM() const
void nodeAndCopyKilled(MoveNode &mn)
int removedImmWriteCycle_
int sharedPrologImmWriteCycle_
int removedPrologImmWriteCycle_
virtual const TTAMachine::ImmediateUnit & immediateUnit() const
DataDependenceGraph & ddg()
const TTAMachine::Bus * originalSharedBus_
virtual void undoOnlyMe()
SimpleResourceManager & rm() const
const TTAMachine::Bus * originalSharedPrologBus_
MoveNode * getMoveNode(MoveNode &mn)
ProgramOperation & destinationOperation(unsigned int index=0) const
TTAProgram::Move & move()
std::string toString() const
static std::string disassemble(const TTAProgram::Move &move)
virtual bool operator()()
void nodeResurrected(MoveNode &mn)
const TTAMachine::ImmediateUnit * sharedImmu_
const TTAMachine::Bus * originalRemovedBus_
Terminal & source() const
bool runPostChild(Reversible *preChild)
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
void restoreNodeFromParent(GraphNode &node)