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;
#define assert(condition)
void nodeResurrected(MoveNode &mn)
void nodeAndCopyKilled(MoveNode &mn)
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)
SimpleResourceManager * prologRM() const
DataDependenceGraph & ddg()
virtual void unassign(MoveNode &mn, bool disposePrologCopy=true)
MoveNodeDuplicator & duplicator() const
SimpleResourceManager & rm() const
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)
const TTAMachine::ImmediateUnit * removedImmu_
const TTAMachine::ImmediateUnit * sharedImmu_
int removedPrologImmWriteCycle_
const TTAMachine::Bus * originalSharedBus_
int removedImmWriteCycle_
int sharedPrologImmWriteCycle_
const TTAMachine::Bus * originalRemovedBus_
const TTAMachine::Bus * originalSharedPrologBus_
virtual void undoOnlyMe()
const TTAMachine::Bus * originalRemovedPrologBus_
virtual bool operator()()
virtual void undoOnlyMe()
void restoreNodeFromParent(GraphNode &node)
virtual void dropNode(Node &node)
MoveNode * getMoveNode(MoveNode &mn)
std::string toString() const
TTAProgram::Move & move()
ProgramOperation & destinationOperation(unsigned int index=0) const
static std::string disassemble(const TTAProgram::Move &move)
MoveNode * triggeringMove() const
std::string toString() const
bool runPostChild(Reversible *preChild)
virtual TTAProgram::Instruction * instruction(int cycle) const override
virtual int immediateWriteCycle(const MoveNode &) const
virtual TCEString name() const
Terminal & source() const
const TTAMachine::Bus & bus() const
virtual int index() const
virtual bool isImmediateRegister() const
virtual const TTAMachine::ImmediateUnit & immediateUnit() const