forked from OSchip/llvm-project
NFC: Use range-based for loops and more consistent naming.
No functional changes intended. (I plan on doing some modifications to this function and would like to have as few unrelated changes as possible in the patch) llvm-svn: 229649
This commit is contained in:
parent
4d7b04384e
commit
ed9eb7209e
|
@ -347,29 +347,27 @@ MachineBasicBlock *MachineBlockPlacement::selectBestSuccessor(
|
|||
uint32_t WeightScale = 0;
|
||||
uint32_t SumWeight = MBPI->getSumForBlock(BB, WeightScale);
|
||||
DEBUG(dbgs() << "Attempting merge from: " << getBlockName(BB) << "\n");
|
||||
for (MachineBasicBlock::succ_iterator SI = BB->succ_begin(),
|
||||
SE = BB->succ_end();
|
||||
SI != SE; ++SI) {
|
||||
if (BlockFilter && !BlockFilter->count(*SI))
|
||||
for (MachineBasicBlock *Succ : BB->successors()) {
|
||||
if (BlockFilter && !BlockFilter->count(Succ))
|
||||
continue;
|
||||
BlockChain &SuccChain = *BlockToChain[*SI];
|
||||
BlockChain &SuccChain = *BlockToChain[Succ];
|
||||
if (&SuccChain == &Chain) {
|
||||
DEBUG(dbgs() << " " << getBlockName(*SI) << " -> Already merged!\n");
|
||||
DEBUG(dbgs() << " " << getBlockName(Succ) << " -> Already merged!\n");
|
||||
continue;
|
||||
}
|
||||
if (*SI != *SuccChain.begin()) {
|
||||
DEBUG(dbgs() << " " << getBlockName(*SI) << " -> Mid chain!\n");
|
||||
if (Succ != *SuccChain.begin()) {
|
||||
DEBUG(dbgs() << " " << getBlockName(Succ) << " -> Mid chain!\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
uint32_t SuccWeight = MBPI->getEdgeWeight(BB, *SI);
|
||||
uint32_t SuccWeight = MBPI->getEdgeWeight(BB, Succ);
|
||||
BranchProbability SuccProb(SuccWeight / WeightScale, SumWeight);
|
||||
|
||||
// Only consider successors which are either "hot", or wouldn't violate
|
||||
// any CFG constraints.
|
||||
if (SuccChain.LoopPredecessors != 0) {
|
||||
if (SuccProb < HotProb) {
|
||||
DEBUG(dbgs() << " " << getBlockName(*SI) << " -> " << SuccProb
|
||||
DEBUG(dbgs() << " " << getBlockName(Succ) << " -> " << SuccProb
|
||||
<< " (prob) (CFG conflict)\n");
|
||||
continue;
|
||||
}
|
||||
|
@ -379,33 +377,31 @@ MachineBasicBlock *MachineBlockPlacement::selectBestSuccessor(
|
|||
BlockFrequency CandidateEdgeFreq =
|
||||
MBFI->getBlockFreq(BB) * SuccProb * HotProb.getCompl();
|
||||
bool BadCFGConflict = false;
|
||||
for (MachineBasicBlock::pred_iterator PI = (*SI)->pred_begin(),
|
||||
PE = (*SI)->pred_end();
|
||||
PI != PE; ++PI) {
|
||||
if (*PI == *SI || (BlockFilter && !BlockFilter->count(*PI)) ||
|
||||
BlockToChain[*PI] == &Chain)
|
||||
for (MachineBasicBlock *Pred : Succ->predecessors()) {
|
||||
if (Pred == Succ || (BlockFilter && !BlockFilter->count(Pred)) ||
|
||||
BlockToChain[Pred] == &Chain)
|
||||
continue;
|
||||
BlockFrequency PredEdgeFreq =
|
||||
MBFI->getBlockFreq(*PI) * MBPI->getEdgeProbability(*PI, *SI);
|
||||
MBFI->getBlockFreq(Pred) * MBPI->getEdgeProbability(Pred, Succ);
|
||||
if (PredEdgeFreq >= CandidateEdgeFreq) {
|
||||
BadCFGConflict = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (BadCFGConflict) {
|
||||
DEBUG(dbgs() << " " << getBlockName(*SI) << " -> " << SuccProb
|
||||
DEBUG(dbgs() << " " << getBlockName(Succ) << " -> " << SuccProb
|
||||
<< " (prob) (non-cold CFG conflict)\n");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG(dbgs() << " " << getBlockName(*SI) << " -> " << SuccProb
|
||||
DEBUG(dbgs() << " " << getBlockName(Succ) << " -> " << SuccProb
|
||||
<< " (prob)"
|
||||
<< (SuccChain.LoopPredecessors != 0 ? " (CFG break)" : "")
|
||||
<< "\n");
|
||||
if (BestSucc && BestWeight >= SuccWeight)
|
||||
continue;
|
||||
BestSucc = *SI;
|
||||
BestSucc = Succ;
|
||||
BestWeight = SuccWeight;
|
||||
}
|
||||
return BestSucc;
|
||||
|
|
Loading…
Reference in New Issue