Changed std::cout to outs(), retaining formating.

llvm-svn: 80076
This commit is contained in:
Andreas Neustifter 2009-08-26 09:05:21 +00:00
parent f08e35d9dc
commit 5f4e42ef9c
1 changed files with 27 additions and 27 deletions

View File

@ -27,6 +27,7 @@
#include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/raw_ostream.h" #include "llvm/Support/raw_ostream.h"
#include "llvm/Support/Format.h"
#include "llvm/System/Signals.h" #include "llvm/System/Signals.h"
#include <algorithm> #include <algorithm>
#include <iostream> #include <iostream>
@ -172,32 +173,32 @@ bool ProfileInfoPrinterPass::runOnModule(Module &M) {
for (unsigned i = 0, e = FunctionCounts.size(); i != e; ++i) for (unsigned i = 0, e = FunctionCounts.size(); i != e; ++i)
TotalExecutions += FunctionCounts[i].second; TotalExecutions += FunctionCounts[i].second;
std::cout << "===" << std::string(73, '-') << "===\n" outs() << "===" << std::string(73, '-') << "===\n"
<< "LLVM profiling output for execution"; << "LLVM profiling output for execution";
if (PIL.getNumExecutions() != 1) std::cout << "s"; if (PIL.getNumExecutions() != 1) outs() << "s";
std::cout << ":\n"; outs() << ":\n";
for (unsigned i = 0, e = PIL.getNumExecutions(); i != e; ++i) { for (unsigned i = 0, e = PIL.getNumExecutions(); i != e; ++i) {
std::cout << " "; outs() << " ";
if (e != 1) std::cout << i+1 << ". "; if (e != 1) outs() << i+1 << ". ";
std::cout << PIL.getExecution(i) << "\n"; outs() << PIL.getExecution(i) << "\n";
} }
std::cout << "\n===" << std::string(73, '-') << "===\n"; outs() << "\n===" << std::string(73, '-') << "===\n";
std::cout << "Function execution frequencies:\n\n"; outs() << "Function execution frequencies:\n\n";
// Print out the function frequencies... // Print out the function frequencies...
std::cout << " ## Frequency\n"; outs() << " ## Frequency\n";
for (unsigned i = 0, e = FunctionCounts.size(); i != e; ++i) { for (unsigned i = 0, e = FunctionCounts.size(); i != e; ++i) {
if (FunctionCounts[i].second == 0) { if (FunctionCounts[i].second == 0) {
std::cout << "\n NOTE: " << e-i << " function" << outs() << "\n NOTE: " << e-i << " function"
(e-i-1 ? "s were" : " was") << " never executed!\n"; << (e-i-1 ? "s were" : " was") << " never executed!\n";
break; break;
} }
std::cout << std::setw(3) << i+1 << ". " outs() << format("%3d", i+1) << ". "
<< std::setw(5) << FunctionCounts[i].second << "/" << format("%5.2g", FunctionCounts[i].second) << "/"
<< TotalExecutions << " " << format("%g", TotalExecutions) << " "
<< FunctionCounts[i].first->getNameStr() << "\n"; << FunctionCounts[i].first->getNameStr() << "\n";
} }
@ -211,29 +212,28 @@ bool ProfileInfoPrinterPass::runOnModule(Module &M) {
sort(Counts.begin(), Counts.end(), sort(Counts.begin(), Counts.end(),
PairSecondSortReverse<BasicBlock*>()); PairSecondSortReverse<BasicBlock*>());
std::cout << "\n===" << std::string(73, '-') << "===\n"; outs() << "\n===" << std::string(73, '-') << "===\n";
std::cout << "Top 20 most frequently executed basic blocks:\n\n"; outs() << "Top 20 most frequently executed basic blocks:\n\n";
// Print out the function frequencies... // Print out the function frequencies...
std::cout <<" ## %% \tFrequency\n"; outs() <<" ## %% \tFrequency\n";
unsigned BlocksToPrint = Counts.size(); unsigned BlocksToPrint = Counts.size();
if (BlocksToPrint > 20) BlocksToPrint = 20; if (BlocksToPrint > 20) BlocksToPrint = 20;
for (unsigned i = 0; i != BlocksToPrint; ++i) { for (unsigned i = 0; i != BlocksToPrint; ++i) {
if (Counts[i].second == 0) break; if (Counts[i].second == 0) break;
Function *F = Counts[i].first->getParent(); Function *F = Counts[i].first->getParent();
std::cout << std::setw(3) << i+1 << ". " outs() << format("%3d", i+1) << ". "
<< std::setw(5) << std::setprecision(3) << format("%5g", Counts[i].second/(double)TotalExecutions*100) << "% "
<< Counts[i].second/(double)TotalExecutions*100 << "% " << format("%5.0f", Counts[i].second) << "/"
<< std::setw(5) << Counts[i].second << "/" << format("%g", TotalExecutions) << "\t"
<< TotalExecutions << "\t" << F->getNameStr() << "() - "
<< F->getNameStr() << "() - " << Counts[i].first->getNameStr() << "\n";
<< Counts[i].first->getNameStr() << "\n";
FunctionsToPrint.insert(F); FunctionsToPrint.insert(F);
} }
if (PrintAnnotatedLLVM || PrintAllCode) { if (PrintAnnotatedLLVM || PrintAllCode) {
std::cout << "\n===" << std::string(73, '-') << "===\n"; outs() << "\n===" << std::string(73, '-') << "===\n";
std::cout << "Annotated LLVM code for the module:\n\n"; outs() << "Annotated LLVM code for the module:\n\n";
ProfileAnnotator PA(PI); ProfileAnnotator PA(PI);