diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-08-08 18:59:03 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-08-08 18:59:03 +0000 |
commit | c43782cf7163805fb6d727382b5f807ea035b2b0 (patch) | |
tree | 6d66db6a874af9d7c48d4357655665c547c1ffd0 /tools/llvm-prof/llvm-prof.cpp | |
parent | 55e354ac0e294bde258420f80a2cc11ea19db482 (diff) |
Some ProfileInfo cleanups.
- Part of optimal static profiling patch sequence by Andreas Neustifter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78485 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-prof/llvm-prof.cpp')
-rw-r--r-- | tools/llvm-prof/llvm-prof.cpp | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/tools/llvm-prof/llvm-prof.cpp b/tools/llvm-prof/llvm-prof.cpp index 6144fe5b12..c370e6bee7 100644 --- a/tools/llvm-prof/llvm-prof.cpp +++ b/tools/llvm-prof/llvm-prof.cpp @@ -78,24 +78,22 @@ namespace { ProfileAnnotator(ProfileInfo& pi) : PI(pi) {} virtual void emitFunctionAnnot(const Function *F, raw_ostream &OS) { - OS << ";;; %" << F->getName() << " called "; double w = PI.getExecutionCount(F); - if (w == ProfileInfo::MissingValue) - OS << "(no value)"; - else - OS << (unsigned)w; - OS << " times.\n;;;\n"; + if (w != ProfileInfo::MissingValue) { + OS << ";;; %" << F->getName() << " called "<<(unsigned)w + <<" times.\n;;;\n"; + } } virtual void emitBasicBlockStartAnnot(const BasicBlock *BB, raw_ostream &OS) { double w = PI.getExecutionCount(BB); - if (w == ProfileInfo::MissingValue) - OS << "\t;;; (no value)\n"; - else - if (w != 0) - OS << "\t;;; Basic block executed " << w << " times.\n"; - else + if (w != ProfileInfo::MissingValue) { + if (w != 0) { + OS << "\t;;; Basic block executed " << (unsigned)w << " times.\n"; + } else { OS << "\t;;; Never executed!\n"; + } + } } virtual void emitBasicBlockEndAnnot(const BasicBlock *BB, raw_ostream &OS) { @@ -105,8 +103,9 @@ namespace { const TerminatorInst *TI = BB->getTerminator(); for (unsigned s = 0, e = TI->getNumSuccessors(); s != e; ++s) { BasicBlock* Succ = TI->getSuccessor(s); - double w = ignoreMissing(PI.getEdgeWeight(std::make_pair(BB,Succ))); - SuccCounts.push_back(std::make_pair(std::make_pair(BB,Succ), w)); + double w = ignoreMissing(PI.getEdgeWeight(std::make_pair(BB, Succ))); + if (w != 0) + SuccCounts.push_back(std::make_pair(std::make_pair(BB, Succ), w)); } if (!SuccCounts.empty()) { OS << "\t;;; Out-edge counts:"; @@ -157,11 +156,11 @@ bool ProfileInfoPrinterPass::runOnModule(Module &M) { for (Module::iterator FI = M.begin(), FE = M.end(); FI != FE; ++FI) { if (FI->isDeclaration()) continue; double w = ignoreMissing(PI.getExecutionCount(FI)); - FunctionCounts.push_back(std::make_pair(FI,w)); + FunctionCounts.push_back(std::make_pair(FI, w)); for (Function::iterator BB = FI->begin(), BBE = FI->end(); BB != BBE; ++BB) { double w = ignoreMissing(PI.getExecutionCount(BB)); - Counts.push_back(std::make_pair(BB,w)); + Counts.push_back(std::make_pair(BB, w)); } } |