Lines Matching refs:Loop
40 class Loop {
42 using ChildrenList = std::vector<Loop*>;
49 explicit Loop(IRContext* context) in Loop() function
59 Loop(IRContext* context, DominatorAnalysis* analysis, BasicBlock* header,
160 for (const Loop* loop = GetParent(); loop; loop = loop->GetParent()) lvl++; in GetDepth()
169 inline void AddNestedLoop(Loop* nested) { in AddNestedLoop()
175 inline Loop* GetParent() { return parent_; } in GetParent()
176 inline const Loop* GetParent() const { return parent_; } in GetParent()
208 for (Loop* loop = this; loop != nullptr; loop = loop->parent_) { in AddBasicBlock()
217 for (Loop* loop = this; loop != nullptr; loop = loop->parent_) { in RemoveBasicBlock()
268 inline void RemoveChildLoop(Loop* loop) { in RemoveChildLoop()
283 for (const Loop* child : nested_loops_) { in AreAllChildrenMarkedForRemoval()
297 inline void SetParent(Loop* parent) { parent_ = parent; } in SetParent()
375 Loop* parent_;
421 using iterator = PostOrderTreeDFIterator<Loop>;
422 using const_iterator = PostOrderTreeDFIterator<const Loop>;
424 using pre_iterator = TreeDFIterator<Loop>;
425 using const_pre_iterator = TreeDFIterator<const Loop>;
451 inline Loop& GetLoopByIndex(size_t index) const { in GetLoopByIndex()
459 std::vector<Loop*> GetLoopsInBinaryLayoutOrder();
462 inline Loop* operator[](uint32_t block_id) const {
467 inline Loop* operator[](const BasicBlock* bb) const {
496 inline void SetBasicBlockToLoop(uint32_t bb_id, Loop* loop) { in SetBasicBlockToLoop()
502 inline void AddLoop(Loop* loop_to_add, Loop* parent) { in AddLoop()
521 Loop* AddLoopNest(std::unique_ptr<Loop> new_loop);
524 void RemoveLoop(Loop* loop);
526 void SetAsTopLoop(Loop* loop) { in SetAsTopLoop()
533 Loop* GetDummyRootLoop() { return &dummy_top_loop_; } in GetDummyRootLoop()
534 const Loop* GetDummyRootLoop() const { return &dummy_top_loop_; } in GetDummyRootLoop()
539 using LoopContainerType = std::vector<Loop*>;
540 using LoopsToAddContainerType = std::vector<std::pair<Loop*, Loop*>>;
546 inline Loop* FindLoopForBasicBlock(uint32_t block_id) const { in FindLoopForBasicBlock()
547 std::unordered_map<uint32_t, Loop*>::const_iterator it = in FindLoopForBasicBlock()
560 Loop dummy_top_loop_;
562 std::unordered_map<uint32_t, Loop*> basic_block_to_loop_;