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 <davi...@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" <hubi...@ucw.cz> wrote: >> >> > On Tue, Apr 7, 2015 at 9:45 AM, Ilya Palachev <i.palac...@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