| Issue |
173968
|
| Summary |
【AFDO】【JumpThreadingPass】why JumpThreadingPass doesn't use profile data to choose the best dest BB
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
zhanglingyao123
|
static unsigned getBestDestForJumpOnUndef(BasicBlock *BB) {
Instruction *BBTerm = BB->getTerminator();
unsigned MinSucc = 0;
BasicBlock *TestBB = BBTerm->getSuccessor(MinSucc);
// Compute the successor with the minimum number of predecessors.
unsigned MinNumPreds = pred_size(TestBB);
for (unsigned i = 1, e = BBTerm->getNumSuccessors(); i != e; ++i) {
TestBB = BBTerm->getSuccessor(i);
unsigned NumPreds = pred_size(TestBB);
if (NumPreds < MinNumPreds) {
MinSucc = i;
MinNumPreds = NumPreds;
}
}
return MinSucc;
}
JumpThreadingPass use static info to decide the best dest BB right now. Why not use profile data when AFDO is enable? It will be more effective.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs