mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
cache another dereferenced iterator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108421 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5a3eb8f0e1
commit
e616690466
@ -71,22 +71,24 @@ ProfileInfoT<Function,BasicBlock>::getExecutionCount(const BasicBlock *BB) {
|
||||
|
||||
// Are there zero predecessors of this block?
|
||||
if (PI == PE) {
|
||||
Edge e = getEdge(0,BB);
|
||||
Edge e = getEdge(0, BB);
|
||||
Count = getEdgeWeight(e);
|
||||
} else {
|
||||
// Otherwise, if there are predecessors, the execution count of this block is
|
||||
// the sum of the edge frequencies from the incoming edges.
|
||||
std::set<const BasicBlock*> ProcessedPreds;
|
||||
Count = 0;
|
||||
for (; PI != PE; ++PI)
|
||||
if (ProcessedPreds.insert(*PI).second) {
|
||||
double w = getEdgeWeight(getEdge(*PI, BB));
|
||||
for (; PI != PE; ++PI) {
|
||||
const BasicBlock *P = *PI;
|
||||
if (ProcessedPreds.insert(P).second) {
|
||||
double w = getEdgeWeight(getEdge(P, BB));
|
||||
if (w == MissingValue) {
|
||||
Count = MissingValue;
|
||||
break;
|
||||
}
|
||||
Count += w;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If the predecessors did not suffice to get block weight, try successors.
|
||||
|
Loading…
Reference in New Issue
Block a user