/freebsd/contrib/llvm-project/llvm/lib/IR/ |
H A D | ProfDataUtils.cpp | 72 SmallVectorImpl<T> &Weights) { in extractFromBranchWeightMD() argument 78 Weights.resize(NOps - WeightsIdx); in extractFromBranchWeightMD() 86 Weights[Idx - WeightsIdx] = Weight->getZExtValue(); in extractFromBranchWeightMD() 164 SmallVectorImpl<uint32_t> &Weights) { in extractFromBranchWeightMD32() argument 165 extractFromBranchWeightMD(ProfileData, Weights); in extractFromBranchWeightMD32() 169 SmallVectorImpl<uint64_t> &Weights) { in extractFromBranchWeightMD64() argument 170 extractFromBranchWeightMD(ProfileData, Weights); in extractFromBranchWeightMD64() 174 SmallVectorImpl<uint32_t> &Weights) { in extractBranchWeights() argument 177 extractFromBranchWeightMD(ProfileData, Weights); in extractBranchWeights() 182 SmallVectorImpl<uint32_t> &Weights) { in extractBranchWeights() argument [all …]
|
H A D | MDBuilder.cpp | 52 MDNode *MDBuilder::createBranchWeights(ArrayRef<uint32_t> Weights, in createBranchWeights() argument 54 assert(Weights.size() >= 1 && "Need at least one branch weights!"); in createBranchWeights() 57 SmallVector<Metadata *, 4> Vals(Weights.size() + Offset); in createBranchWeights() 63 for (unsigned i = 0, e = Weights.size(); i != e; ++i) in createBranchWeights() 64 Vals[i + Offset] = createConstant(ConstantInt::get(Int32Ty, Weights[i])); in createBranchWeights()
|
H A D | Instructions.cpp | 3995 if (!Weights) in buildProfBranchWeightsMD() 3998 assert(SI.getNumSuccessors() == Weights->size() && in buildProfBranchWeightsMD() 4001 bool AllZeroes = all_of(*Weights, [](uint32_t W) { return W == 0; }); in buildProfBranchWeightsMD() 4003 if (AllZeroes || Weights->size() < 2) in buildProfBranchWeightsMD() 4006 return MDBuilder(SI.getParent()->getContext()).createBranchWeights(*Weights); in buildProfBranchWeightsMD() 4019 SmallVector<uint32_t, 8> Weights; in init() local 4020 if (!extractBranchWeights(ProfileData, Weights)) in init() 4022 this->Weights = std::move(Weights); in init() 4027 if (Weights) { in removeCase() 4028 assert(SI.getNumSuccessors() == Weights->size() && in removeCase() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | BlockFrequencyInfoImpl.cpp | 159 Weights.push_back(Weight(Type, Node, Amount)); in add() 178 static void combineWeightsBySorting(WeightList &Weights) { in combineWeightsBySorting() argument 180 llvm::sort(Weights, [](const Weight &L, const Weight &R) { in combineWeightsBySorting() 185 WeightList::iterator O = Weights.begin(); in combineWeightsBySorting() 186 for (WeightList::const_iterator I = O, L = O, E = Weights.end(); I != E; in combineWeightsBySorting() 196 Weights.erase(O, Weights.end()); in combineWeightsBySorting() 199 static void combineWeightsByHashing(WeightList &Weights) { in combineWeightsByHashing() argument 203 HashTable Combined(NextPowerOf2(2 * Weights.size())); in combineWeightsByHashing() 204 for (const Weight &W : Weights) in combineWeightsByHashing() 208 if (Weights.size() == Combined.size()) in combineWeightsByHashing() [all …]
|
H A D | BranchProbabilityInfo.cpp | 397 SmallVector<uint32_t, 2> Weights; in calcMetadataWeights() local 401 extractBranchWeights(WeightsNode, Weights); in calcMetadataWeights() 402 for (unsigned I = 0, E = Weights.size(); I != E; ++I) { in calcMetadataWeights() 403 WeightSum += Weights[I]; in calcMetadataWeights() 413 assert(Weights.size() == TI->getNumSuccessors() && "Checked above"); in calcMetadataWeights() 423 Weights[I] /= ScalingFactor; in calcMetadataWeights() 424 WeightSum += Weights[I]; in calcMetadataWeights() 432 Weights[I] = 1; in calcMetadataWeights() 439 BP.push_back({ Weights[I], static_cast<uint32_t>(WeightSum) }); in calcMetadataWeights() 673 SmallVector<uint32_t, 4> Weights; in getMaxEstimatedEdgeWeight() local
|
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/ |
H A D | ProfDataUtils.h | 78 SmallVectorImpl<uint32_t> &Weights); 83 SmallVectorImpl<uint32_t> &Weights); 88 SmallVectorImpl<uint64_t> &Weights); 97 SmallVectorImpl<uint32_t> &Weights); 130 void setBranchWeights(Instruction &I, ArrayRef<uint32_t> Weights,
|
H A D | MDBuilder.h | 79 MDNode *createBranchWeights(ArrayRef<uint32_t> Weights,
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | LoopPeel.cpp | 664 SmallVector<uint32_t> Weights; member 683 setBranchWeights(*Term, Info.Weights, /*IsExpected=*/false); in updateBranchWeights() 690 Info.Weights[Idx] = in updateBranchWeights() 691 Info.Weights[Idx] > SubWeight in updateBranchWeights() 692 ? std::max(Info.Weights[Idx] - SubWeight, SubWeight) in updateBranchWeights() 703 SmallVector<uint32_t> Weights; in initBranchWeights() local 704 if (!extractBranchWeights(*Term, Weights)) in initBranchWeights() 711 for (auto [Succ, Weight] : zip(successors(Term), Weights)) { in initBranchWeights() 723 for (auto [Succ, Weight] : zip(successors(Term), Weights)) { in initBranchWeights() 736 WeightInfos.insert({Term, {std::move(Weights), std::move(SubWeights)}}); in initBranchWeights() [all …]
|
H A D | SimplifyCFG.cpp | 864 static void setBranchWeights(SwitchInst *SI, ArrayRef<uint32_t> Weights, in setBranchWeights() argument 869 if (llvm::any_of(Weights, [](uint32_t W) { return W != 0; })) in setBranchWeights() 871 .createBranchWeights(Weights, IsExpected); in setBranchWeights() 1069 SmallVectorImpl<uint64_t> &Weights) { in GetBranchWeights() argument 1072 extractFromBranchWeightMD64(MD, Weights); in GetBranchWeights() 1078 assert(Weights.size() == 2); in GetBranchWeights() 1081 std::swap(Weights.front(), Weights.back()); in GetBranchWeights() 1086 static void FitWeights(MutableArrayRef<uint64_t> Weights) { in FitWeights() argument 1087 uint64_t Max = *llvm::max_element(Weights); in FitWeights() 1090 for (uint64_t &I : Weights) in FitWeights() [all …]
|
H A D | LoopRotationUtils.cpp | 289 SmallVector<uint32_t, 2> Weights; in updateBranchWeights() local 290 extractFromBranchWeightMD32(WeightMD, Weights); in updateBranchWeights() 291 if (Weights.size() != 2) in updateBranchWeights() 293 uint32_t OrigLoopExitWeight = Weights[0]; in updateBranchWeights() 294 uint32_t OrigLoopBackedgeWeight = Weights[1]; in updateBranchWeights()
|
H A D | Local.cpp | 224 SmallVector<uint32_t, 8> Weights; in ConstantFoldTerminator() local 225 extractBranchWeights(MD, Weights); in ConstantFoldTerminator() 230 Weights[0] += Weights[Idx + 1]; in ConstantFoldTerminator() 232 std::swap(Weights[Idx + 1], Weights.back()); in ConstantFoldTerminator() 233 Weights.pop_back(); in ConstantFoldTerminator() 234 setBranchWeights(*SI, Weights, hasBranchWeightOrigin(MD)); in ConstantFoldTerminator() 317 SmallVector<uint32_t> Weights; in ConstantFoldTerminator() local 318 if (extractBranchWeights(*SI, Weights) && Weights.size() == 2) { in ConstantFoldTerminator() 319 uint32_t DefWeight = Weights[0]; in ConstantFoldTerminator() 320 uint32_t CaseWeight = Weights[1]; in ConstantFoldTerminator()
|
/freebsd/contrib/llvm-project/compiler-rt/lib/fuzzer/ |
H A D | FuzzerCorpus.h | 509 Weights.resize(N); in UpdateCorpusDistribution() 532 Weights[i] = 0.; in UpdateCorpusDistribution() 536 Weights[i] = 0.; in UpdateCorpusDistribution() 539 Weights[i] = Inputs[i]->Energy; in UpdateCorpusDistribution() 543 if (Weights[i] > 0.0) in UpdateCorpusDistribution() 550 Weights[i] = in UpdateCorpusDistribution() 562 Printf("%f ", Weights[i]); in UpdateCorpusDistribution() 563 Printf("Weights\n"); in UpdateCorpusDistribution() 566 Intervals.begin(), Intervals.end(), Weights.begin()); in UpdateCorpusDistribution() 571 std::vector<double> Weights; 570 std::vector<double> Weights; global() variable [all...] |
H A D | FuzzerDataFlowTrace.cpp | 193 auto Weights = Coverage.FunctionWeights(NumFunctions); in Init() local 197 Intervals.begin(), Intervals.end(), Weights.begin()); in Init() 204 if (Weights[i] == 0.0) in Init() 207 Weights[i], Coverage.GetNumberOfBlocks(i), in Init()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | LowerExpectIntrinsic.cpp | 97 SmallVector<uint32_t, 16> Weights(n + 1, UnlikelyBranchWeightVal); in handleSwitchExpect() local 100 Weights[Index] = LikelyBranchWeightVal; in handleSwitchExpect() 102 misexpect::checkExpectAnnotations(SI, Weights, /*IsFrontend=*/true); in handleSwitchExpect() 105 setBranchWeights(SI, Weights, /*IsExpected=*/true); in handleSwitchExpect()
|
H A D | JumpThreading.cpp | 226 uint32_t Weights[2]; in updatePredecessorProfileMetadata() local 228 Weights[0] = BP.getNumerator(); in updatePredecessorProfileMetadata() 229 Weights[1] = BP.getCompl().getNumerator(); in updatePredecessorProfileMetadata() 231 Weights[0] = BP.getCompl().getNumerator(); in updatePredecessorProfileMetadata() 232 Weights[1] = BP.getNumerator(); in updatePredecessorProfileMetadata() 234 setBranchWeights(*PredBr, Weights, hasBranchWeightOrigin(*PredBr)); in updatePredecessorProfileMetadata() 2603 SmallVector<uint32_t, 4> Weights; in updateBlockFreqAndEdgeWeight() local 2605 Weights.push_back(Prob.getNumerator()); in updateBlockFreqAndEdgeWeight() 2608 setBranchWeights(*TI, Weights, hasBranchWeightOrigin(*TI)); in updateBlockFreqAndEdgeWeight()
|
H A D | LoopPredication.cpp | 921 SmallVector<uint32_t> Weights; in parseLoopLatchICmp() 922 extractBranchWeights(ProfileData, Weights); in parseLoopLatchICmp() 924 for (auto [i, Weight] : llvm::enumerate(Weights)) { in parseLoopLatchICmp() 1003 SmallVector<uint32_t> Weights; isLoopProfitableToPredicate() local
|
H A D | SimpleLoopUnswitch.cpp | 3044 SmallVector<uint32_t> Weights; in shouldTryInjectBasingOnMetadata() 3045 if (!extractBranchWeights(*BI, Weights)) in shouldTryInjectBasingOnMetadata() 3050 assert(Weights.size() == 2 && "Unexpected profile data!"); in shouldTryInjectBasingOnMetadata() 3052 auto Num = Weights[Idx]; in shouldTryInjectBasingOnMetadata() 3053 auto Denom = Weights[0] + Weights[1]; in shouldTryInjectBasingOnMetadata() 3043 SmallVector<uint32_t> Weights; shouldTryInjectBasingOnMetadata() local
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ |
H A D | PGOInstrumentation.cpp | 1479 SmallVector<uint32_t, 4> Weights; in populateCoverage() local 1481 Weights.push_back((Coverage[Succ] || !Coverage[&BB]) ? 1 : 0); in populateCoverage() 1482 if (Weights.size() >= 2) in populateCoverage() 1483 llvm::setBranchWeights(*BB.getTerminator(), Weights, in populateCoverage() 2299 SmallVector<unsigned, 4> Weights; in setProfMetadata() local 2301 Weights.push_back(scaleBranchCount(ECI, Scale)); in setProfMetadata() 2304 : Weights) { in setProfMetadata() 2308 misexpect::checkExpectAnnotations(*TI, Weights, /*IsFrontend=*/false); in setProfMetadata() 2310 setBranchWeights(*TI, Weights, /*IsExpected=*/false); in setProfMetadata() 2317 std::accumulate(Weights.begin(), Weights.end(), (uint64_t)0, in setProfMetadata() [all …]
|
H A D | ControlHeightReduction.cpp | 1878 uint32_t Weights[] = { in fixupBranchesAndSelects() local 1882 setBranchWeights(*MergedBR, Weights, /*IsExpected=*/false); in fixupBranchesAndSelects() 1883 CHR_DEBUG(dbgs() << "CHR branch bias " << Weights[0] << ":" << Weights[1] in fixupBranchesAndSelects()
|
/freebsd/contrib/llvm-project/clang/lib/CodeGen/ |
H A D | CodeGenPGO.cpp | 1468 CodeGenFunction::createProfileWeights(ArrayRef<uint64_t> Weights) const { in createProfileWeights() 1470 if (Weights.size() < 2) in createProfileWeights() 1474 uint64_t MaxWeight = *std::max_element(Weights.begin(), Weights.end()); in createProfileWeights() 1482 ScaledWeights.reserve(Weights.size()); in createProfileWeights() 1483 for (uint64_t W : Weights) in createProfileWeights()
|
H A D | CGStmt.cpp | 1039 llvm::MDNode *Weights = in EmitWhileStmt() local 1041 if (!Weights && CGM.getCodeGenOpts().OptimizationLevel) in EmitWhileStmt() 1044 Builder.CreateCondBr(BoolCondVal, LoopBody, ExitBlock, Weights); in EmitWhileStmt() 1254 llvm::MDNode *Weights = in EmitForStmt() local 1256 if (!Weights && CGM.getCodeGenOpts().OptimizationLevel) in EmitForStmt() 1260 Builder.CreateCondBr(BoolCondVal, ForBody, ExitBlock, Weights); in EmitForStmt() 1357 llvm::MDNode *Weights = in EmitCXXForRangeStmt() local 1359 if (!Weights && CGM.getCodeGenOpts().OptimizationLevel) in EmitCXXForRangeStmt() 1362 Builder.CreateCondBr(BoolCondVal, ForBody, ExitBlock, Weights); in EmitCXXForRangeStmt() 1678 llvm::MDNode *Weights = nullptr; in EmitCaseStmtRange() local [all …]
|
H A D | CGDeclCXX.cpp | 418 llvm::MDNode *Weights; in EmitCXXGuardedInitBranch() local 424 Weights = nullptr; in EmitCXXGuardedInitBranch() 437 Weights = MDHelper.createBranchWeights(1, NumInits - 1); in EmitCXXGuardedInitBranch() 440 Builder.CreateCondBr(NeedsInit, InitBlock, NoInitBlock, Weights); in EmitCXXGuardedInitBranch()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | StackProtector.cpp | 671 MDNode *Weights = MDBuilder(F->getContext()) 676 /*Unreachable=*/false, Weights, DTU, 588 MDNode *Weights = MDBuilder(F->getContext()) InsertStackProtectors() local
|
H A D | SafeStack.cpp | 472 MDNode *Weights = MDBuilder(F.getContext()) in checkStackGuard() local 476 SplitBlockAndInsertIfThen(Cmp, &RI, /* Unreachable */ true, Weights, DTU); in checkStackGuard()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
H A D | SampleProfile.cpp | 1697 SmallVector<uint32_t, 4> Weights; in generateMDProfMetadata() local 1728 Weights.push_back(static_cast<uint32_t>( in generateMDProfMetadata() 1738 Weights.push_back(static_cast<uint32_t>(W)); in generateMDProfMetadata() 1748 misexpect::checkExpectAnnotations(*TI, Weights, /*IsFrontend=*/false); in generateMDProfMetadata() 1762 setBranchWeights(*TI, Weights, /*IsExpected=*/false); in generateMDProfMetadata()
|