[PATCH] D17864: [PGO] Promote indirect calls to conditional direct calls with value-profile

Adam Nemet via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 15 09:49:18 PDT 2016


anemet added a comment.

I benchmarked this patch on our ARM64.  I've done two runs.

In the first, I used the patch with -enable-value-profiling, LTO and PGO of course.  I was using FE-based instrumentation.  This is the first column in the table below.

I've also done a second run where I tried to fix up the missed promotions due to the incorrect internalization for static functions (the FE variant of http://reviews.llvm.org/D17895).  This helps povray which has a few critical indirect calls to functions that are statically defined.  Unfortunately, the promoted calls are still not inlined in povray which would further improve performance.

This the second column in the table and the diff is relative to the previous column (i.e. povray in the second run recovers *half* the regression from the first run).  The numbers are directly from LNT so a negative percentage is a performance *improvement*.

  |                        |    patch  | no-localize |
  |------------------------+-----------+-------------+
  | CINT2006/464.h264ref   |    -3.35% |             |
  | CINT2006/483.xalancbmk |    -1.11% |             |
  |------------------------+-----------+-------------+
  | CFP2006/453.povray     |    +0.92% | -0.48%      |
  |------------------------+-----------+-------------+
  | CINT2000/252.eon       |    -1.06% |             |


http://reviews.llvm.org/D17864





More information about the llvm-commits mailing list