diff options
Diffstat (limited to 'lib/Analysis/BlockFrequencyInfoImpl.cpp')
| -rw-r--r-- | lib/Analysis/BlockFrequencyInfoImpl.cpp | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/Analysis/BlockFrequencyInfoImpl.cpp b/lib/Analysis/BlockFrequencyInfoImpl.cpp index 3d095068e7ff..08ebcc47a807 100644 --- a/lib/Analysis/BlockFrequencyInfoImpl.cpp +++ b/lib/Analysis/BlockFrequencyInfoImpl.cpp @@ -156,9 +156,9 @@ static void combineWeight(Weight &W, const Weight &OtherW) {  static void combineWeightsBySorting(WeightList &Weights) {    // Sort so edges to the same node are adjacent. -  llvm::sort(Weights.begin(), Weights.end(), -             [](const Weight &L, -                const Weight &R) { return L.TargetNode < R.TargetNode; }); +  llvm::sort(Weights, [](const Weight &L, const Weight &R) { +    return L.TargetNode < R.TargetNode; +  });    // Combine adjacent edges.    WeightList::iterator O = Weights.begin(); @@ -573,7 +573,9 @@ BlockFrequencyInfoImplBase::getProfileCountFromFreq(const Function &F,    APInt BlockFreq(128, Freq);    APInt EntryFreq(128, getEntryFreq());    BlockCount *= BlockFreq; -  BlockCount = BlockCount.udiv(EntryFreq); +  // Rounded division of BlockCount by EntryFreq. Since EntryFreq is unsigned +  // lshr by 1 gives EntryFreq/2. +  BlockCount = (BlockCount + EntryFreq.lshr(1)).udiv(EntryFreq);    return BlockCount.getLimitedValue();  } @@ -705,7 +707,7 @@ static void findIrreducibleHeaders(           "Expected irreducible CFG; -loop-info is likely invalid");    if (Headers.size() == InSCC.size()) {      // Every block is a header. -    llvm::sort(Headers.begin(), Headers.end()); +    llvm::sort(Headers);      return;    } @@ -740,8 +742,8 @@ static void findIrreducibleHeaders(      Others.push_back(Irr.Node);      LLVM_DEBUG(dbgs() << "  => other = " << BFI.getBlockName(Irr.Node) << "\n");    } -  llvm::sort(Headers.begin(), Headers.end()); -  llvm::sort(Others.begin(), Others.end()); +  llvm::sort(Headers); +  llvm::sort(Others);  }  static void createIrreducibleLoop(  | 
