On Fri, May 8, 2015 at 2:00 AM, Ilya Palachev <i.palac...@samsung.com> wrote: > On 11.04.2015 01:49, Xinliang David Li wrote: >> >> On Fri, Apr 10, 2015 at 3:43 PM, Jan Hubicka <hubi...@ucw.cz> wrote: >>>> >>>> LBR is used for both cfg edge profiling and indirect call Target value >>>> profiling. >>> >>> I see, that makes sense ;) I guess if we want to support profile >>> collection >>> on targets w/o this feature we could still use one of the algorithms that >>> try to guess edge profile from BB profile. >> >> Our experience with sampling cycles or retired instructions to guess >> BB profile has not been great -- the profile quality is significantly >> worse than LBR (which can almost match instrumentation based profile). > > Suppose that I have no opportunity to collect profile on x86 architecture > with LBR support and the only available architecture is arm/aarch64 (since > the application code is significantly different when compiled for different > architectures because of manual optimizations and different function names > and structure).
If it's already manually tuned towards architecture (or even hand-written inlined-assembly), then I don't think FDO/AutoFDO can help much. > > Honza has mentioned that it's possible to guess edge profile from BB > profile. How do you think, can this help in the above described situation? > Yes, this will be much worse than LBR, but can it give any performance > benefit compared with no edge profile at all? Yes, it will. But it's not well tuned at all. I will start tuning it if I have free cycles. It would be great if opensource community can also contribute to this tuning effort. Cheers, Dehao > > -- > Ilya