• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/

Lines Matching refs:SafetyInfo

139                                   const LoopSafetyInfo *SafetyInfo,
142 BasicBlock *Dest, ICFLoopSafetyInfo *SafetyInfo,
146 const Loop *CurLoop, ICFLoopSafetyInfo *SafetyInfo,
151 const LoopSafetyInfo *SafetyInfo,
162 const LoopSafetyInfo *SafetyInfo, MemorySSAUpdater *MSSAU);
164 static void eraseInstruction(Instruction &I, ICFLoopSafetyInfo &SafetyInfo,
168 ICFLoopSafetyInfo &SafetyInfo,
334 ICFLoopSafetyInfo SafetyInfo;
335 SafetyInfo.computeLoopSafetyInfo(L);
351 CurAST.get(), MSSAU.get(), &SafetyInfo, Flags, ORE);
356 CurAST.get(), MSSAU.get(), SE, &SafetyInfo, Flags, ORE);
415 DT, TLI, L, CurAST.get(), MSSAU.get(), &SafetyInfo, ORE);
455 ICFLoopSafetyInfo *SafetyInfo,
461 CurLoop != nullptr && SafetyInfo != nullptr &&
489 eraseInstruction(I, *SafetyInfo, CurAST, MSSAU);
501 isNotUsedOrFreeInLoop(I, CurLoop, SafetyInfo, TTI, FreeInLoop) &&
504 if (sink(I, LI, DT, CurLoop, SafetyInfo, MSSAU, ORE)) {
508 eraseInstruction(I, *SafetyInfo, CurAST, MSSAU);
757 ScalarEvolution *SE, ICFLoopSafetyInfo *SafetyInfo,
762 CurLoop != nullptr && SafetyInfo != nullptr &&
799 eraseInstruction(I, *SafetyInfo, CurAST, MSSAU);
814 I, DT, CurLoop, SafetyInfo, ORE,
816 hoist(I, DT, CurLoop, CFH.getOrCreateHoistedBlock(BB), SafetyInfo,
831 SafetyInfo->insertInstructionTo(ReciprocalDivisor, I.getParent());
837 SafetyInfo->insertInstructionTo(Product, I.getParent());
840 eraseInstruction(I, *SafetyInfo, CurAST, MSSAU);
843 SafetyInfo, MSSAU, SE, ORE);
855 return SafetyInfo->isGuaranteedToExecute(I, DT, CurLoop) &&
856 SafetyInfo->doesNotWriteMemoryBefore(I, CurLoop);
861 hoist(I, DT, CurLoop, CFH.getOrCreateHoistedBlock(BB), SafetyInfo,
875 hoist(*PN, DT, CurLoop, CFH.getOrCreateHoistedBlock(BB), SafetyInfo,
913 moveInstructionBefore(*I, *HoistPoint, *SafetyInfo, MSSAU, SE);
1291 const LoopSafetyInfo *SafetyInfo,
1293 const auto &BlockColors = SafetyInfo->getBlockColors();
1324 const LoopSafetyInfo *SafetyInfo, MemorySSAUpdater *MSSAU) {
1327 const auto &BlockColors = SafetyInfo->getBlockColors();
1396 static void eraseInstruction(Instruction &I, ICFLoopSafetyInfo &SafetyInfo,
1402 SafetyInfo.removeInstruction(&I);
1407 ICFLoopSafetyInfo &SafetyInfo,
1410 SafetyInfo.removeInstruction(&I);
1411 SafetyInfo.insertInstructionTo(&I, Dest.getParent());
1425 const LoopSafetyInfo *SafetyInfo, const Loop *CurLoop,
1436 *I, *ExitBlock, *TPN, LI, SafetyInfo, MSSAU);
1440 static bool canSplitPredecessors(PHINode *PN, LoopSafetyInfo *SafetyInfo) {
1448 if (!SafetyInfo->getBlockColors().empty() && BB->getFirstNonPHI()->isEHPad())
1461 LoopSafetyInfo *SafetyInfo,
1504 const auto &BlockColors = SafetyInfo->getBlockColors();
1520 SafetyInfo->copyColors(NewPred, PredBB);
1532 const Loop *CurLoop, ICFLoopSafetyInfo *SafetyInfo,
1580 if (!canSplitPredecessors(PN, SafetyInfo))
1585 splitPredecessorsOfLoopExit(PN, DT, LI, CurLoop, SafetyInfo, MSSAU);
1621 PN, &I, LI, SunkCopies, SafetyInfo, CurLoop, MSSAU);
1623 eraseInstruction(*PN, *SafetyInfo, nullptr, nullptr);
1633 BasicBlock *Dest, ICFLoopSafetyInfo *SafetyInfo,
1651 !SafetyInfo->isGuaranteedToExecute(I, DT, CurLoop))
1656 moveInstructionBefore(I, *Dest->getFirstNonPHI(), *SafetyInfo, MSSAU, SE);
1659 moveInstructionBefore(I, *Dest->getTerminator(), *SafetyInfo, MSSAU, SE);
1679 const LoopSafetyInfo *SafetyInfo,
1686 SafetyInfo->isGuaranteedToExecute(Inst, DT, CurLoop);
1717 ICFLoopSafetyInfo &SafetyInfo;
1742 const AAMDNodes &AATags, ICFLoopSafetyInfo &SafetyInfo)
1747 SafetyInfo(SafetyInfo) {}
1800 SafetyInfo.removeInstruction(I);
1844 ICFLoopSafetyInfo *SafetyInfo, OptimizationRemarkEmitter *ORE) {
1847 CurAST != nullptr && SafetyInfo != nullptr &&
1906 if (SafetyInfo->anyBlockMayThrow()) {
1952 if (isSafeToExecuteUnconditionally(*Load, DT, CurLoop, SafetyInfo,
1977 if (SafetyInfo->isGuaranteedToExecute(*UI, DT, CurLoop)) {
2077 *SafetyInfo);
2109 eraseInstruction(*PreheaderLoad, *SafetyInfo, CurAST, MSSAU);