33#ifndef TTA_BB_SCHEDULER_CONTROLLER_HH
34#define TTA_BB_SCHEDULER_CONTROLLER_HH
96 std::vector<DDGPass*> ddgPasses,
BasicBlockNode* bbn = NULL)
override;
find Finds info of the inner loops in the program
ControlFlowGraph * cfg_
Control flow graph of the procedure.
DataDependenceGraph * bigDDG_
whole-procedure DDG.
TTAProgram::Procedure * scheduledProcedure_
The currently scheduled procedure.
int basicBlocksScheduled_
Number of basic blocks scheduled so far.
LLVMTCECmdLineOptions * options_
SoftwareBypasser * softwareBypasser_
The software bypasser to use to bypass registers when possible.
bool handleBBNode(ControlFlowGraph &cfg, BasicBlockNode &bbn, const TTAMachine::Machine &targetMachine, int nodeCount)
virtual void handleBasicBlock(TTAProgram::BasicBlock &bb, const TTAMachine::Machine &targetMachine, TTAProgram::InstructionReferenceManager &irm, BasicBlockNode *bbn=NULL) override
const TTAMachine::Machine & targetMachine_
virtual void handleProgram(TTAProgram::Program &program, const TTAMachine::Machine &targetMachine) override
CopyingDelaySlotFiller * delaySlotFiller_
virtual DataDependenceGraph * createDDGFromBB(TTAProgram::BasicBlock &bb, const TTAMachine::Machine &mach)
virtual ~BBSchedulerController()
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 std::string longDescription() const override
int totalBasicBlocks_
Total basic blocks in the CFG currently being scheduled.
virtual void handleProcedure(TTAProgram::Procedure &procedure, const TTAMachine::Machine &targetMachine) override
virtual void handleControlFlowGraph(ControlFlowGraph &cfg, const TTAMachine::Machine &targetMachine) override
virtual void handleCFGDDG(ControlFlowGraph &cfg, DataDependenceGraph *ddg, const TTAMachine::Machine &targetMachine)