Lines Matching refs:loop_
57 BasicBlock* pre_header = loop_->GetOrCreatePreHeaderBlock();
59 loop_->ComputeLoopStructuredOrder(&ordered_loop_blocks);
71 // Make the |loop_|'s preheader the |cloned_loop_| one.
77 cfg.RemoveEdge(pre_header->id(), loop_->GetHeaderBlock()->id());
79 loop_->SetPreHeaderBlock(nullptr);
82 // |cloned_loop_| shares the same block as |loop_|.
83 // We mutate all branches from |cloned_loop_| block to |loop_|'s merge into a
84 // branch to |loop_|'s header (so header will also be the merge of
87 for (uint32_t pred_id : cfg.preds(loop_->GetMergeBlock()->id())) {
88 if (loop_->IsInsideLoop(pred_id)) continue;
93 if (*succ == loop_->GetMergeBlock()->id())
94 *succ = loop_->GetHeaderBlock()->id();
99 cfg.RemoveNonExistingEdges(loop_->GetMergeBlock()->id());
100 cfg.AddEdge(cloned_loop_exit, loop_->GetHeaderBlock()->id());
132 loop_->GetHeaderBlock()->ForEachPhiInst([cloned_loop_exit, def_use_mgr,
136 if (!loop_->IsInsideLoop(phi->GetSingleWordInOperand(i + 1))) {
150 cloned_loop_->SetMergeBlock(loop_->GetOrCreatePreHeaderBlock());
222 uint32_t condition_block_id = cfg.preds(loop_->GetMergeBlock()->id())[0];
227 GetBlocksInPath(condition_block_id, loop_->GetHeaderBlock()->id(),
255 loop_->GetHeaderBlock()->ForEachPhiInst(
258 if (!loop_->GetMergeBlock()) {
261 if (cfg.preds(loop_->GetMergeBlock()->id()).size() != 1) {
266 uint32_t condition_block_id = cfg.preds(loop_->GetMergeBlock()->id())[0];
268 auto& header_pred = cfg.preds(loop_->GetHeaderBlock()->id());
272 loop_->GetHeaderBlock()->ForEachPhiInst(
289 loop_->GetHeaderBlock()->ForEachPhiInst(
295 GetIteratorUpdateOperations(loop_, phi, &operations);
450 BasicBlock* if_merge_block = loop_->GetMergeBlock();
451 loop_->SetMergeBlock(CreateBlockBefore(loop_->GetMergeBlock()));
455 ProtectLoop(loop_, has_remaining_iteration, if_merge_block);
774 if (bb && loop_->IsInsideLoop(bb)) {
787 if (!bb || !loop_->IsInsideLoop(bb)) {
854 bool is_lhs_rec = !scev_analysis_->IsLoopInvariant(loop_, lhs);
855 bool is_rhs_rec = !scev_analysis_->IsLoopInvariant(loop_, rhs);
863 lhs->AsSERecurrentNode()->GetLoop() != loop_) {
869 rhs->AsSERecurrentNode()->GetLoop() != loop_) {
963 assert(scev_analysis_->IsLoopInvariant(loop_, lhs));
964 assert(scev_analysis_->IsLoopInvariant(loop_, rhs));