Revert "BlockFrequency: Saturate at 1 instead of 0 when multiplying a frequency with a branch probability."

This reverts commit r184584. Breaks PPC selfhost.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184590 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer
2013-06-21 20:20:27 +00:00
parent 5a18572320
commit b47aceaf06
4 changed files with 3 additions and 95 deletions
+2 -10
View File
@@ -65,9 +65,6 @@ uint64_t div96bit(uint64_t W[2], uint32_t D) {
BlockFrequency &BlockFrequency::operator*=(const BranchProbability &Prob) {
if (Frequency == 0)
return *this;
uint32_t n = Prob.getNumerator();
uint32_t d = Prob.getDenominator();
@@ -87,15 +84,10 @@ BlockFrequency &BlockFrequency::operator*=(const BranchProbability &Prob) {
// 64-bit.
mult96bit(Frequency, n, W);
Frequency = div96bit(W, d);
} else {
// Fast case.
Frequency = mulRes / d;
return *this;
}
// Limit the result to 1; 0 is a sentinel value. This keeps BlockFrequencyInfo
// from getting stuck at zero frequencies just because a value became too
// small to be represented as a BlockFrequency.
Frequency = (n == 0 || Frequency != 0) ? Frequency : 1;
Frequency = mulRes / d;
return *this;
}