Go to the documentation of this file.
63 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
64 std::cerr <<
"\t\tTrying share operands late for: " <<
mn_.
toString()
79 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
80 std::cerr <<
"\t\t\tdest not operand port" << std::endl;
106 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
107 std::cerr <<
"\t\t\tidx: " << idx <<
" limit:" << limit << std::endl;
109 for (
unsigned int i = idx; i < limit; i++) {
111 for (
int j = 0; j < ins.
moveCount(); j++) {
114 if (&laterMove == &currMove) {
117 if (!laterDest.
equals(currDest)) {
122 if (laterSrc.
equals(currSrc)) {
124 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
125 std::cerr <<
"\t\t\t\tOriginal scheduled move: " <<
mn_.
toString()
127 std::cerr <<
"\t\t\t\tLate op sharing Could remove later move: "
128 << laterNode.
toString() << std::endl;
134 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
135 std::cerr <<
"\t\t\tAnother move overwrites my dest"
141 for (
int j = 0; j < ins.
moveCount(); j++) {
145 if (laterDest.
equals(currSrc)) {
146 #ifdef DEBUG_BUBBLEFISH_SCHEDULER
147 std::cerr <<
"\t\t\tOverwrites src: " <<
virtual bool isFUPort() const
virtual bool isTriggering() const
std::string toString() const
bool isUnconditional() const
Terminal & destination() const
virtual void undoOnlyMe()
BFShareOperandsLate(BF2Scheduler &sched, MoveNode &mn)
virtual bool operator()()
virtual bool isImmediateRegister() const
int operandShareDistance_
static CmdLineOptions * cmdLineOptions()
MoveNode & nodeOfMove(const TTAProgram::Move &move)
DataDependenceGraph & ddg()
SimpleResourceManager & rm() const
virtual bool isOpcodeSetting() const
unsigned int instructionIndex(unsigned int) const
TTAProgram::Move & move()
virtual bool equals(const Terminal &other) const =0
Terminal & source() const
bool runPostChild(Reversible *preChild)
virtual int operandShareDistance() const
virtual TTAProgram::Instruction * instruction(int cycle) const override