Hi all, 

I`m using GCC 9.3 AutoFDO and the old version create_gcov on arm64 
and it works well. Actually it support not only LBR like mode but 
also inst_retired even cycles event, which`s the early implementation 
of AutoFDO[1]. There is no difference in output format of create_gcov 
between LBR mode and inst_retired. inst_retired is less accurate than 
LBR but still works.

I hope AutoFDO could work better on GCC and am willing to contribute 
to it, does anybody have suggestions for me?

[1] Ramasamy, Vinodha, et al. "Feedback-directed optimizations in gcc 
with estimated edge profiles from hardware event sampling." (2008).

> On Mon, Apr 26, 2021 at 06:40:56PM +0000, Hongtao Yu wrote:
> >    Andi, thanks for pointing out the perf script issues. Can you please
> >    elaborate a bit on the exact issue you have seen? We’ve been using
> >    specific output of perf script such as mmap, LBR and callstack events
> >    filtered by process id. It works fine so far but may certainly hit issues
> >    in the future with extended uses.
> 
> Okay I took a look at the latest autofdo now. It seems to be basically
> a LLVM project now that depends on LLVM to even build with all kinds
> of dependency hell on some old LLVM version and other packages.
> 
> I guess gcc will really need a replacement that doesn't pull in
> all of LLVM if it wants to continue supporting autofdo.
> 
> I'm myself unable to build now.
> 
> I'm using the old version I had a git fork of and that 
> was before all of this. I added a patch to make it work
> with the latest perf by ignoring increased perf_attr
> and unknown perf events.
> 
> Honza please use
> 
> https://github.com/andikleen/autofdo -b perf-future
> 
> for testing.
> 
> -Andi

Reply via email to