OpenASIP
2.0
|
#include <Guard.hh>
Public Member Functions | |
virtual | ~Guard () |
virtual Bus * | parentBus () const |
virtual void | setParentBus (Bus *parentBus) |
virtual bool | isEqual (const Guard &guard) const =0 |
virtual bool | isInverted () const |
virtual bool | isMoreRestrictive (const Guard &guard) const |
virtual bool | isLessRestrictive (const Guard &guard) const |
virtual bool | isOpposite (const Guard &guard) const =0 |
virtual bool | isDisjoint (const Guard &guard) const |
virtual void | copyTo (Bus &parentBus) const =0 |
virtual ObjectState * | saveState () const |
virtual void | loadState (const ObjectState *state) |
Public Member Functions inherited from Serializable | |
virtual | ~Serializable () |
Static Public Attributes | |
static const std::string | OSNAME_GUARD = "guard" |
ObjectState name for guard. More... | |
static const std::string | OSKEY_INVERTED = "inverted" |
ObjectState attribute key for inverted feature. More... | |
Protected Member Functions | |
Guard (bool inverted, Bus *parentBus) | |
Guard (const ObjectState *state, Bus &parentBus) | |
Protected Member Functions inherited from TTAMachine::SubComponent | |
SubComponent () | |
virtual | ~SubComponent () |
Protected Member Functions inherited from TTAMachine::MachinePart | |
MachinePart () | |
virtual | ~MachinePart () |
Private Attributes | |
bool | inverted_ |
Indicated whether the condition term is inverted. More... | |
Bus * | parent_ |
The parent bus of the guard. More... | |
Guard expression representing an execution predicate.
Evaluates to true (execute) or false (don't execute). This is a base class for real Guards.
|
virtual |
Destructor.
Definition at line 90 of file Guard.cc.
References parent_, and TTAMachine::Bus::removeGuard().
|
protected |
Constructor.
inverted | Indicates whether the condition term is inverted. |
parentBus | Parent bus component of the guard. |
|
protected |
Constructor.
Loads its state from the given ObjectState instance.
state | The ObjectState instance from which the state is loaded. |
parentBus | Parent bus of the guard. |
ObjectStateLoadingException | If the given ObjectState instance is invalid. |
Definition at line 83 of file Guard.cc.
References loadState().
|
pure virtual |
Implemented in TTAMachine::UnconditionalGuard, TTAMachine::RegisterGuard, and TTAMachine::PortGuard.
Referenced by TTAMachine::Bus::copyGuardsTo(), and PasteComponentCmd::Do().
|
virtual |
Checks whether this guard and given one are disjoint.
The guards are disjoint if neither is the exact subset of the other.
guard | The guard to compare. |
Definition at line 138 of file Guard.cc.
References isEqual().
|
pure virtual |
Implemented in TTAMachine::UnconditionalGuard, TTAMachine::RegisterGuard, and TTAMachine::PortGuard.
Referenced by BusBroker::allAvailableResources(), BusBroker::assign(), BusBroker::canTransportImmediate(), DataDependenceGraph::guardsAllowBypass(), BusBroker::hasGuard(), TTAMachine::Bus::isArchitectureEqual(), BusBroker::isAvailable(), isDisjoint(), DataDependenceGraph::isNotAvoidable(), and PostpassOperandSharer::tryRemoveOperandWrite().
|
virtual |
Referenced by CodeCompressorPlugin::addBitsForGuardField(), BEMGenerator::addEncodings(), BEMValidator::checkGuardField(), TTAMachine::PortGuard::copyTo(), TTAMachine::RegisterGuard::copyTo(), TTAMachine::UnconditionalGuard::copyTo(), TTAProgram::CodeGenerator::createBreakOperation(), TTAProgram::ProgramWriter::createCodeSection(), llvm::LLVMTCEBuilder::createGuard(), TTAProgram::CodeGenerator::createInverseGuard(), ProgramDependenceGraph::createJump(), findBooleanGuard(), TTAProgram::TPEFProgramFactory::findGuard(), DefaultDecoderGenerator::findGuard(), RegisterRenamer::findGuardRegisters(), CompiledSimCodeGenerator::generateGuardCondition(), MachineConnectivityCheck::hasBothGuards(), TTAMachine::PortGuard::isEqual(), TTAMachine::RegisterGuard::isEqual(), TTAMachine::UnconditionalGuard::isEqual(), TTAProgram::MoveGuard::isInverted(), TTAMachine::PortGuard::isOpposite(), TTAMachine::RegisterGuard::isOpposite(), ListCompareFunction(), RFGuardDialog::onOK(), BusDialog::onUnconditionalGuard(), BFLateBypassGuard::operator()(), BFEarlyGuardBypass::operator()(), SimProgramBuilder::processMove(), MachineResourceManager::registerFileIndexReference(), RegisterRenamer::renameLiveRange(), MachineResourceManager::rFPortOrFUIndexReference(), BFRenameLiveRange::setGuard(), SimpleIfConverter::successors(), MachineInfo::supportsPortGuardedJump(), BusDialog::updateGuardLists(), and DefaultDecoderGenerator::writeSquashSignalSubstitution().
|
virtual |
|
virtual |
|
pure virtual |
Implemented in TTAMachine::RegisterGuard, TTAMachine::PortGuard, and TTAMachine::UnconditionalGuard.
Referenced by InputPSocketResource::canAssign(), PSocketResource::canAssign(), OutputPSocketResource::canAssign(), ExecutionPipelineResource::exclusiveMoves(), DataDependenceGraph::isNotAvoidable(), and PostpassOperandSharer::tryRemoveOperandWrite().
|
virtual |
Loads its state from the given ObjectState instance.
state | The ObjectState instance. |
ObjectStateLoadingException | If the given ObjectState is invalid. |
Implements Serializable.
Reimplemented in TTAMachine::UnconditionalGuard, TTAMachine::RegisterGuard, and TTAMachine::PortGuard.
Definition at line 164 of file Guard.cc.
References Exception::errorMessage(), ObjectState::intAttribute(), inverted_, and OSKEY_INVERTED.
Referenced by Guard(), TTAMachine::PortGuard::loadState(), TTAMachine::RegisterGuard::loadState(), and TTAMachine::UnconditionalGuard::loadState().
|
virtual |
Referenced by SimpleIfConverter::canConvert(), ProgrammabilityValidator::checkBooleanRegister(), TTAMachine::PortGuard::copyTo(), TTAMachine::RegisterGuard::copyTo(), TTAMachine::UnconditionalGuard::copyTo(), TTAProgram::CodeGenerator::createInverseGuard(), RegisterRenamer::findGuardRegisters(), ProgrammabilityValidator::findRegisterGuard(), TTAProgram::Move::guardLatency(), TTAMachine::PortGuard::loadState(), TTAMachine::RegisterGuard::loadState(), BFScheduleExact::operator()(), TTAMachine::PortGuard::PortGuard(), TTAMachine::RegisterGuard::RegisterGuard(), TTAMachine::Bus::removeGuard(), RegisterRenamer::renameLiveRange(), BFRenameLiveRange::setGuard(), setParentBus(), and TTAMachine::UnconditionalGuard::UnconditionalGuard().
|
virtual |
Saves the state of the object to an ObjectState object.
Implements Serializable.
Reimplemented in TTAMachine::UnconditionalGuard, TTAMachine::RegisterGuard, and TTAMachine::PortGuard.
Definition at line 149 of file Guard.cc.
References inverted_, OSKEY_INVERTED, OSNAME_GUARD, and ObjectState::setAttribute().
Referenced by TTAMachine::Bus::saveState(), TTAMachine::PortGuard::saveState(), TTAMachine::RegisterGuard::saveState(), and TTAMachine::UnconditionalGuard::saveState().
|
inlinevirtual |
|
private |
Indicated whether the condition term is inverted.
Definition at line 85 of file Guard.hh.
Referenced by loadState(), and saveState().
|
static |
ObjectState attribute key for inverted feature.
Definition at line 77 of file Guard.hh.
Referenced by loadState(), and saveState().
|
static |
|
private |
The parent bus of the guard.
Definition at line 87 of file Guard.hh.
Referenced by setParentBus(), and ~Guard().