[llvm-dev] My experience using -DLLVM_BUILD_INSTRUMENTED_COVERAGE to generate coverage
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Tue Jun 27 14:40:18 PDT 2017
I get a bunch of unreadable binary. Output piped to "less":
String dump of section '__llvm_prf_names':
[ 2]
#<CA>^Ex<DA><D4>is<E3>(^Z<EF>^O<DD>^P<A9><D5><F7><9B><CB><FB><A8>d<97>^U<96>O<9F><89><FB><85>AQ<B4>M<B5><B6>&)Wy~<FD>C^B\<B0>/$<A5><EA>s<E3><CE>L<97>E$^R<89>Dn<C8>L<84><FF>
<EF><C7>h<B7><FB><DC>ߊ,=<BC><BF>$ow~<B0>\<C4><FF>_X<FE><E0><C7><D1>&<C9>c<F4><E7>^_<AB><B0><F9>,`<BE>H^Oi1G<BF>{<E3><D7>({O<8A><E7>S<91>^^^O<B9>7<BB><CD><F7><F3>C^d<E7>}r("<F8>c^P
P<83>
<D0><F3>`T^Z<ED><D2><FF>M<B2><F9>k^X^D/<8B><D5>8<A4><E1>N><A3><DD>9<C9><E7><DF><F1><F7>c^B38<9C><F7>^<BF><C2>ߕ^_<D6><F0>_<F2><BB>]<94><E7><C1><FD><E9><95>^A3<<9E>^\<B0>{\^O0<CC><C9>)<CA>r<84><D9>j^H<B3><DC><F9><F3><EF><B7><FE>
<8C><E1>'L^Q<C9>"<F0><A7>"><E8><FF><DD>^^V^R<A4><D6><FC>d<EB>j*oHO<D5>^F<C2>p<D0>^U<82><EF>^Y!<90><9D>O5;:^TgL<F9>^Y<D3>z<D5>#=<81><E1><C3>6<C4>^\u%<85>7<EE>^Jaf^D0C<8B><8C>r^D^E<9D><B5>^W^L<A3>dx<FA><A3>1<FE><88>l^OO<AB>^Z<80>^\~^I<EE><DE>^O>]V~c<C9>^D<B7><88>[4|0^R<89><B5>ʳ<96><D7>Ӽ<E7><F9>^D<EB>^<BF><A5><9B>Mr^Ht<CC>A^PP<EF>
<8D>n<BA><89>q<91><DE>
-Eli
On 6/27/2017 2:32 PM, Xinliang David Li wrote:
> I had an old build of llc with FE instrumentation, the name section
> size is about 5MB. Using coverage is likely to cause the name section
> to be larger as there are more references to dead/unused function names.
>
> What do you see when
>
> readelf --string-dump=__llvm_prf_names llc
>
> David
>
> On Tue, Jun 27, 2017 at 2:23 PM, Xinliang David Li <davidxl at google.com
> <mailto:davidxl at google.com>> wrote:
>
>
>
> On Tue, Jun 27, 2017 at 2:09 PM, Friedman, Eli
> <efriedma at codeaurora.org <mailto:efriedma at codeaurora.org>> wrote:
>
> On 6/27/2017 1:47 PM, Xinliang David Li wrote:
>>
>>
>> On Mon, Jun 26, 2017 at 7:24 PM, Friedman, Eli
>> <efriedma at codeaurora.org <mailto:efriedma at codeaurora.org>> wrote:
>>
>> On 6/19/2017 7:29 PM, Vedant Kumar wrote:
>>>
>>>>> We can reduce testing time by *not* instrumented basic
>>>>> tools like count, not, FileCheck etc. I filed:
>>>>> llvm.org/PR33501 <http://llvm.org/PR33501>.
>>>>>
>>>>>> 3. The generated profile information takes up a lot
>>>>>> of space: llc generates a 90MB profraw file.
>>>>>
>>>>> I don't have any ideas about how to fix this. You can
>>>>> decrease the space overhead for raw profiles by
>>>>> altering LLVM_PROFILE_MERGE_POOL_SIZE from 4 to a
>>>>> lower value.
>>>>
>>>> Disk space is cheap, but the I/O takes a long time. I
>>>> guess it's specifically bad for LLVM's "make check",
>>>> maybe not so bad for other cases.
>>>
>>> You can speed up "make check" a bit by using
>>> non-instrumented versions of count, not, FileCheck, etc.
>>
>> I tried looking into this a bit more. It looks like the
>> profile data file generated by llc contains approximately
>> 5MB of counters (__llvm_prf_cnts), 10MB of "data"
>> (__llvm_prf_data), and 70MB of __llvm_prf_names.
>> __llvm_prf_data and __llvm_prf_names contain which can be
>> read from the original binary, as far as I can tell. The
>> 80MB of data wouldn't be a big deal if it were just
>> sitting on disk... but we also erase the whole file and
>> rewrite it from scratch after we merge profile counters.
>>
>>
>> Can you check if name compression is turned on in your build?
>>
>> David
>>
>
> I think it is. At least, I didn't intentionally turn it off,
> and examining the file with objdump I don't see any
> uncompressed strings. Not sure if there's any easy way to
> confirm that.
>
>
>
> Just a little surprised at the size of __llvm_prf_names section.
> The llc I built with IR PGO has a __llvm_prf_names section with
> size ~1.4MB. I expect FE instrumentation to produce larger
> name section size, but not so much bigger.
>
> David
>
>
> -Eli
>
> --
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
>
>
>
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170627/b11e2973/attachment.html>
More information about the llvm-dev
mailing list