Go to the documentation of this file.
50 std::list<MoveNode*> guardRemoveNodes;
52 for (
auto e: outEdges) {
57 std::cerr <<
"guard edge to uncond move?" << head.
toString()
63 int cycle = head.
cycle();
68 guardRemoveNodes.push_back(&head);
79 for (
auto i: guardRemoveNodes) {
std::stack< Reversible * > postChildren_
std::string toString() const
virtual Node & headNode(const Edge &edge) const
bool isUnconditional() const
bool canBeSpeculated(const Operation &op)
std::set< DataDependenceEdge *, typename DataDependenceEdge ::Comparator > EdgeSet
DataDependenceGraph & ddg()
SimpleResourceManager & rm() const
virtual EdgeSet outEdges(const Node &node) const
TTAProgram::Move & move()
virtual int latestCycle(MoveNode &node, const TTAMachine::Bus *bus=NULL, const TTAMachine::FunctionUnit *srcFU=NULL, const TTAMachine::FunctionUnit *dstFU=NULL, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const override
bool runPostChild(Reversible *preChild)
bool operator()() override
int latestCycle(const MoveNode &moveNode, unsigned int ii=UINT_MAX, bool ignoreRegAntideps=false, bool ignoreUnscheduledSuccessors=true, bool ignoreGuards=false, bool ignoreFUDeps=false, bool ignoreSameOperationEdges=false) const