diff options
author | Cong Hou <congh@google.com> | 2015-10-12 18:34:00 +0000 |
---|---|---|
committer | Cong Hou <congh@google.com> | 2015-10-12 18:34:00 +0000 |
commit | 61e13de40859751d0c605d7509eeb5a99cf7e9c1 (patch) | |
tree | 09dc049b5bb7a4c7c46e6e8f5853d569259d2e37 /llvm/lib/Support/BlockFrequency.cpp | |
parent | 928eb33a9e02f40a8d76da9bd018ce47bf9a59b9 (diff) | |
download | bcm5719-llvm-61e13de40859751d0c605d7509eeb5a99cf7e9c1.tar.gz bcm5719-llvm-61e13de40859751d0c605d7509eeb5a99cf7e9c1.zip |
Add - and -= operators to BlockFrequency using saturating arithmetic.
llvm-svn: 250077
Diffstat (limited to 'llvm/lib/Support/BlockFrequency.cpp')
-rw-r--r-- | llvm/lib/Support/BlockFrequency.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/Support/BlockFrequency.cpp b/llvm/lib/Support/BlockFrequency.cpp index e0430c199eb..e7f3e1764c5 100644 --- a/llvm/lib/Support/BlockFrequency.cpp +++ b/llvm/lib/Support/BlockFrequency.cpp @@ -56,6 +56,21 @@ BlockFrequency BlockFrequency::operator+(BlockFrequency Freq) const { return NewFreq; } +BlockFrequency &BlockFrequency::operator-=(BlockFrequency Freq) { + // If underflow, set frequency to 0. + if (Frequency <= Freq.Frequency) + Frequency = 0; + else + Frequency -= Freq.Frequency; + return *this; +} + +BlockFrequency BlockFrequency::operator-(BlockFrequency Freq) const { + BlockFrequency NewFreq(Frequency); + NewFreq -= Freq; + return NewFreq; +} + BlockFrequency &BlockFrequency::operator>>=(const unsigned count) { // Frequency can never be 0 by design. assert(Frequency != 0); |