[LLVMdev] RFC - Profile Guided Optimization in LLVM

Jakob Stoklund Olesen stoklund at 2pi.dk
Wed Jun 12 14:55:26 PDT 2013


On Jun 12, 2013, at 2:23 PM, Diego Novillo <dnovillo at google.com> wrote:

> In terms of optimizations, our (Google) experience is that
> inlining is the key beneficiary of profile information.
> Particularly, in big C++ applications. I expect to focus most
> of my attention on the inliner.

That sounds plausible to me. It seems like we might need a way of representing call graph profiling in addition to the existing branch probabilities?

FWIW, the greedy register allocator’s live range splitting algorithm is designed to consume profile information so it can push spill code into cold blocks. The primary interface is SpillPlacement::getBlockFrequency() which currently returns an estimate based on loop depth only.

/jakob





More information about the llvm-dev mailing list