Go to the documentation of this file.
19 pop_ = std::make_shared<ProgramOperation>(op);
41 for (
int i =
ddg().rootGraph()->inDegree(
mn_)-1; i >= 0; i--) {
43 if (e.isRAW() && !e.headPseudo()) {
49 for (
int i =
ddg().rootGraph()->outDegree(
mn_)-1; i >= 0; i--) {
51 if (e.isRegisterOrRA() && !e.isRAW() && !e.tailPseudo()) {
71 for (
int i =
ddg().rootGraph()->outDegree(*
regCopy_)-1; i >= 0; i--) {
73 if (e.isRegisterOrRA() && !e.isRAW() && !e.tailPseudo()) {
79 for (
int i =
ddg().rootGraph()->inDegree(*
regCopy_)-1; i >= 0; i--) {
81 if (e.isRAW() && !e.headPseudo()) {
virtual void connectNodes(const Node &nTail, const Node &nHead, Edge &e)
virtual Edge & outEdge(const Node &node, const int index) const
Operation & operation(const char *name)
TTAProgram::TerminalFUPort * createTerminalFUPort(const TCEString &opName, int operand)
virtual void moveOutEdge(const Node &source, const Node &destination, Edge &edge, const Node *head=NULL, bool childs=false)
const TTAMachine::Machine & targetMachine() const
std::shared_ptr< ProgramOperation > ProgramOperationPtr
bool splitMove(BasicBlockNode &bbn)
virtual void moveInEdge(const Node &source, const Node &destination, Edge &edge, const Node *tail=NULL, bool childs=false)
virtual void disconnectNodes(const Node &nTail, const Node &nHead)
void setSourceOperationPtr(ProgramOperationPtr po)
void setDestination(Terminal *dst)
@ ANN_CONN_CANDIDATE_UNIT_SRC
Src. unit candidate.
void addDestinationOperationPtr(ProgramOperationPtr po)
virtual Edge & inEdge(const Node &node, const int index) const
void unsetSourceOperation()
DataDependenceGraph & ddg()
void addAnnotation(const ProgramAnnotation &annotation)
TTAProgram::Move & move()
void removeDestinationOperation(const ProgramOperation *po)
MachineConnectivityCheck::FUSet candidateFUs_
virtual Terminal * copy() const =0
Terminal & source() const
void removeAnnotations(ProgramAnnotation::Id id=ProgramAnnotation::ANN_UNDEF_ID)
void setSource(Terminal *src)
@ ANN_CONN_CANDIDATE_UNIT_DST
Dst. unit candidate.