|
| PreBypassBasicBlockScheduler (InterPassData &data, DataDependenceGraphBuilder &ddgBuilder) |
|
virtual std::string | shortDescription () const |
|
virtual DataDependenceGraphBuilder & | ddgBuilder () |
|
| BasicBlockScheduler (InterPassData &data, SoftwareBypasser *bypasser=NULL, CopyingDelaySlotFiller *delaySlotFiller=NULL, RegisterRenamer *registerRenamer=NULL) |
|
virtual | ~BasicBlockScheduler () |
|
virtual void | handleDDG (DataDependenceGraph &ddg, SimpleResourceManager &rm, const TTAMachine::Machine &targetMachine) |
|
virtual std::string | longDescription () const |
|
virtual MoveNodeSelector * | createSelector (TTAProgram::BasicBlock &bb, const TTAMachine::Machine &machine) |
|
| BBSchedulerController (InterPassData &data, SoftwareBypasser *bypasser=NULL, CopyingDelaySlotFiller *delaySlotFiller=NULL, DataDependenceGraph *bigDDG=NULL) |
|
virtual | ~BBSchedulerController () |
|
virtual void | handleBasicBlock (TTAProgram::BasicBlock &bb, const TTAMachine::Machine &targetMachine, TTAProgram::InstructionReferenceManager &irm, BasicBlockNode *bbn=NULL) |
|
virtual void | handleControlFlowGraph (ControlFlowGraph &cfg, const TTAMachine::Machine &targetMachine) |
|
virtual void | handleProcedure (TTAProgram::Procedure &procedure, const TTAMachine::Machine &targetMachine) |
|
virtual void | handleProgram (TTAProgram::Program &program, const TTAMachine::Machine &targetMachine) |
|
virtual void | executeDDGPass (TTAProgram::BasicBlock &bb, const TTAMachine::Machine &targetMachine, TTAProgram::InstructionReferenceManager &irm, std::vector< DDGPass *> ddgPasses, BasicBlockNode *bbn=NULL) |
|
virtual void | handleCFGDDG (ControlFlowGraph &cfg, DataDependenceGraph &ddg, const TTAMachine::Machine &targetMachine) |
|
| BasicBlockPass (InterPassData &data) |
|
virtual | ~BasicBlockPass () |
|
virtual bool | executeLoopPass (TTAProgram::BasicBlock &bb, const TTAMachine::Machine &targetMachine, TTAProgram::InstructionReferenceManager &irm, std::vector< DDGPass *> ddgPasses, BasicBlockNode *bbn=NULL) |
|
| SchedulerPass (InterPassData &data) |
|
virtual | ~SchedulerPass () |
|
InterPassData & | interPassData () |
|
| ControlFlowGraphPass (InterPassData &data) |
|
virtual | ~ControlFlowGraphPass () |
|
void | executeBasicBlockPass (ControlFlowGraph &cfg, const TTAMachine::Machine &targetMachine, BasicBlockPass &bbPass) |
|
| ProcedurePass (InterPassData &data) |
|
virtual | ~ProcedurePass () |
|
| ProgramPass (InterPassData &data) |
|
virtual | ~ProgramPass () |
|
| DDGPass (InterPassData &data) |
|
virtual | ~DDGPass () |
|
|
static void | copyRMToBB (SimpleResourceManager &rm, TTAProgram::BasicBlock &bb, const TTAMachine::Machine &targetMachine, TTAProgram::InstructionReferenceManager &irm, int lastCycle=-1) |
|
static void | copyCfgToProcedure (TTAProgram::Procedure &procedure, ControlFlowGraph &cfg) |
|
static void | executeControlFlowGraphPass (TTAProgram::Procedure &procedure, const TTAMachine::Machine &targetmachine, ControlFlowGraphPass &cfgp) |
|
static void | executeProcedurePass (TTAProgram::Program &program, const TTAMachine::Machine &targetMachine, ProcedurePass &procedurePass) |
|
void | scheduleRRMove (MoveNode &moveNode) |
|
void | scheduleOperation (MoveNodeGroup &moves) |
|
int | scheduleOperandWrites (int &cycle, MoveNodeGroup &moves) |
|
bool | scheduleResultReads (MoveNodeGroup &moves) |
|
void | scheduleMove (MoveNode &move, int earliestCycle) |
|
void | scheduleRRTempMoves (MoveNode ®ToRegMove, MoveNode &firstMove, int lastUse) |
|
void | scheduleInputOperandTempMoves (MoveNode &operandMove, MoveNode &operandWrite) |
|
void | unschedule (MoveNode &moveNode) |
|
void | unscheduleInputOperandTempMoves (MoveNode &operandMove) |
|
void | scheduleResultReadTempMoves (MoveNode &resultMove, MoveNode &resultRead, int lastUse) |
|
void | unscheduleResultReadTempMoves (MoveNode &resultMove) |
|
void | notifyScheduled (MoveNodeGroup &moves, MoveNodeSelector &selector) |
|
void | ddgSnapshot (DataDependenceGraph &ddg, const std::string &name, DataDependenceGraph::DumpFileFormat format, bool final, bool resetCounter=false) const |
|
MoveNode * | succeedingTempMove (MoveNode ¤t) |
|
int | getTriggerOperand (const Operation &operation, const TTAMachine::Machine &machine) |
|
bool | tryToSwitchInputs (ProgramOperation &op) |
|
MoveNode * | findTrigger (ProgramOperation &po) |
|
MoveNode * | findTriggerFromUnit (ProgramOperation &po, TTAMachine::Unit &unit) |
|
virtual DataDependenceGraph * | createDDGFromBB (TTAProgram::BasicBlock &bb, const TTAMachine::Machine &mach) |
|
void | ddgSnapshot (DataDependenceGraph *ddg, std::string &name, DataDependenceGraph::DumpFileFormat format, bool final) |
|
const TTAMachine::Machine * | targetMachine_ |
| The target machine we are scheduling the program against. More...
|
|
DataDependenceGraph * | ddg_ |
| DDG of the currently scheduled BB. More...
|
|
SimpleResourceManager * | rm_ |
| Resource Manager of the currently scheduled BB. More...
|
|
std::map< const MoveNode *, DataDependenceGraph::NodeSet > | scheduledTempMoves_ |
| Stores the MoveNodes that were scheduled as temp moves during scheduling of the operand move. More...
|
|
SoftwareBypasser * | softwareBypasser_ |
| The software bypasser to use to bypass registers when possible. More...
|
|
RegisterRenamer * | renamer_ |
|
int | bypassedCount_ |
|
int | deadResults_ |
|
LLVMTCECmdLineOptions * | options_ |
|
A class that implements the functionality of a basic block scheduler for sequential input that has already been software bypassed.
Uses LLVM MachineInstruction info for assiting in building the DDGs.
Definition at line 45 of file PreBypassBasicBlockScheduler.hh.