Update llvm-prof for ProfileInfo API changes.
authorDaniel Dunbar <daniel@zuster.org>
Thu, 13 Aug 2009 01:55:43 +0000 (01:55 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Thu, 13 Aug 2009 01:55:43 +0000 (01:55 +0000)
 - Patch by Erick Tryzelaar

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78880 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-prof/llvm-prof.cpp

index c370e6bee7e8c057e7849d107929ae2d46a57031..f9f109df50aa2b842c75aaec9ee72bf43386b52b 100644 (file)
@@ -58,10 +58,10 @@ namespace {
 // PairSecondSort - A sorting predicate to sort by the second element of a pair.
 template<class T>
 struct PairSecondSortReverse
-  : public std::binary_function<std::pair<T, unsigned>,
-                                std::pair<T, unsigned>, bool> {
-  bool operator()(const std::pair<T, unsigned> &LHS,
-                  const std::pair<T, unsigned> &RHS) const {
+  : public std::binary_function<std::pair<T, double>,
+                                std::pair<T, double>, bool> {
+  bool operator()(const std::pair<T, double> &LHS,
+                  const std::pair<T, double> &RHS) const {
     return LHS.second > RHS.second;
   }
 };
@@ -98,7 +98,7 @@ namespace {
 
     virtual void emitBasicBlockEndAnnot(const BasicBlock *BB, raw_ostream &OS) {
       // Figure out how many times each successor executed.
-      std::vector<std::pair<ProfileInfo::Edge, unsigned> > SuccCounts;
+      std::vector<std::pair<ProfileInfo::Edge, double> > SuccCounts;
 
       const TerminatorInst *TI = BB->getTerminator();
       for (unsigned s = 0, e = TI->getNumSuccessors(); s != e; ++s) {
@@ -151,8 +151,8 @@ bool ProfileInfoPrinterPass::runOnModule(Module &M) {
   // the command line, for now, just keep things simple.
 
   // Emit the most frequent function table...
-  std::vector<std::pair<Function*, unsigned> > FunctionCounts;
-  std::vector<std::pair<BasicBlock*, unsigned> > Counts;
+  std::vector<std::pair<Function*, double> > FunctionCounts;
+  std::vector<std::pair<BasicBlock*, double> > Counts;
   for (Module::iterator FI = M.begin(), FE = M.end(); FI != FE; ++FI) {
     if (FI->isDeclaration()) continue;
     double w = ignoreMissing(PI.getExecutionCount(FI));
@@ -168,7 +168,7 @@ bool ProfileInfoPrinterPass::runOnModule(Module &M) {
   sort(FunctionCounts.begin(), FunctionCounts.end(),
             PairSecondSortReverse<Function*>());
 
-  uint64_t TotalExecutions = 0;
+  double TotalExecutions = 0;
   for (unsigned i = 0, e = FunctionCounts.size(); i != e; ++i)
     TotalExecutions += FunctionCounts[i].second;