X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FSupport%2FBlockFrequency.cpp;h=e7f3e1764c52d3a6131f022b081227b2f0887f06;hb=b6cb6238b9c5243ec813a860ae153adda1acddff;hp=e0430c199eb86e2b9fec33224d8a1521805598b3;hpb=d4c646110a2d04ce958d373da18507d39aa13564;p=oota-llvm.git diff --git a/lib/Support/BlockFrequency.cpp b/lib/Support/BlockFrequency.cpp index e0430c199eb..e7f3e1764c5 100644 --- a/lib/Support/BlockFrequency.cpp +++ b/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);