OpenASIP
2.0
|
#include <BFCopyRegWithOp.hh>
Public Member Functions | |
BFCopyRegWithOp (BF2Scheduler &sched, MoveNode &mn, int lc, MachineConnectivityCheck::FUSet candidateFUs) | |
virtual | ~BFCopyRegWithOp () |
Public Member Functions inherited from BFRegCopy | |
BFRegCopy (BF2Scheduler &sched, MoveNode &mn, int lc) | |
bool | operator() () |
MoveNode * | getRegCopy () |
void | undoOnlyMe () |
void | undoDDG () |
void | createAntidepsForReg (MoveNode &firstMove, MoveNode &lastMove, const TTAMachine::RegisterFile &rf, int index, TCEString regName, BasicBlockNode &bbn, bool loopScheduling) |
Public Member Functions inherited from BFOptimization | |
BFOptimization (BF2Scheduler &sched) | |
virtual bool | isFinishFront () |
virtual void | mightBeReady (MoveNode &mn) |
Public Member Functions inherited from Reversible | |
virtual void | undo () |
virtual | ~Reversible () |
void | deleteChildren (std::stack< Reversible * > &children) |
int | id () |
Reversible () | |
Protected Member Functions | |
bool | splitMove (BasicBlockNode &bbn) |
void | undoSplit () |
Protected Member Functions inherited from BFRegCopy | |
MoveNode * | createRegCopy (bool after) |
Protected Member Functions inherited from BFOptimization | |
DataDependenceGraph & | ddg () |
DataDependenceGraph * | rootDDG () |
const DataDependenceGraph & | ddg () const |
DataDependenceGraph * | prologDDG () |
SimpleResourceManager & | rm () const |
SimpleResourceManager * | prologRM () const |
BUMoveNodeSelector & | selector () |
const TTAMachine::Machine & | targetMachine () const |
unsigned int | ii () const |
MoveNodeDuplicator & | duplicator () const |
virtual bool | assign (int cycle, MoveNode &, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU_=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, const TTAMachine::Bus *prologBus=nullptr, int immWriteCycle=-1, int prologImmWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1, bool ignoreGuardWriteCycle=false) |
virtual void | unassign (MoveNode &mn, bool disposePrologCopy=true) |
virtual int | rmEC (int cycle, MoveNode &mn, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, const TTAMachine::Bus *prologBus=nullptr, int immWriteCycle=-1, int prologImmWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) |
virtual int | rmLC (int cycle, MoveNode &mn, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, const TTAMachine::Bus *prologBus=nullptr, int immWriteCycle=-1, int prologImmWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) |
virtual bool | canAssign (int cycle, MoveNode &mn, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, const TTAMachine::Bus *prologBus=nullptr, int immWriteCycle=-1, int prologImmWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1, bool ignoreGWN=false) |
bool | putAlsoToPrologEpilog (int cycle, MoveNode &mn) |
void | setPrologSrcFUAnno (MoveNode &prologMN, MoveNode &loopMN) |
void | setPrologDstFUAnno (MoveNode &prologMN, MoveNode &loopMN) |
void | setJumpGuard (MoveNode &mn) |
void | unsetJumpGuard (MoveNode &mn) |
bool | needJumpGuard (const MoveNode &mn, int cycle) |
int | jumpGuardAvailableCycle (const MoveNode &mn) |
bool | canBeSpeculated (const Operation &op) |
bool | canBeSpeculated (const MoveNode &mn) |
bool | usePrologMove (const MoveNode &mn) |
bool | canBeScheduled (const MoveNode &mn) |
const TTAMachine::RegisterFile * | RFReadPortCountPreventsScheduling (const MoveNode &mn) |
bool | immCountPreventsScheduling (const MoveNode &mn) |
Protected Member Functions inherited from Reversible | |
bool | runPreChild (Reversible *preChild) |
bool | runPostChild (Reversible *preChild) |
bool | runChild (std::stack< Reversible * > &children, Reversible *child) |
bool | runChild (Reversible *child, bool pre) |
void | undoAndRemovePreChildren () |
void | undoAndRemovePostChildren () |
void | undoAndRemoveChildren (std::stack< Reversible * > &children) |
Protected Attributes | |
ProgramOperationPtr | pop_ |
MachineConnectivityCheck::FUSet | candidateFUs_ |
Protected Attributes inherited from BFRegCopy | |
MoveNode & | mn_ |
MoveNode * | regCopy_ |
int | lc_ |
Protected Attributes inherited from BFOptimization | |
BF2Scheduler & | sched_ |
Protected Attributes inherited from Reversible | |
std::stack< Reversible * > | preChildren_ |
std::stack< Reversible * > | postChildren_ |
Additional Inherited Members | |
Static Public Member Functions inherited from BFOptimization | |
static void | clearPrologMoves () |
static MoveNode * | getSisterTrigger (const MoveNode &mn, const TTAMachine::Machine &mach) |
Static Protected Attributes inherited from BFOptimization | |
static std::map< MoveNode *, MoveNode *, MoveNode::Comparator > | prologMoves_ |
Definition at line 8 of file BFCopyRegWithOp.hh.
|
inline |
Definition at line 10 of file BFCopyRegWithOp.hh.
|
inlinevirtual |
Definition at line 13 of file BFCopyRegWithOp.hh.
|
protectedvirtual |
Implements BFRegCopy.
Definition at line 15 of file BFCopyRegWithOp.cc.
References TTAProgram::AnnotatedInstructionElement::addAnnotation(), MoveNode::addDestinationOperationPtr(), TTAProgram::ProgramAnnotation::ANN_CONN_CANDIDATE_UNIT_DST, TTAProgram::ProgramAnnotation::ANN_CONN_CANDIDATE_UNIT_SRC, candidateFUs_, BoostGraph< GraphNode, GraphEdge >::connectNodes(), TTAProgram::CodeGenerator::createTerminalFUPort(), BFOptimization::ddg(), DataDependenceEdge::DEP_UNKNOWN, DataDependenceEdge::EDGE_OPERATION, BoostGraph< GraphNode, GraphEdge >::inEdge(), BFRegCopy::mn_, MoveNode::move(), BoostGraph< GraphNode, GraphEdge >::moveInEdge(), BoostGraph< GraphNode, GraphEdge >::moveOutEdge(), OperationPool::operation(), BoostGraph< GraphNode, GraphEdge >::outEdge(), pop_, BFRegCopy::regCopy_, BoostGraph< GraphNode, GraphEdge >::rootGraph(), TTAProgram::Move::setDestination(), TTAProgram::Move::setSource(), MoveNode::setSourceOperationPtr(), and BFOptimization::targetMachine().
|
protectedvirtual |
Implements BFRegCopy.
Definition at line 65 of file BFCopyRegWithOp.cc.
References TTAProgram::ProgramAnnotation::ANN_CONN_CANDIDATE_UNIT_SRC, TTAProgram::Terminal::copy(), BFOptimization::ddg(), BoostGraph< GraphNode, GraphEdge >::disconnectNodes(), BoostGraph< GraphNode, GraphEdge >::inEdge(), BFRegCopy::mn_, MoveNode::move(), BoostGraph< GraphNode, GraphEdge >::moveInEdge(), BoostGraph< GraphNode, GraphEdge >::moveOutEdge(), BoostGraph< GraphNode, GraphEdge >::outEdge(), pop_, BFRegCopy::regCopy_, TTAProgram::AnnotatedInstructionElement::removeAnnotations(), MoveNode::removeDestinationOperation(), BoostGraph< GraphNode, GraphEdge >::rootGraph(), TTAProgram::Move::setSource(), TTAProgram::Move::source(), and MoveNode::unsetSourceOperation().
|
protected |
Definition at line 18 of file BFCopyRegWithOp.hh.
Referenced by splitMove().
|
protected |
Definition at line 17 of file BFCopyRegWithOp.hh.
Referenced by splitMove(), and undoSplit().