This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: AutoFDO profile toolchain is open-sourced
- From: Xinliang David Li <davidxl at google dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: Ilya Palachev <i dot palachev at samsung dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Vyacheslav Barinov <v dot barinov at samsung dot com>, Diego Novillo <dnovillo at google dot com>, Sebastian Pop <sebpop at gmail dot com>, Dehao Chen <dehao at google dot com>
- Date: Fri, 10 Apr 2015 15:30:29 -0700
- Subject: Re: AutoFDO profile toolchain is open-sourced
- Authentication-results: sourceware.org; auth=none
- References: <CAO2gOZWydpiBXb=1QDyCRt-ybDieqy8X4S_+uRZk2Y2v+cFdYQ at mail dot gmail dot com> <5523ED98 dot 8080007 at samsung dot com> <CAFk3UF8To5Qcz8NN5rUF3z6j8CCg_89A+62P=1U9YrtbZ5=mLg at mail dot gmail dot com> <20150410203927 dot GA18980 at atrey dot karlin dot mff dot cuni dot cz> <CAAkRFZ+2RK=-qKo4eCRmq0N1QjENm0tAe2PbX3xnC76UyuFrJA at mail dot gmail dot com>
LBR is used for both cfg edge profiling and indirect call Target value
profiling.
David
On Fri, Apr 10, 2015 at 3:26 PM, Xinliang David Li <davidxl@google.com> wrote:
> LBR is used for both cfg edge profiling and indirect call Target value
> profiling.
>
> David
>
> On Apr 10, 2015 10:39 AM, "Jan Hubicka" <hubicka@ucw.cz> wrote:
>>
>> > On Tue, Apr 7, 2015 at 9:45 AM, Ilya Palachev <i.palachev@samsung.com>
>> > wrote:
>> > > In the mentioned README file it is said that " In order to collect
>> > > this
>> > > profile, you will need to have an Intel CPU that have last branch
>> > > record
>> > > (LBR) support." Is this information obsolete? Chrome Canary builds use
>> > > AutoFDO for ARMv7l
>> > > (https://code.google.com/p/chromium/issues/detail?id=434587)
>> >
>> > It does not mean that the profile was recorded on an ARM system: they
>> > can gather perf.data on x86 and then produce a coverage file that is
>> > then used in ARM compiles. I tried it and seems to work well.
>>
>> I must say I did not even try running AutoFDO myself (so I am happy to
>> hear
>> it works). My understanding is that you need LBR only to get indirect
>> call profiling working (i.e. you want to know from where the indirect
>> function is called).
>>
>> Depending on your application this may not be the most important thing to
>> record (either you don't have indirect calls in hot paths or they are
>> handled
>> resonably by speculative devirtualization)
>>
>> Some ARMs also has support for tracing jump pairs, right?
>> Honza
>> >
>> > Sebastian