[LLVMdev] RFC - Profile Guided Optimization in LLVM

Jakob Stoklund Olesen stoklund at 2pi.dk
Wed Jun 12 15:25:03 PDT 2013


On Jun 12, 2013, at 3:15 PM, Chandler Carruth <chandlerc at google.com> wrote:

> 
> On Wed, Jun 12, 2013 at 3:10 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
> It predates the block frequency interface. It just needs to be hooked up, patches welcome. It would also be nice to remove the floating point computations from the spill placement code.
> 
> Cool, if Diego doesn't beat me to it, I may send you a patch as that seems easy and obviously beneficial.

Sounds good.

The only complication is that the floats are spilling into RAGreedy where they are used in the cost model. I think they can simply be replaced with BlockFrequency everywhere.

If the block frequencies make sense, this should also be unnecessary:

struct SpillPlacement::Node {
  /// Scale - Inverse block frequency feeding into[0] or out of[1] the bundle.
  /// Ideally, these two numbers should be identical, but inaccuracies in the
  /// block frequency estimates means that we need to normalize ingoing and
  /// outgoing frequencies separately so they are commensurate.
  float Scale[2];

Thanks,
/jakob




More information about the llvm-dev mailing list