diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2023-12-18 20:30:12 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2024-04-19 21:12:03 +0000 |
| commit | c9157d925c489f07ba9c0b2ce47e5149b75969a5 (patch) | |
| tree | 08bc4a3d9cad3f9ebffa558ddf140b9d9257b219 /contrib/llvm-project/llvm/lib/Support/BlockFrequency.cpp | |
| parent | 2a66844f606a35d68ad8a8061f4bea204274b3bc (diff) | |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Support/BlockFrequency.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Support/BlockFrequency.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/Support/BlockFrequency.cpp b/contrib/llvm-project/llvm/lib/Support/BlockFrequency.cpp index a4a1e477d940..329f1e12cdc2 100644 --- a/contrib/llvm-project/llvm/lib/Support/BlockFrequency.cpp +++ b/contrib/llvm-project/llvm/lib/Support/BlockFrequency.cpp @@ -12,6 +12,7 @@ #include "llvm/Support/BlockFrequency.h" #include "llvm/Support/BranchProbability.h" +#include "llvm/Support/MathExtras.h" using namespace llvm; @@ -36,3 +37,11 @@ BlockFrequency BlockFrequency::operator/(BranchProbability Prob) const { Freq /= Prob; return Freq; } + +std::optional<BlockFrequency> BlockFrequency::mul(uint64_t Factor) const { + bool Overflow; + uint64_t ResultFrequency = SaturatingMultiply(Frequency, Factor, &Overflow); + if (Overflow) + return {}; + return BlockFrequency(ResultFrequency); +} |
