OpenASIP
2.0
|
#include <MoveGuard.hh>
Public Member Functions | |
MoveGuard (const TTAMachine::Guard &guard) | |
~MoveGuard () | |
bool | isUnconditional () const |
bool | isInverted () const |
const TTAMachine::Guard & | guard () const |
MoveGuard * | copy () const |
Private Member Functions | |
MoveGuard (const MoveGuard &) | |
Copying not allowed. More... | |
MoveGuard & | operator= (const MoveGuard &) |
Assignment not allowed. More... | |
Private Attributes | |
const TTAMachine::Guard * | guard_ |
The guard object. More... | |
Represents an execution predicate.
Wraps in the Guard class of the Machine Object Model.
Definition at line 47 of file MoveGuard.hh.
TTAProgram::MoveGuard::MoveGuard | ( | const TTAMachine::Guard & | guard | ) |
Constructor.
guard | The guard. |
Definition at line 49 of file MoveGuard.cc.
Referenced by copy().
TTAProgram::MoveGuard::~MoveGuard | ( | ) |
|
private |
Copying not allowed.
MoveGuard * TTAProgram::MoveGuard::copy | ( | ) | const |
Makes a copy of the move guard.
Definition at line 96 of file MoveGuard.cc.
References guard_, and MoveGuard().
Referenced by SimpleIfConverter::appendBB(), SimpleBrokerDirector::assign(), SimpleBrokerDirector::canAssign(), SimpleIfConverter::canConvert(), CopyingDelaySlotFiller::collectMoves(), TTAProgram::Move::copy(), MoveNodeDuplicator::duplicateMove(), llvm::LLVMTCEBuilder::emitInstruction(), CopyingDelaySlotFiller::getMove(), CallsToJumps::handleControlFlowGraph(), BFRemoveGuard::operator()(), BFRemoveGuardFromSucc::operator()(), BFOptimization::setJumpGuard(), and BFRemoveGuardFromSucc::undoOnlyMe().
const Guard & TTAProgram::MoveGuard::guard | ( | ) | const |
Returns the guard object.
Definition at line 86 of file MoveGuard.cc.
References guard_.
Referenced by CodeCompressorPlugin::addBitsForGuardField(), BusBroker::allAvailableResources(), ResourceConstraintAnalyzer::analyzeRegisterAntideps(), BusBroker::assign(), UtilizationStats::calculateForInstruction(), InputPSocketResource::canAssign(), PSocketResource::canAssign(), OutputPSocketResource::canAssign(), MachineConnectivityCheck::canBypass(), MachineConnectivityCheck::canBypassOpToDst(), SimpleIfConverter::canConvert(), MachineConnectivityCheck::canSourceWriteToAnyDestinationPort(), BusBroker::canTransportImmediate(), CopyingDelaySlotFiller::collectMoves(), MachineConnectivityCheck::copyOpFUs(), TTAProgram::CodeGenerator::createBreakOperation(), TTAProgram::ProgramWriter::createCodeSection(), POMDisassembler::createGuard(), TTAProgram::CodeGenerator::createInverseGuard(), DataDependenceGraph::destRenamed(), ExecutionPipelineResource::exclusiveMoves(), CopyingDelaySlotFiller::fillDelaySlots(), RegisterRenamer::findGuardRegisters(), CopyingDelaySlotFiller::findJump(), MachineConnectivityCheck::findPossibleDestinationPorts(), DataDependenceGraph::firstRegisterCycle(), DataDependenceGraph::fixInterBBAntiEdges(), CompiledSimCodeGenerator::generateGuardCondition(), CompiledSimCodeGenerator::generateGuardRead(), TTAProgram::Move::guardLatency(), DataDependenceGraph::guardRenamed(), DataDependenceGraph::guardsAllowBypass(), BusBroker::hasGuard(), OutputFUBroker::isApplicable(), BusBroker::isAvailable(), DataDependenceGraph::isNotAvoidable(), DataDependenceGraph::lastRegisterCycle(), DataDependenceGraph::lastScheduledRegisterGuardReads(), BFLateBypassGuard::operator()(), BFEarlyGuardBypass::operator()(), BFScheduleExact::operator()(), ProgramOperation::outputIndexFromGuardOfMove(), BF2Scheduler::possibleTempRegRFs(), DataDependenceGraphBuilder::processGuard(), SimProgramBuilder::processMove(), RegisterRenamer::renameLiveRange(), ExecutionPipelineResource::resultPort(), DataDependenceGraph::sanityCheck(), SequentialScheduler::scheduleMove(), BFRenameLiveRange::setGuard(), BFOptimization::setJumpGuard(), SimpleIfConverter::successors(), and PostpassOperandSharer::tryRemoveOperandWrite().
bool TTAProgram::MoveGuard::isInverted | ( | ) | const |
Tells whether the guard is inverted or not.
Definition at line 76 of file MoveGuard.cc.
References guard_, and TTAMachine::Guard::isInverted().
Referenced by LoopAnalyzer::analyze(), POMDisassembler::createGuard(), ControlFlowGraph::directJump(), ControlFlowEdge::edgePredicateFromMove(), DataDependenceGraph::exclusingGuards(), DataDependenceGraph::findLoopLimitAndIndex(), ControlFlowGraph::indirectJump(), BFLateBypassGuard::operator()(), BFEarlyGuardBypass::operator()(), ProgramDependenceGraph::removeGuardedJump(), and DataDependenceGraph::sameGuards().
bool TTAProgram::MoveGuard::isUnconditional | ( | ) | const |
Tells whether this guard is a constant true or false value.
Definition at line 65 of file MoveGuard.cc.
Referenced by POMDisassembler::createGuard().
|
private |
The guard object.
Definition at line 65 of file MoveGuard.hh.
Referenced by copy(), guard(), and isInverted().