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::shared_ptr< ProgramOperation > ProgramOperationPtr
void nodeResurrected(MoveNode &mn)
TTAMachine::FUPort * isPreLoopSharedOperand(MoveNode &mn) const
void nodeKilled(MoveNode &mn)
static MoveNode * getSisterTrigger(const MoveNode &mn, const TTAMachine::Machine &mach)
DataDependenceGraph & ddg()
const TTAMachine::Machine & targetMachine() const
void restoreNodeFromParent(GraphNode &node)
virtual void dropNode(Node &node)
std::string toString() const
TTAProgram::Move & move()
ProgramOperationPtr destinationOperationPtr(unsigned int index=0) const
virtual int numberOfInputs() const
virtual bool canSwap(int id1, int id2) const
bool runPreChild(Reversible *preChild)
Terminal & destination() const
virtual int operationIndex() const