forked from OSchip/llvm-project
[PGO] Minor cleanup for count instruction in SelectInstVisitor.
Summary: NSIs can be double-counted by different operations in SelectInstVisitor. Sink the the update to VM_counting mode only. Also reset the value for each counting operation. Reviewers: davidxl Reviewed By: davidxl Subscribers: xur, llvm-commits Differential Revision: https://reviews.llvm.org/D30999 llvm-svn: 297892
This commit is contained in:
parent
b99247e608
commit
d709b0fe95
|
@ -200,6 +200,7 @@ struct SelectInstVisitor : public InstVisitor<SelectInstVisitor> {
|
|||
SelectInstVisitor(Function &Func) : F(Func) {}
|
||||
|
||||
void countSelects(Function &Func) {
|
||||
NSIs = 0;
|
||||
Mode = VM_counting;
|
||||
visit(Func);
|
||||
}
|
||||
|
@ -229,6 +230,8 @@ struct SelectInstVisitor : public InstVisitor<SelectInstVisitor> {
|
|||
void annotateOneSelectInst(SelectInst &SI);
|
||||
// Visit \p SI instruction and perform tasks according to visit mode.
|
||||
void visitSelectInst(SelectInst &SI);
|
||||
// Return the number of select instructions. This needs be called after
|
||||
// countSelects().
|
||||
unsigned getNumOfSelectInsts() const { return NSIs; }
|
||||
};
|
||||
|
||||
|
@ -1058,9 +1061,9 @@ void SelectInstVisitor::visitSelectInst(SelectInst &SI) {
|
|||
if (SI.getCondition()->getType()->isVectorTy())
|
||||
return;
|
||||
|
||||
NSIs++;
|
||||
switch (Mode) {
|
||||
case VM_counting:
|
||||
NSIs++;
|
||||
return;
|
||||
case VM_instrument:
|
||||
instrumentOneSelectInst(SI);
|
||||
|
|
Loading…
Reference in New Issue