]> granicus.if.org Git - clang/commitdiff
[PGO] code simplification: use existing VP annotation API /NFC
authorXinliang David Li <davidxl@google.com>
Thu, 4 Feb 2016 19:54:17 +0000 (19:54 +0000)
committerXinliang David Li <davidxl@google.com>
Thu, 4 Feb 2016 19:54:17 +0000 (19:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@259819 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CodeGenPGO.cpp

index c59d2d1b27fe2c3e8b243d2e5ff79a4ee6acf4af..2d46adfce1357a910173a3db3f8e968a826b100a 100644 (file)
@@ -780,35 +780,11 @@ void CodeGenPGO::valueProfile(CGBuilderTy &Builder, uint32_t ValueKind,
     // pairs for each function.
     if (NumValueSites[ValueKind] >= ProfRecord->getNumValueSites(ValueKind))
       return;
-    uint32_t NV = ProfRecord->getNumValueDataForSite(ValueKind,
-                                                     NumValueSites[ValueKind]);
-    std::unique_ptr<InstrProfValueData[]> VD =
-        ProfRecord->getValueForSite(ValueKind, NumValueSites[ValueKind]);
 
-    uint64_t Sum = 0;
-    for (uint32_t I = 0; I < NV; ++I)
-      Sum += VD[I].Count;
+    llvm::annotateValueSite(CGM.getModule(), *ValueSite, *ProfRecord,
+                            (llvm::InstrProfValueKind)ValueKind,
+                            NumValueSites[ValueKind]);
 
-    llvm::LLVMContext &Ctx = CGM.getLLVMContext();
-    llvm::MDBuilder MDHelper(Ctx);
-    SmallVector<llvm::Metadata*, 3> Vals;
-    Vals.push_back(MDHelper.createString("VP"));
-    Vals.push_back(MDHelper.createConstant(
-        llvm::ConstantInt::get(llvm::Type::getInt32Ty(Ctx), ValueKind)));
-    Vals.push_back(MDHelper.createConstant(
-        llvm::ConstantInt::get(llvm::Type::getInt64Ty(Ctx), Sum)));
-
-    uint32_t MDCount = 3;
-    for (uint32_t I = 0; I < NV; ++I) {
-      Vals.push_back(MDHelper.createConstant(
-          llvm::ConstantInt::get(llvm::Type::getInt64Ty(Ctx), VD[I].Value)));
-      Vals.push_back(MDHelper.createConstant(
-          llvm::ConstantInt::get(llvm::Type::getInt64Ty(Ctx), VD[I].Count)));
-      if (--MDCount == 0)
-        break;
-    }
-    ValueSite->setMetadata(
-        llvm::LLVMContext::MD_prof, llvm::MDNode::get(Ctx, Vals));
     NumValueSites[ValueKind]++;
   }
 }