Go to the documentation of this file.
48 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
49 std::cerr <<
"\tDropping pre-shared: " <<
mn_.
toString() << std::endl;
52 if (trigger == &
mn_) {
53 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
54 std::cerr <<
"Cannot pre-share trigger operand, must swap operands"
58 const Operation& op = destPO->operation();
61 for (
int i = 1 ; i <= operandCount && !swapped; i++) {
63 MoveNode& mn = destPO->inputNode(i).at(0);
64 if (i != idx && op.
canSwap(i, idx) &&
85 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
86 std::cerr <<
"\tUndoing dropping of pre-shared: " <<
mn_.
toString()
std::string toString() const
Terminal & destination() const
virtual int numberOfInputs() const
static MoveNode * getSisterTrigger(const MoveNode &mn, const TTAMachine::Machine &mach)
virtual void dropNode(Node &node)
const TTAMachine::Machine & targetMachine() const
std::shared_ptr< ProgramOperation > ProgramOperationPtr
virtual bool canSwap(int id1, int id2) const
TTAMachine::FUPort * isPreLoopSharedOperand(MoveNode &mn) const
virtual int operationIndex() const
DataDependenceGraph & ddg()
ProgramOperationPtr destinationOperationPtr(unsigned int index=0) const
TTAProgram::Move & move()
bool runPreChild(Reversible *preChild)
void nodeResurrected(MoveNode &mn)
void nodeKilled(MoveNode &mn)
void restoreNodeFromParent(GraphNode &node)