[llvm] r270933 - Attach profile summary in IR based instrumentation pass.

Easwaran Raman via llvm-commits llvm-commits at lists.llvm.org
Fri May 27 09:59:25 PDT 2016


The plan is to deprecate the MaxFunctionCount module
flag. function_entry_count will remain.

- Easwaran

On Thu, May 26, 2016 at 10:18 PM, Sean Silva <chisophugis at gmail.com> wrote:

> The plan is to deprecate the function_entry_count metadata, right? I
> noticed in passing that the IR instrumentation was not setting that.
>
> I noticed in http://reviews.llvm.org/D20648 that you are doing `auto
> FunctionCount = F->getEntryCount();`. Will that eventually be deprecated?
> You may want to add a note there.
>
> -- Sean Silva
>
> On Thu, May 26, 2016 at 3:57 PM, Easwaran Raman via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: eraman
>> Date: Thu May 26 17:57:11 2016
>> New Revision: 270933
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=270933&view=rev
>> Log:
>> Attach profile summary in IR based instrumentation pass.
>>
>> Differential revision: http://reviews.llvm.org/D20655
>>
>> Modified:
>>     llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
>>     llvm/trunk/test/Transforms/PGOProfile/branch1.ll
>>
>> Modified: llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp?rev=270933&r1=270932&r2=270933&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
>> (original)
>> +++ llvm/trunk/lib/Transforms/Instrumentation/PGOInstrumentation.cpp Thu
>> May 26 17:57:11 2016
>> @@ -67,6 +67,7 @@
>>  #include "llvm/IR/Module.h"
>>  #include "llvm/Pass.h"
>>  #include "llvm/ProfileData/InstrProfReader.h"
>> +#include "llvm/ProfileData/ProfileCommon.h"
>>  #include "llvm/Support/BranchProbability.h"
>>  #include "llvm/Support/Debug.h"
>>  #include "llvm/Support/JamCRC.h"
>> @@ -478,6 +479,9 @@ public:
>>    // Return the function hotness from the profile.
>>    FuncFreqAttr getFuncFreqAttr() const { return FreqAttr; }
>>
>> +  // Return the profile record for this function;
>> +  InstrProfRecord &getProfileRecord() { return ProfileRecord; }
>> +
>>  private:
>>    Function &F;
>>    Module *M;
>> @@ -883,6 +887,7 @@ static bool annotateAllFunctions(
>>
>>    std::vector<Function *> HotFunctions;
>>    std::vector<Function *> ColdFunctions;
>> +  InstrProfSummaryBuilder Builder(ProfileSummaryBuilder::DefaultCutoffs);
>>    for (auto &F : M) {
>>      if (F.isDeclaration())
>>        continue;
>> @@ -890,13 +895,15 @@ static bool annotateAllFunctions(
>>      auto *BFI = LookupBFI(F);
>>      PGOUseFunc Func(F, &M, BPI, BFI);
>>      setPGOCountOnFunc(Func, PGOReader.get());
>> +    if (!Func.getProfileRecord().Counts.empty())
>> +      Builder.addRecord(Func.getProfileRecord());
>>      PGOUseFunc::FuncFreqAttr FreqAttr = Func.getFuncFreqAttr();
>>      if (FreqAttr == PGOUseFunc::FFA_Cold)
>>        ColdFunctions.push_back(&F);
>>      else if (FreqAttr == PGOUseFunc::FFA_Hot)
>>        HotFunctions.push_back(&F);
>>    }
>> -
>> +  M.setProfileSummary(Builder.getSummary()->getMD(M.getContext()));
>>    // Set function hotness attribute from the profile.
>>    for (auto &F : HotFunctions) {
>>      F->addFnAttr(llvm::Attribute::InlineHint);
>>
>> Modified: llvm/trunk/test/Transforms/PGOProfile/branch1.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/PGOProfile/branch1.ll?rev=270933&r1=270932&r2=270933&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/test/Transforms/PGOProfile/branch1.ll (original)
>> +++ llvm/trunk/test/Transforms/PGOProfile/branch1.ll Thu May 26 17:57:11
>> 2016
>> @@ -28,7 +28,7 @@ entry:
>>    br i1 %cmp, label %if.then, label %if.end
>>  ; USE: br i1 %cmp, label %if.then, label %if.end
>>  ; USE-SAME: !prof ![[BW_ENTRY:[0-9]+]]
>> -; USE: ![[BW_ENTRY]] = !{!"branch_weights", i32 2, i32 1}
>> +; USE-DAG: ![[BW_ENTRY]] = !{!"branch_weights", i32 2, i32 1}
>>
>>  if.then:
>>  ; GEN: if.then:
>> @@ -42,3 +42,5 @@ if.end:
>>    %retv = phi i32 [ %add, %if.then ], [ %i, %entry ]
>>    ret i32 %retv
>>  }
>> +; USE-DAG: {{![0-9]+}} = !{i32 1, !"ProfileSummary", {{![0-9]+}}}
>> +; USE-DAG: {{![0-9]+}} = !{!"DetailedSummary", {{![0-9]+}}}
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160527/2470d90c/attachment.html>


More information about the llvm-commits mailing list