Use auto profiler to set branch weights

Diego Novillo dnovillo at google.com
Mon Oct 28 08:21:16 PDT 2013


ping?  This is starting to block my progress.


The attached patch includes Eric's comments on the test case.  I still
have not renamed the option names, as we have not reached closure on
the flag names.

The implementation works well enough to produce SPECint results. I've
compared GCC's implementation of the auto profiler vs mine:

- GCC gets performance differences between -2% and +14%, with the mean
improving by +4%
- LLVM gets performance differences between -7% and +2%, with the mean
degrading by -1%

I'm not too concerned (yet) about the bad performance I'm getting with
LLVM. Both compilers can build all of SPECint (I'm only having trouble
with perlbench) and, clearly, the branch hints generated by the patch
are having an effect.

I will use spec and other performance benchmarks to drive further
changes to the LLVM implementation. Right now I'm interested in a
review of the actual workings of the patch.  I am sure that it will
need changes, and I would like to get those done before I start
completing it to get the performance numbers up.


Thanks.  Diego.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-AutoProfile-pass.-Initial-setup.patch
Type: application/octet-stream
Size: 36425 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131028/256aa066/attachment.obj>


More information about the llvm-commits mailing list