reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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);