OpenASIP  2.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
TTAProgram::MoveGuard Class Reference

#include <MoveGuard.hh>

Collaboration diagram for TTAProgram::MoveGuard:
Collaboration graph

Public Member Functions

 MoveGuard (const TTAMachine::Guard &guard)
 
 ~MoveGuard ()
 
bool isUnconditional () const
 
bool isInverted () const
 
const TTAMachine::Guardguard () const
 
MoveGuardcopy () const
 

Private Member Functions

 MoveGuard (const MoveGuard &)
 Copying not allowed. More...
 
MoveGuardoperator= (const MoveGuard &)
 Assignment not allowed. More...
 

Private Attributes

const TTAMachine::Guardguard_
 The guard object. More...
 

Detailed Description

Represents an execution predicate.

Wraps in the Guard class of the Machine Object Model.

Definition at line 47 of file MoveGuard.hh.

Constructor & Destructor Documentation

◆ MoveGuard() [1/2]

TTAProgram::MoveGuard::MoveGuard ( const TTAMachine::Guard guard)

Constructor.

Parameters
guardThe guard.

Definition at line 49 of file MoveGuard.cc.

49  :
50  guard_(&guard) {
51 }

Referenced by copy().

◆ ~MoveGuard()

TTAProgram::MoveGuard::~MoveGuard ( )

Destructor.

Definition at line 56 of file MoveGuard.cc.

56  {
57 }

◆ MoveGuard() [2/2]

TTAProgram::MoveGuard::MoveGuard ( const MoveGuard )
private

Copying not allowed.

Member Function Documentation

◆ copy()

MoveGuard * TTAProgram::MoveGuard::copy ( ) const

◆ guard()

const Guard & TTAProgram::MoveGuard::guard ( ) const

Returns the guard object.

Returns
The guard object.

Definition at line 86 of file MoveGuard.cc.

86  {
87  return *guard_;
88 }

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().

◆ isInverted()

bool TTAProgram::MoveGuard::isInverted ( ) const

Tells whether the guard is inverted or not.

Returns
True if the Boolean value computed out of the contents of the source register is inverted.

Definition at line 76 of file MoveGuard.cc.

76  {
77  return guard_->isInverted();
78 }

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().

Here is the call graph for this function:

◆ isUnconditional()

bool TTAProgram::MoveGuard::isUnconditional ( ) const

Tells whether this guard is a constant true or false value.

Returns
false always.

Definition at line 65 of file MoveGuard.cc.

65  {
66  return false;
67 }

Referenced by POMDisassembler::createGuard().

◆ operator=()

MoveGuard& TTAProgram::MoveGuard::operator= ( const MoveGuard )
private

Assignment not allowed.

Member Data Documentation

◆ guard_

const TTAMachine::Guard* TTAProgram::MoveGuard::guard_
private

The guard object.

Definition at line 65 of file MoveGuard.hh.

Referenced by copy(), guard(), and isInverted().


The documentation for this class was generated from the following files:
TTAMachine::Guard::isInverted
virtual bool isInverted() const
TTAProgram::MoveGuard::MoveGuard
MoveGuard(const TTAMachine::Guard &guard)
Definition: MoveGuard.cc:49
TTAProgram::MoveGuard::guard_
const TTAMachine::Guard * guard_
The guard object.
Definition: MoveGuard.hh:65
TTAProgram::MoveGuard::guard
const TTAMachine::Guard & guard() const
Definition: MoveGuard.cc:86