Go to the documentation of this file.
33 #ifndef TTA_BB_SCHEDULER_CONTROLLER_HH
34 #define TTA_BB_SCHEDULER_CONTROLLER_HH
36 #include <boost/progress.hpp>
98 std::vector<DDGPass*> ddgPasses,
BasicBlockNode* bbn = NULL)
override;
virtual void handleCFGDDG(ControlFlowGraph &cfg, DataDependenceGraph *ddg, const TTAMachine::Machine &targetMachine)
DataDependenceGraph * bigDDG_
whole-procedure DDG.
virtual void handleProgram(TTAProgram::Program &program, const TTAMachine::Machine &targetMachine) override
LLVMTCECmdLineOptions * options_
virtual std::string longDescription() const override
bool handleBBNode(ControlFlowGraph &cfg, BasicBlockNode &bbn, const TTAMachine::Machine &targetMachine, int nodeCount)
virtual ~BBSchedulerController()
CopyingDelaySlotFiller * delaySlotFiller_
ControlFlowGraph * cfg_
Control flow graph of the procedure.
boost::progress_display * progressBar_
Fancy progress bar. Pointer because creation outputs the initial progress bar and we want it only on ...
virtual void executeDDGPass(TTAProgram::BasicBlock &bb, const TTAMachine::Machine &targetMachine, TTAProgram::InstructionReferenceManager &irm, std::vector< DDGPass * > ddgPasses, BasicBlockNode *bbn=NULL) override
virtual std::string shortDescription() const override
virtual void handleControlFlowGraph(ControlFlowGraph &cfg, const TTAMachine::Machine &targetMachine) override
BBSchedulerController(const TTAMachine::Machine &targetMachine, InterPassData &data, SoftwareBypasser *bypasser=NULL, CopyingDelaySlotFiller *delaySlotFiller=NULL, DataDependenceGraph *bigDDG=NULL)
int totalBasicBlocks_
Total basic blocks in the CFG currently being scheduled.
virtual DataDependenceGraph * createDDGFromBB(TTAProgram::BasicBlock &bb, const TTAMachine::Machine &mach)
SoftwareBypasser * softwareBypasser_
The software bypasser to use to bypass registers when possible.
find Finds info of the inner loops in the program
TTAProgram::Procedure * scheduledProcedure_
The currently scheduled procedure.
const TTAMachine::Machine & targetMachine_
int basicBlocksScheduled_
Number of basic blocks scheduled so far.
virtual void handleProcedure(TTAProgram::Procedure &procedure, const TTAMachine::Machine &targetMachine) override
virtual void handleBasicBlock(TTAProgram::BasicBlock &bb, const TTAMachine::Machine &targetMachine, TTAProgram::InstructionReferenceManager &irm, BasicBlockNode *bbn=NULL) override