OpenASIP
2.0
|
#include <ProcedurePass.hh>
Public Member Functions | |
ProcedurePass (InterPassData &data) | |
virtual | ~ProcedurePass () |
virtual void | handleProcedure (TTAProgram::Procedure &procedure, const TTAMachine::Machine &targetMachine) |
Public Member Functions inherited from SchedulerPass | |
SchedulerPass (InterPassData &data) | |
virtual | ~SchedulerPass () |
InterPassData & | interPassData () |
virtual std::string | shortDescription () const =0 |
virtual std::string | longDescription () const |
Static Public Member Functions | |
static void | copyCfgToProcedure (TTAProgram::Procedure &procedure, ControlFlowGraph &cfg) |
static void | executeControlFlowGraphPass (TTAProgram::Procedure &procedure, const TTAMachine::Machine &targetmachine, ControlFlowGraphPass &cfgp) |
Interface for scheduler passes that handle procedures.
Definition at line 53 of file ProcedurePass.hh.
ProcedurePass::ProcedurePass | ( | InterPassData & | data | ) |
|
virtual |
|
static |
Definition at line 86 of file ProcedurePass.cc.
References __func__, TTAProgram::Instruction::address(), assert, BasicBlockNode::basicBlock(), TTAProgram::Instruction::copy(), TTAMachine::ControlUnit::delaySlots(), TTAProgram::Move::destination(), TTAProgram::TerminalFUPort::functionUnit(), BasicBlockNode::hasOriginalAddress(), TTAProgram::InstructionReferenceManager::hasReference(), TTAProgram::Procedure::insertAfter(), TTAProgram::InstructionReference::instruction(), TTAProgram::CodeSnippet::instructionAt(), TTAProgram::CodeSnippet::instructionAtIndex(), TTAProgram::CodeSnippet::instructionCount(), TTAProgram::Terminal::instructionReference(), TTAProgram::Program::instructionReferenceManager(), TTAProgram::CodeSnippet::isInProgram(), TTAProgram::Terminal::isInstructionAddress(), TTAProgram::Move::isJump(), BasicBlockNode::isNormalBB(), TTAProgram::Program::lastProcedure(), TTAProgram::Address::location(), TTAProgram::Instruction::move(), TTAProgram::Instruction::moveCount(), TTAProgram::Program::moveProcedure(), TTAProgram::Program::nextProcedure(), BoostGraph< GraphNode, GraphEdge >::node(), BoostGraph< GraphNode, GraphEdge >::nodeCount(), BasicBlockNode::originalEndAddress(), BasicBlockNode::originalStartAddress(), TTAProgram::CodeSnippet::parent(), TTAProgram::Procedure::remove(), TTAProgram::Instruction::removeMove(), TTAProgram::InstructionReferenceManager::replace(), TTAProgram::BasicBlock::skippedFirstInstructions(), and TTAProgram::Move::source().
Referenced by executeControlFlowGraphPass().
|
static |
Definition at line 257 of file ProcedurePass.cc.
References copyCfgToProcedure(), and ControlFlowGraphPass::handleControlFlowGraph().
Referenced by handleProcedure().
|
virtual |
Handles a single procedure.
proecude | The procedure to handle. |
machine | The target machine if any. (NullMachine::instance() if target machine is irrelevant). |
In | case handling is unsuccesful for any reason (procedure might still get modified). |
Reimplemented in BBSchedulerController, AbsoluteToRelativeJumps, PreOptimizer, SequentialScheduler, and SimpleIfConverter.
Definition at line 73 of file ProcedurePass.cc.
References abortWithError, and executeControlFlowGraphPass().
Referenced by ProgramPass::executeProcedurePass().