|
OpenASIP 2.2
|
#include <BFLateBypasses.hh>


Public Member Functions | |
| BFLateBypasses (BF2Scheduler &sched, MoveNode &src, int lc) | |
| virtual bool | operator() () |
| bool | removedSource () |
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 () | |
Private Attributes | |
| MoveNode & | src_ |
| int | lc_ |
| bool | removedSource_ |
| int | bypassDistance_ |
Additional Inherited Members | |
Static Public Member Functions inherited from BFOptimization | |
| static void | clearPrologMoves () |
| static MoveNode * | getSisterTrigger (const MoveNode &mn, const TTAMachine::Machine &mach) |
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) |
| virtual void | undoOnlyMe () |
Protected Attributes inherited from BFOptimization | |
| BF2Scheduler & | sched_ |
Protected Attributes inherited from Reversible | |
| std::stack< Reversible * > | preChildren_ |
| std::stack< Reversible * > | postChildren_ |
Static Protected Attributes inherited from BFOptimization | |
| static std::map< MoveNode *, MoveNode *, MoveNode::Comparator > | prologMoves_ |
Definition at line 44 of file BFLateBypasses.hh.
| BFLateBypasses::BFLateBypasses | ( | BF2Scheduler & | sched, |
| MoveNode & | src, | ||
| int | lc | ||
| ) |
Definition at line 53 of file BFLateBypasses.cc.
References SchedulerCmdLineOptions::bypassDistance(), bypassDistance_, and Application::cmdLineOptions().

|
virtual |
This performs the operation. Returns true if success, false if fail.
Implements Reversible.
Definition at line 66 of file BFLateBypasses.cc.
References TTAMachine::Machine::alwaysWriteResults(), assert, bypassDistance_, MachineConnectivityCheck::canSourceWriteToAnyDestinationPort(), MoveNode::cycle(), BFOptimization::ddg(), TTAProgram::Move::destination(), DataDependenceGraph::guardsAllowBypass(), MoveNode::isScheduled(), MoveNode::isSourceOperation(), lc_, MoveNode::move(), DataDependenceGraph::onlyRegisterRawDestinationsWithEdges(), TTAProgram::Terminal::port(), removedSource_, BFOptimization::rm(), Reversible::runPostChild(), Reversible::runPreChild(), BFOptimization::sched_, src_, BFOptimization::targetMachine(), MoveNode::toString(), and Reversible::undoAndRemovePreChildren().

|
inline |
Definition at line 49 of file BFLateBypasses.hh.
References removedSource_.
Referenced by BFScheduleBU::operator()(), and BFScheduleTD::operator()().
|
private |
Definition at line 54 of file BFLateBypasses.hh.
Referenced by BFLateBypasses(), and operator()().
|
private |
Definition at line 52 of file BFLateBypasses.hh.
Referenced by operator()().
|
private |
Definition at line 53 of file BFLateBypasses.hh.
Referenced by operator()(), and removedSource().
|
private |
Definition at line 51 of file BFLateBypasses.hh.
Referenced by operator()().