OpenASIP
2.0
|
#include <PostpassOperandSharer.hh>
Static Public Member Functions | |
static void | printStats () |
Static Public Member Functions inherited from BasicBlockPass | |
static void | copyRMToBB (SimpleResourceManager &rm, TTAProgram::BasicBlock &bb, const TTAMachine::Machine &targetMachine, TTAProgram::InstructionReferenceManager &irm, int lastCycle=-1) |
Private Attributes | |
TTAProgram::InstructionReferenceManager * | irm_ |
Static Private Attributes | |
static unsigned int | moveCount_ = 0 |
static unsigned int | operandCount_ = 0 |
static unsigned int | removedOperands_ = 0 |
static unsigned int | registerReads_ = 0 |
static unsigned int | triggerCannotRemove_ = 0 |
Additional Inherited Members | |
Protected Member Functions inherited from BasicBlockPass | |
void | ddgSnapshot (DataDependenceGraph *ddg, std::string &name, DataDependenceGraph::DumpFileFormat format, bool final) |
virtual DataDependenceGraph * | createDDGFromBB (TTAProgram::BasicBlock &bb, const TTAMachine::Machine &mach) |
Definition at line 47 of file PostpassOperandSharer.hh.
|
inline |
Definition at line 51 of file PostpassOperandSharer.hh.
|
virtual |
Definition at line 223 of file PostpassOperandSharer.cc.
|
virtual |
Handles a single basic block.
Modifies the given basic block, so if the old one is to be preserved, client should copy the original. Does not restore the BB even though handling was not successful.
basicBlock | The basic block to handle. |
machine | The target machine if any. (NullMachine::instance() if target machine is irrelevant). |
In | case handling is unsuccesful for any reason (basicBlock might still get modified). |
Reimplemented from BasicBlockPass.
Definition at line 62 of file PostpassOperandSharer.cc.
References TTAProgram::CodeSnippet::instructionAtIndex(), TTAProgram::CodeSnippet::instructionCount(), TTAProgram::Instruction::move(), TTAProgram::Instruction::moveCount(), moveCount_, TTAProgram::Instruction::removeMove(), and tryRemoveOperandWrite().
|
static |
Definition at line 225 of file PostpassOperandSharer.cc.
References moveCount_, operandCount_, registerReads_, removedOperands_, and triggerCannotRemove_.
|
inlinevirtual |
A short description of the pass, usually the optimization name, such as "basic block scheduler".
Implements SchedulerPass.
Definition at line 71 of file PostpassOperandSharer.hh.
bool PostpassOperandSharer::tryRemoveOperandWrite | ( | TTAProgram::BasicBlock & | basicBlock, |
int | insIndex, | ||
TTAProgram::Move & | move | ||
) |
Definition at line 83 of file PostpassOperandSharer.cc.
References TTAProgram::Move::bus(), TTAProgram::Move::destination(), TTAProgram::Terminal::equals(), TTAProgram::MoveGuard::guard(), TTAProgram::Move::guard(), TTAProgram::Move::guardLatency(), TTAProgram::InstructionReferenceManager::hasReference(), TTAProgram::Terminal::index(), TTAProgram::CodeSnippet::instructionAtIndex(), irm_, TTAMachine::Guard::isEqual(), TTAProgram::Terminal::isFUPort(), TTAProgram::Terminal::isGPR(), TTAProgram::Terminal::isImmediateRegister(), TTAProgram::Terminal::isOpcodeSetting(), TTAMachine::Guard::isOpposite(), TTAProgram::Terminal::isTriggering(), TTAProgram::Move::isUnconditional(), TTAProgram::Instruction::move(), TTAProgram::Instruction::moveCount(), operandCount_, TTAProgram::Terminal::port(), TTAProgram::Terminal::registerFile(), TTAMachine::RegisterGuard::registerFile(), TTAMachine::RegisterGuard::registerIndex(), registerReads_, removedOperands_, TTAProgram::BasicBlock::skippedFirstInstructions(), TTAProgram::Move::source(), triggerCannotRemove_, and TTAMachine::Bus::width().
Referenced by handleBasicBlock().
|
private |
Definition at line 75 of file PostpassOperandSharer.hh.
Referenced by tryRemoveOperandWrite().
|
staticprivate |
Definition at line 76 of file PostpassOperandSharer.hh.
Referenced by handleBasicBlock(), and printStats().
|
staticprivate |
Definition at line 77 of file PostpassOperandSharer.hh.
Referenced by printStats(), and tryRemoveOperandWrite().
|
staticprivate |
Definition at line 79 of file PostpassOperandSharer.hh.
Referenced by printStats(), and tryRemoveOperandWrite().
|
staticprivate |
Definition at line 78 of file PostpassOperandSharer.hh.
Referenced by printStats(), and tryRemoveOperandWrite().
|
staticprivate |
Definition at line 80 of file PostpassOperandSharer.hh.
Referenced by printStats(), and tryRemoveOperandWrite().