reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Scalar/LoopFuse.cpp
 1146     assert(FC0.isValid() && FC1.isValid() &&
 1150                dbgs() << "Fusion Candidate 1: \n"; FC1.dump(););
 1156       return fuseGuardedLoops(FC0, FC1);
 1158     assert(FC1.Preheader == FC0.ExitBlock);
 1159     assert(FC1.Preheader->size() == 1 &&
 1160            FC1.Preheader->getSingleSuccessor() == FC1.Header);
 1160            FC1.Preheader->getSingleSuccessor() == FC1.Header);
 1177     FC1.Preheader->replaceSuccessorsPhiUsesWith(FC0.Preheader);
 1178     FC0.Latch->replaceSuccessorsPhiUsesWith(FC1.Latch);
 1200     FC0.ExitingBlock->getTerminator()->replaceUsesOfWith(FC1.Preheader,
 1201                                                          FC1.Header);
 1203         DominatorTree::Delete, FC0.ExitingBlock, FC1.Preheader));
 1205         DominatorTree::Insert, FC0.ExitingBlock, FC1.Header));
 1208     assert(pred_begin(FC1.Preheader) == pred_end(FC1.Preheader));
 1208     assert(pred_begin(FC1.Preheader) == pred_end(FC1.Preheader));
 1209     FC1.Preheader->getTerminator()->eraseFromParent();
 1210     new UnreachableInst(FC1.Preheader->getContext(), FC1.Preheader);
 1210     new UnreachableInst(FC1.Preheader->getContext(), FC1.Preheader);
 1212         DominatorTree::Delete, FC1.Preheader, FC1.Header));
 1212         DominatorTree::Delete, FC1.Preheader, FC1.Header));
 1215     while (PHINode *PHI = dyn_cast<PHINode>(&FC1.Header->front())) {
 1228     Instruction *L1HeaderIP = &FC1.Header->front();
 1230       int L1LatchBBIdx = LCPHI->getBasicBlockIndex(FC1.Latch);
 1246     FC0.Latch->getTerminator()->replaceUsesOfWith(FC0.Header, FC1.Header);
 1247     FC1.Latch->getTerminator()->replaceUsesOfWith(FC1.Header, FC0.Header);
 1247     FC1.Latch->getTerminator()->replaceUsesOfWith(FC1.Header, FC0.Header);
 1253           DominatorTree::Insert, FC0.Latch, FC1.Header));
 1258                                                        FC1.Latch, FC0.Header));
 1260                                                        FC1.Latch, FC1.Header));
 1260                                                        FC1.Latch, FC1.Header));
 1265     LI.removeBlock(FC1.Preheader);
 1266     DTU.deleteBB(FC1.Preheader);
 1271     SE.forgetLoop(FC1.L);
 1275     SmallVector<BasicBlock *, 8> Blocks(FC1.L->block_begin(),
 1276                                         FC1.L->block_end());
 1279       FC1.L->removeBlockFromLoop(BB);
 1280       if (LI.getLoopFor(BB) != FC1.L)
 1284     while (!FC1.L->empty()) {
 1285       const auto &ChildLoopIt = FC1.L->begin();
 1287       FC1.L->removeChildLoop(ChildLoopIt);
 1292     LI.erase(FC1.L);