[PATCH] D16015: [PGO] Create the profile data variable before the lowering
Xinliang David Li via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 15 13:44:43 PST 2016
yes -- it is better to pre-create counters before lowering regardless
of value profiling is there.
David
On Fri, Jan 15, 2016 at 1:43 PM, Rong Xu <xur at google.com> wrote:
> On Fri, Jan 15, 2016 at 1:41 PM, Rong Xu <xur at google.com> wrote:
>> On Fri, Jan 15, 2016 at 1:33 PM, David Li <davidxl at google.com> wrote:
>>> davidxl added inline comments.
>>>
>>> ================
>>> Comment at: lib/Transforms/Instrumentation/InstrProfiling.cpp:141
>>> @@ +140,3 @@
>>> + //
>>> + // Also create the profile data variable -- do it here because there is no
>>> + // guarantee that a counter increment will be ahead of value profile
>>> ----------------
>>> Remove the comments here.
>>
>> OK.
>>
>>>
>>> ================
>>> Comment at: lib/Transforms/Instrumentation/InstrProfiling.cpp:154
>>> @@ -144,1 +153,3 @@
>>> computeNumValueSiteCounts(Ind);
>>> + hasValueInstrumentation = true;
>>> + }
>>> ----------------
>>> Why is this flag needed?
>>
>> I want to create the profile data variable here only when there are
>> value instrumentations in this function.
>> Another reason is the assertion in line 160. It's possible that the
>> function is not instrumented (like a personality routine), in which
>> case we don't find the ProfileInc instruction.
>
> I can get rid of this variable and use FirstProfileInInst to guard the
> getOrCreateRegsionCounters() call.
>
>>
>>>
>>> ================
>>> Comment at: lib/Transforms/Instrumentation/InstrProfiling.cpp:161
>>> @@ +160,3 @@
>>> + assert (FirstProfIncInst != nullptr);
>>> + getOrCreateRegionCounters(FirstProfIncInst);
>>> + }
>>> ----------------
>>> Add a brief comment here: Value profiling intrinsic lowering requires per-function profile data variable to be created first.
>>
>> OK.
>>
>>>
>>>
>>> http://reviews.llvm.org/D16015
>>>
>>>
>>>
More information about the llvm-commits
mailing list