Lines Matching refs:Loop
44 class Loop {
46 Loop* parent() const { return parent_; }
47 const ZoneVector<Loop*>& children() const { return children_; }
58 explicit Loop(Zone* zone)
66 Loop* parent_;
68 ZoneVector<Loop*> children_;
76 Loop* ContainingLoop(Node* node) {
84 bool Contains(const Loop* loop, Node* node) {
85 for (Loop* c = ContainingLoop(node); c != nullptr; c = c->parent_) {
92 const ZoneVector<Loop*>& outer_loops() const { return outer_loops_; }
95 ZoneVector<const Loop*> inner_loops() const {
96 ZoneVector<const Loop*> inner_loops(zone_);
97 for (const Loop& loop : all_loops_) {
105 // Return the unique loop number for a given loop. Loop numbers start at {1}.
106 int LoopNum(const Loop* loop) const {
111 NodeRange HeaderNodes(const Loop* loop) {
117 Node* HeaderNode(const Loop* loop);
120 NodeRange BodyNodes(const Loop* loop) {
126 NodeRange ExitNodes(const Loop* loop) {
132 NodeRange LoopNodes(const Loop* loop) {
138 Node* GetLoopControl(const Loop* loop) {
151 Loop* NewLoop() {
152 all_loops_.push_back(Loop(zone_));
153 Loop* result = &all_loops_.back();
157 void SetParent(Loop* parent, Loop* child) {
168 ZoneVector<Loop*> outer_loops_;
169 ZoneVector<Loop> all_loops_;
180 static bool HasMarkedExits(LoopTree* loop_tree_, const LoopTree::Loop* loop);