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