| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | BlockFrequencyInfo.cpp | 144 const BlockFrequencyInfo *BFI) { in getEdgeAttributes() 145 return BFIDOTGTraitsBase::getEdgeAttributes(Node, EI, BFI, BFI->getBPI(), in getEdgeAttributes() 161 : BFI(std::move(Arg.BFI)) {} in BlockFrequencyInfo() 165 BFI = std::move(RHS.BFI); in operator =() 187 if (!BFI) in calculate() 188 BFI.reset(new ImplType); in calculate() 189 BFI->calculate(F, BPI, LI); in calculate() 201 return BFI ? BFI->getBlockFreq(BB) : BlockFrequency(0); in getBlockFreq() 207 if (!BFI) in getBlockProfileCount() 210 return BFI->getBlockProfileCount(*getFunction(), BB, AllowSynthetic); in getBlockProfileCount() [all …]
|
| H A D | CFGPrinter.cpp | 61 static void writeCFGToDotFile(Function &F, BlockFrequencyInfo *BFI, in writeCFGToDotFile() argument 71 DOTFuncInfo CFGInfo(&F, BFI, BPI, MaxFreq); in writeCFGToDotFile() 83 static void viewCFG(Function &F, const BlockFrequencyInfo *BFI, in viewCFG() argument 86 DOTFuncInfo CFGInfo(&F, BFI, BPI, MaxFreq); in viewCFG() 94 DOTFuncInfo::DOTFuncInfo(const Function *F, const BlockFrequencyInfo *BFI, in DOTFuncInfo() argument 96 : F(F), BFI(BFI), BPI(BPI), MaxFreq(MaxFreq) { in DOTFuncInfo() 99 RawWeights = !!BFI; // Print RawWeights when BFI is available. in DOTFuncInfo() 113 auto *BFI = &AM.getResult<BlockFrequencyAnalysis>(F); in run() local 115 viewCFG(F, BFI, BPI, getMaxFreq(F, BFI)); in run() 123 auto *BFI = &AM.getResult<BlockFrequencyAnalysis>(F); in run() local [all …]
|
| H A D | OptimizationRemarkEmitter.cpp | 28 : F(F), BFI(nullptr) { in OptimizationRemarkEmitter() 45 BFI = OwnedBFI.get(); in OptimizationRemarkEmitter() 53 BFI = nullptr; in invalidate() 57 if (BFI && Inv.invalidate<BlockFrequencyAnalysis>(F, PA)) in invalidate() 66 if (!BFI) in computeHotness() 69 return BFI->getBlockProfileCount(cast<BasicBlock>(V)); in computeHotness() 97 BlockFrequencyInfo *BFI; in runOnFunction() local 101 BFI = &getAnalysis<LazyBlockFrequencyInfoPass>().getBFI(); in runOnFunction() 110 BFI = nullptr; in runOnFunction() 112 ORE = std::make_unique<OptimizationRemarkEmitter>(&Fn, BFI); in runOnFunction() [all …]
|
| H A D | BlockFrequencyInfoImpl.cpp | 304 static void cleanup(BlockFrequencyInfoImplBase &BFI) { in cleanup() argument 305 std::vector<FrequencyData> SavedFreqs(std::move(BFI.Freqs)); in cleanup() 306 SparseBitVector<> SavedIsIrrLoopHeader(std::move(BFI.IsIrrLoopHeader)); in cleanup() 307 BFI.clear(); in cleanup() 308 BFI.Freqs = std::move(SavedFreqs); in cleanup() 309 BFI.IsIrrLoopHeader = std::move(SavedIsIrrLoopHeader); in cleanup() 435 static void debugAssign(const BlockFrequencyInfoImplBase &BFI, in debugAssign() argument 442 dbgs() << " to " << BFI.getBlockName(T); in debugAssign() 482 static void convertFloatingToInteger(BlockFrequencyInfoImplBase &BFI, in convertFloatingToInteger() argument 502 for (size_t Index = 0; Index < BFI.Freqs.size(); ++Index) { in convertFloatingToInteger() [all …]
|
| H A D | ProfileSummaryInfo.cpp | 75 const CallBase &Call, BlockFrequencyInfo *BFI, bool AllowSynthetic) const { in getProfileCount() argument 88 if (BFI) in getProfileCount() 89 return BFI->getBlockProfileCount(Call.getParent(), AllowSynthetic); in getProfileCount() 205 BlockFrequencyInfo *BFI) const { in isHotCallSite() 206 auto C = getProfileCount(CB, BFI); in isHotCallSite() 211 BlockFrequencyInfo *BFI) const { in isColdCallSite() 212 auto C = getProfileCount(CB, BFI); in isColdCallSite()
|
| H A D | HeatUtils.cpp | 53 uint64_t getMaxFreq(const Function &F, const BlockFrequencyInfo *BFI) { in getMaxFreq() argument 56 uint64_t freqVal = BFI->getBlockFreq(&BB).getFrequency(); in getMaxFreq()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | SizeOpts.cpp | 65 BlockFrequencyInfo &BFI) { in isFunctionColdInCallGraph() 66 return PSI->isFunctionColdInCallGraph(F, BFI); in isFunctionColdInCallGraph() 71 BlockFrequencyInfo &BFI) { in isFunctionHotInCallGraphNthPercentile() 72 return PSI->isFunctionHotInCallGraphNthPercentile(CutOff, F, BFI); in isFunctionHotInCallGraphNthPercentile() 77 BlockFrequencyInfo &BFI) { in isFunctionColdInCallGraphNthPercentile() 78 return PSI->isFunctionColdInCallGraphNthPercentile(CutOff, F, BFI); in isFunctionColdInCallGraphNthPercentile() 82 BlockFrequencyInfo *BFI) { in isColdBlock() 83 return PSI->isColdBlock(BB, BFI); in isColdBlock() 88 BlockFrequencyInfo *BFI) { in isHotBlockNthPercentile() 89 return PSI->isHotBlockNthPercentile(CutOff, BB, BFI); in isHotBlockNthPercentile() [all …]
|
| H A D | BreakCriticalEdges.cpp | 351 BlockFrequencyInfo *BFI) { in SplitIndirectBrCriticalEdges() argument 364 bool ShouldUpdateAnalysis = BPI && BFI; in SplitIndirectBrCriticalEdges() 396 BFI->setBlockFreq(BodyBlock, BFI->getBlockFreq(Target)); in SplitIndirectBrCriticalEdges() 419 BlockFreqForDirectSucc += BFI->getBlockFreq(Src) * in SplitIndirectBrCriticalEdges() 423 BFI->setBlockFreq(DirectSucc, BlockFreqForDirectSucc); in SplitIndirectBrCriticalEdges() 425 BFI->getBlockFreq(Target) - BlockFreqForDirectSucc; in SplitIndirectBrCriticalEdges() 426 BFI->setBlockFreq(Target, NewBlockFreqForTarget); in SplitIndirectBrCriticalEdges()
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | ProfileSummaryInfo.h | 105 getProfileCount(const CallBase &CallInst, BlockFrequencyInfo *BFI, 128 bool isFunctionHotInCallGraph(const FuncT *F, BFIT &BFI) const { in isFunctionHotInCallGraph() argument 140 if (isHotBlock(&BB, &BFI)) in isFunctionHotInCallGraph() 148 bool isFunctionColdInCallGraph(const FuncT *F, BFIT &BFI) const { in isFunctionColdInCallGraph() argument 160 if (!isColdBlock(&BB, &BFI)) in isFunctionColdInCallGraph() 170 const FuncT *F, BFIT &BFI) const { in isFunctionHotInCallGraphNthPercentile() argument 172 PercentileCutoff, F, BFI); in isFunctionHotInCallGraphNthPercentile() 178 const FuncT *F, BFIT &BFI) const { in isFunctionColdInCallGraphNthPercentile() argument 180 PercentileCutoff, F, BFI); in isFunctionColdInCallGraphNthPercentile() 200 bool isHotBlock(const BBType *BB, BFIT *BFI) const { in isHotBlock() argument [all …]
|
| H A D | OptimizationRemarkEmitter.h | 35 OptimizationRemarkEmitter(const Function *F, BlockFrequencyInfo *BFI) in OptimizationRemarkEmitter() argument 36 : F(F), BFI(BFI) {} in OptimizationRemarkEmitter() 52 : F(Arg.F), BFI(Arg.BFI) {} in OptimizationRemarkEmitter() 56 BFI = RHS.BFI; 115 BlockFrequencyInfo *BFI; variable 129 bool shouldEmitVerbose() { return BFI != nullptr; } in shouldEmitVerbose()
|
| H A D | BlockFrequencyInfo.h | 41 std::unique_ptr<ImplType> BFI; variable 110 LLVM_ABI Printable printBlockFreq(const BlockFrequencyInfo &BFI, 115 LLVM_ABI Printable printBlockFreq(const BlockFrequencyInfo &BFI, 148 BlockFrequencyInfo BFI; variable 156 BlockFrequencyInfo &getBFI() { return BFI; } in getBFI() 157 const BlockFrequencyInfo &getBFI() const { return BFI; } in getBFI()
|
| H A D | LazyBlockFrequencyInfo.h | 49 BFI.calculate( in getCalculated() 53 return BFI; in getCalculated() 61 BFI.releaseMemory(); in releaseMemory() 67 BlockFrequencyInfoT BFI;
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
| H A D | SizeOpts.h | 53 BFIT *BFI, PGSOQueryType QueryType) { in shouldFuncOptimizeForSizeImpl() argument 55 if (!PSI || !BFI || !PSI->hasProfileSummary()) in shouldFuncOptimizeForSizeImpl() 62 return PSI->isFunctionColdInCallGraph(F, *BFI); in shouldFuncOptimizeForSizeImpl() 67 *BFI); in shouldFuncOptimizeForSizeImpl() 69 *BFI); in shouldFuncOptimizeForSizeImpl() 74 ProfileSummaryInfo *PSI, BFIT *BFI, in shouldOptimizeForSizeImpl() argument 76 if (!PSI || !BFI || !PSI->hasProfileSummary()) in shouldOptimizeForSizeImpl() 83 return PSI->isColdBlock(BBOrBlockFreq, BFI); in shouldOptimizeForSizeImpl() 88 BFI); in shouldOptimizeForSizeImpl() 89 return !PSI->isHotBlockNthPercentile(PgsoCutoffInstrProf, BBOrBlockFreq, BFI); in shouldOptimizeForSizeImpl() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | LoopSink.cpp | 79 BlockFrequencyInfo &BFI) { in adjustedSumFreq() argument 82 T += BFI.getBlockFreq(B); in adjustedSumFreq() 118 DominatorTree &DT, BlockFrequencyInfo &BFI) { in findBBsToSinkInto() argument 141 if (adjustedSumFreq(BBsDominatedByColdestBB, BFI) > in findBBsToSinkInto() 142 BFI.getBlockFreq(ColdestBB)) { in findBBsToSinkInto() 162 if (adjustedSumFreq(BBsToSinkInto, BFI) <= BFI.getBlockFreq(ColdestBB)) in findBBsToSinkInto() 176 if (adjustedSumFreq(BBsToSinkInto, BFI) > in findBBsToSinkInto() 177 BFI.getBlockFreq(L.getLoopPreheader())) in findBBsToSinkInto() 189 DominatorTree &DT, BlockFrequencyInfo &BFI, MemorySSAUpdater *MSSAU) { in sinkInstruction() argument 225 findBBsToSinkInto(L, BBs, ColdLoopBBs, DT, BFI); in sinkInstruction() [all …]
|
| H A D | ConstantHoisting.cpp | 213 static void findBestInsertionSet(DominatorTree &DT, BlockFrequencyInfo &BFI, in findBestInsertionSet() argument 281 if (InsertPtsFreq > BFI.getBlockFreq(Node) || in findBestInsertionSet() 282 (InsertPtsFreq == BFI.getBlockFreq(Node) && InsertPts.size() > 1)) in findBestInsertionSet() 301 (InsertPtsFreq > BFI.getBlockFreq(Node) || in findBestInsertionSet() 302 (InsertPtsFreq == BFI.getBlockFreq(Node) && InsertPts.size() > 1)))) { in findBestInsertionSet() 304 ParentPtsFreq += BFI.getBlockFreq(Node); in findBestInsertionSet() 330 if (BFI) { in findConstantInsertionPoint() 331 findBestInsertionSet(*DT, *BFI, Entry, BBs); in findConstantInsertionPoint() 920 DominatorTree &DT, BlockFrequencyInfo *BFI, in runImpl() argument 924 this->BFI = BFI; in runImpl() [all …]
|
| H A D | TailRecursionElimination.cpp | 410 BlockFrequencyInfo *const BFI; member in __anone41365f00511::TailRecursionEliminator 442 DomTreeUpdater &DTU, BlockFrequencyInfo *BFI) in TailRecursionEliminator() argument 443 : F(F), TTI(TTI), AA(AA), ORE(ORE), DTU(DTU), BFI(BFI), in TailRecursionEliminator() 445 BFI ? BFI->getBlockFreq(&F.getEntryBlock()).getFrequency() : 0U), in TailRecursionEliminator() 447 if (BFI) { in TailRecursionEliminator() 475 DomTreeUpdater &DTU, BlockFrequencyInfo *BFI); 767 static_cast<double>(BFI->getBlockFreq(BB).getFrequency()) / in eliminateCall() 909 BlockFrequencyInfo *BFI) { in eliminate() argument 925 TailRecursionEliminator TRE(F, TTI, AA, ORE, DTU, BFI); in eliminate() 994 auto *BFI = (!ForceDisableBFI && UpdateFunctionEntryCount && in run() local [all …]
|
| H A D | LoopLoadElimination.cpp | 171 DominatorTree *DT, BlockFrequencyInfo *BFI, in LoadEliminationForLoop() argument 173 : L(L), LI(LI), LAI(LAI), DT(DT), BFI(BFI), PSI(PSI), PSE(LAI.getPSE()) {} in LoadEliminationForLoop() 588 if (llvm::shouldOptimizeForSize(HeaderBB, PSI, BFI, in processLoop() 636 BlockFrequencyInfo *BFI; member in __anon087f49260311::LoadEliminationForLoop 645 BlockFrequencyInfo *BFI, in eliminateLoadsAcrossLoops() argument 672 LoadEliminationForLoop LEL(L, &LI, LAIs.getInfo(*L), &DT, BFI, PSI); in eliminateLoadsAcrossLoops() 692 auto *BFI = (PSI && PSI->hasProfileSummary()) ? in run() local 696 bool Changed = eliminateLoadsAcrossLoops(F, LI, DT, BFI, PSI, &SE, &AC, LAIs); in run()
|
| H A D | JumpThreading.cpp | 296 BFI = BFI_; in runImpl() 2294 auto *BFI = getOrCreateBFI(HasProfile); in threadThroughTwoBasicBlocks() local 2295 auto *BPI = getOrCreateBPI(BFI != nullptr); in threadThroughTwoBasicBlocks() 2306 if (BFI) { in threadThroughTwoBasicBlocks() 2308 auto NewBBFreq = BFI->getBlockFreq(PredPredBB) * in threadThroughTwoBasicBlocks() 2310 BFI->setBlockFreq(NewBB, NewBBFreq); in threadThroughTwoBasicBlocks() 2410 auto *BFI = getOrCreateBFI(HasProfile); in threadEdge() local 2411 auto *BPI = getOrCreateBPI(BFI != nullptr); in threadEdge() 2436 if (BFI) { in threadEdge() 2439 BFI->getBlockFreq(PredBB) * BPI->getEdgeProbability(PredBB, BB); in threadEdge() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ |
| H A D | PGOMemOPSizeOpt.cpp | 177 MemOPSizeOpt(Function &Func, BlockFrequencyInfo &BFI, in MemOPSizeOpt() argument 180 : Func(Func), BFI(BFI), ORE(ORE), DT(DT), TLI(TLI), Changed(false) {} in MemOPSizeOpt() 216 BlockFrequencyInfo &BFI; member in __anona03ef4830111::MemOPSizeOpt 260 auto BBEdgeCount = BFI.getBlockProfileCount(MO.I->getParent()); in perform() 368 auto OrigBBFreq = BFI.getBlockFreq(BB); in perform() 376 BFI.setBlockFreq(MergeBB, OrigBBFreq); in perform() 453 static bool PGOMemOPSizeOptImpl(Function &F, BlockFrequencyInfo &BFI, in PGOMemOPSizeOptImpl() argument 461 MemOPSizeOpt MemOPSizeOpt(F, BFI, ORE, DT, TLI); in PGOMemOPSizeOptImpl() 468 auto &BFI = FAM.getResult<BlockFrequencyAnalysis>(F); in run() local 472 bool Changed = PGOMemOPSizeOptImpl(F, BFI, ORE, DT, TLI); in run()
|
| H A D | LowerAllowCheckPass.cpp | 74 static bool removeUbsanTraps(Function &F, const BlockFrequencyInfo &BFI, in removeUbsanTraps() argument 104 cutoff, BFI.getBlockProfileCount(&BB).value_or(0))); in removeUbsanTraps() 158 BlockFrequencyInfo &BFI = AM.getResult<BlockFrequencyAnalysis>(F); in run() local 162 return removeUbsanTraps(F, BFI, PSI, ORE, Opts) in run()
|
| H A D | CGProfile.cpp | 69 auto &BFI = FAM.getResult<BlockFrequencyAnalysis>(F); in runCGProfilePass() local 70 if (BFI.getEntryFreq() == BlockFrequency(0)) in runCGProfilePass() 74 std::optional<uint64_t> BBCount = BFI.getBlockProfileCount(&BB); in runCGProfilePass()
|
| H A D | PGOForceFunctionAttrs.cpp | 29 BlockFrequencyInfo &BFI = FAM.getResult<BlockFrequencyAnalysis>(F); in shouldRunOnFunction() local 30 return PSI.isFunctionColdInCallGraph(&F, BFI); in shouldRunOnFunction()
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation/ |
| H A D | CFGMST.h | 55 BlockFrequencyInfo *const BFI; variable 123 (BFI != nullptr ? BFI->getEntryFreq().getFrequency() : 2); in buildEdges() 147 (BFI != nullptr ? BFI->getBlockFreq(&BB).getFrequency() : 2); in buildEdges() 324 BlockFrequencyInfo *BFI = nullptr, LoopInfo *LI = nullptr) 325 : F(Func), BPI(BPI), BFI(BFI), LI(LI), in F()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
| H A D | HotColdSplitting.cpp | 235 BlockFrequencyInfo *BFI) const { in isBasicBlockCold() 236 if (BFI) { in isBasicBlockCold() 237 if (PSI->isColdBlock(BB, BFI)) in isBasicBlockCold() 414 const CodeExtractorAnalysisCache &CEAC, BlockFrequencyInfo *BFI, in extractColdRegion() argument 434 markFunctionCold(*OutF, BFI != nullptr); in extractColdRegion() 665 BlockFrequencyInfo *BFI = nullptr; in outlineColdRegions() local 667 BFI = GetBFI(F); in outlineColdRegions() 688 if (!isBasicBlockCold(BB, ColdProbThresh, AnnotatedColdBlocks, BFI)) in outlineColdRegions() 768 extractColdRegion(*BCE.first, BCE.second, CEAC, BFI, TTI, ORE); in outlineColdRegions()
|
| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | ExpandMemCmp.cpp | 832 ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI, in expandMemCmp() argument 855 bool OptForSize = llvm::shouldOptimizeForSize(CI->getParent(), PSI, BFI); in expandMemCmp() 893 BlockFrequencyInfo *BFI, DomTreeUpdater *DTU); 899 BlockFrequencyInfo *BFI, DominatorTree *DT); 924 auto *BFI = (PSI && PSI->hasProfileSummary()) ? in runOnFunction() local 930 auto PA = runImpl(F, TLI, TTI, TL, PSI, BFI, DT); in runOnFunction() 948 BlockFrequencyInfo *BFI, DomTreeUpdater *DTU) { in runOnBlock() argument 957 expandMemCmp(CI, TTI, TL, &DL, PSI, BFI, DTU, Func == LibFunc_bcmp)) { in runOnBlock() 967 BlockFrequencyInfo *BFI, DominatorTree *DT) { in runImpl() argument 975 if (runOnBlock(*BBIt, TLI, TTI, TL, DL, PSI, BFI, DTU ? &*DTU : nullptr)) { in runImpl() [all …]
|