[PATCH] D9009: Value profiling compiler-rt changes
Xinliang David Li via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 11 20:05:34 PST 2015
On Wed, Nov 11, 2015 at 6:04 PM, Betul Buyukkurt <betulb at codeaurora.org>
wrote:
> > davidxl added inline comments.
> >
> > ================
> > Comment at: lib/profile/InstrProfiling.c:81
> > @@ +80,3 @@
> > +void __llvm_profile_instrument_target(uint64_t TargetValue, void *Data_,
> > + uint32_t CounterIndex) {
> > +
> > ----------------
> > Can we make the CounterIndex relative to the value kind? Why is value
> kind
> > parameter not passed in?
>
> It's not passed in, because it's already relative to the value kind.
> CounterIndex is computed inside the InstrProfiling.cpp of the llvm patch
> during lowering. It's a value that can be computed in compile time, so
> better to do it then.
>
Ok.
David
>
> -Betul
>
> >
> > ================
> > Comment at: lib/profile/InstrProfiling.c:87
> > @@ +86,3 @@
> > +
> > + if (!Data->ValueCounters) {
> > + uint64_t NumVSites = 0;
> > ----------------
> > This part of the code is cold -- move it out of line into another
> routine.
> >
> > ================
> > Comment at: lib/profile/InstrProfiling.c:119
> > @@ +118,3 @@
> > +
> > + if (VDataCount >= UCHAR_MAX)
> > + return;
> > ----------------
> > This may still be too large. If VDataCount is this large, the runtime
> > overhead will be substantial.
> >
> > In the future, we should enhance it with the following algoithm:
> > 1) reserve the first vdata node to do book keeping -- i.e. tracking
> number
> > of time values get dropped due to too long a list
> > 2) When the number of dropping times reaches a threshold, sort the
> > existing
> > linked list to make it in descending order, and zero out the last X
> > entries.
> >
> > Not needed for the first version.
> >
> > ================
> > Comment at: lib/profile/InstrProfiling.h:33
> > @@ +32,3 @@
> > + VK_FIRST = VK_IndirectCallTarget,
> > + VK_LAST = VK_IndirectCallTarget
> > +} __llvm_profile_value_kind;
> > ----------------
> > Make the enumerators name the same as the LLVM counter part -- this
> allows
> > future refactoring.
> >
> >
> > http://reviews.llvm.org/D9009
> >
> >
> >
> >
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151111/588aec1c/attachment.html>
More information about the llvm-commits
mailing list