diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2022-07-04 19:20:19 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2023-02-08 19:02:26 +0000 |
commit | 81ad626541db97eb356e2c1d4a20eb2a26a766ab (patch) | |
tree | 311b6a8987c32b1e1dcbab65c54cfac3fdb56175 /contrib/llvm-project/llvm/lib/Analysis/BranchProbabilityInfo.cpp | |
parent | 5fff09660e06a66bed6482da9c70df328e16bbb6 (diff) | |
parent | 145449b1e420787bb99721a429341fa6be3adfb6 (diff) |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Analysis/BranchProbabilityInfo.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Analysis/BranchProbabilityInfo.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/contrib/llvm-project/llvm/lib/Analysis/BranchProbabilityInfo.cpp b/contrib/llvm-project/llvm/lib/Analysis/BranchProbabilityInfo.cpp index ffb80134749a..1d880424e55c 100644 --- a/contrib/llvm-project/llvm/lib/Analysis/BranchProbabilityInfo.cpp +++ b/contrib/llvm-project/llvm/lib/Analysis/BranchProbabilityInfo.cpp @@ -414,8 +414,7 @@ bool BranchProbabilityInfo::calcMetadataWeights(const BasicBlock *BB) { const LoopBlock DstLoopBB = getLoopBlock(TI->getSuccessor(I - 1)); auto EstimatedWeight = getEstimatedEdgeWeight({SrcLoopBB, DstLoopBB}); if (EstimatedWeight && - EstimatedWeight.getValue() <= - static_cast<uint32_t>(BlockExecWeight::UNREACHABLE)) + *EstimatedWeight <= static_cast<uint32_t>(BlockExecWeight::UNREACHABLE)) UnreachableIdxs.push_back(I - 1); else ReachableIdxs.push_back(I - 1); @@ -688,7 +687,7 @@ Optional<uint32_t> BranchProbabilityInfo::getMaxEstimatedEdgeWeight( if (!Weight) return None; - if (!MaxWeight || MaxWeight.getValue() < Weight.getValue()) + if (!MaxWeight || *MaxWeight < *Weight) MaxWeight = Weight; } @@ -852,8 +851,7 @@ void BranchProbabilityInfo::computeEestimateBlockWeight( if (LoopWeight <= static_cast<uint32_t>(BlockExecWeight::UNREACHABLE)) LoopWeight = static_cast<uint32_t>(BlockExecWeight::LOWEST_NON_ZERO); - EstimatedLoopWeight.insert( - {LoopBB.getLoopData(), LoopWeight.getValue()}); + EstimatedLoopWeight.insert({LoopBB.getLoopData(), *LoopWeight}); // Add all blocks entering the loop into working list. getLoopEnterBlocks(LoopBB, BlockWorkList); } @@ -875,7 +873,7 @@ void BranchProbabilityInfo::computeEestimateBlockWeight( auto MaxWeight = getMaxEstimatedEdgeWeight(LoopBB, successors(BB)); if (MaxWeight) - propagateEstimatedBlockWeight(LoopBB, DT, PDT, MaxWeight.getValue(), + propagateEstimatedBlockWeight(LoopBB, DT, PDT, *MaxWeight, BlockWorkList, LoopWorkList); } } while (!BlockWorkList.empty() || !LoopWorkList.empty()); @@ -913,7 +911,7 @@ bool BranchProbabilityInfo::calcEstimatedHeuristics(const BasicBlock *BB) { // Scale down loop exiting weight by trip count. Weight = std::max( static_cast<uint32_t>(BlockExecWeight::LOWEST_NON_ZERO), - Weight.getValueOr(static_cast<uint32_t>(BlockExecWeight::DEFAULT)) / + Weight.value_or(static_cast<uint32_t>(BlockExecWeight::DEFAULT)) / TC); } bool IsUnlikelyEdge = LoopBB.getLoop() && UnlikelyBlocks.contains(SuccBB); @@ -923,15 +921,14 @@ bool BranchProbabilityInfo::calcEstimatedHeuristics(const BasicBlock *BB) { // 'Unlikely' blocks have twice lower weight. Weight = std::max( static_cast<uint32_t>(BlockExecWeight::LOWEST_NON_ZERO), - Weight.getValueOr(static_cast<uint32_t>(BlockExecWeight::DEFAULT)) / - 2); + Weight.value_or(static_cast<uint32_t>(BlockExecWeight::DEFAULT)) / 2); } if (Weight) FoundEstimatedWeight = true; auto WeightVal = - Weight.getValueOr(static_cast<uint32_t>(BlockExecWeight::DEFAULT)); + Weight.value_or(static_cast<uint32_t>(BlockExecWeight::DEFAULT)); TotalWeight += WeightVal; SuccWeights.push_back(WeightVal); } |