37 queue_.push_back(backedge);
41 if (curr == header)
continue;
44 if (curr_parent == header) {
52 queue_.push_back(curr_parent);
53 info.has_inner_loops =
true;
66 info.has_inner_loops =
true;
77 const Block* loop_header) {
80 body.insert(loop_header);
84 while (!queue.
empty()) {
87 if (body.find(curr) != body.end())
continue;
91 if (pred == loop_header)
continue;
void push_back(const T &value)
Block * NeighboringPredecessor() const
const Operation & LastOperation(const Graph &graph) const
Block * LastPredecessor() const
int OpCountUpperBound() const
FixedBlockSidetable< const Block * > loop_headers_
LoopInfo GetLoopInfo(const Block *block) const
ZoneVector< const Block * > queue_
ZoneUnorderedMap< const Block *, LoopInfo > loop_header_info_
LoopInfo VisitLoop(const Block *header)
const Graph * input_graph_
ZoneSet< const Block *, BlockCmp > GetLoopBody(const Block *loop_header)
Handle< SharedFunctionInfo > info
#define DCHECK_NOT_NULL(val)
#define DCHECK_GE(v1, v2)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)