[PATCH] malloc: remove __builtin_expect

Jeff Law law@redhat.com
Tue Jan 26 15:46:00 GMT 2016


On 01/26/2016 01:59 AM, Jörn Engel wrote:
> On Tue, Jan 26, 2016 at 10:56:49AM +0300, Yury Gribov wrote:
>> On 01/26/2016 03:24 AM, Joern Engel wrote:
>>> From: Joern Engel <joern@purestorage.org>
>>>
>>> It was disabled anyway and only served as obfuscation.  No change
>>> post-compilation.
>>
>> FYI I've witnessed significant improvements from (real) __builtin_expect in
>> other projects.
>
> Interesting.  I tried to find any effect and couldn't.  Michael Kerrisk
> managed to write an example program that demonstrated the advantage:
> http://blog.man7.org/2012/10/how-much-do-builtinexpect-likely-and.html
>
> I tried his program and again couldn't demonstrate any effect.  Not that
> I question his numbers, there likely was an effect using his compiler
> and machine.  But with a newer compiler and/or cpu, the effect was gone.
>
> So if you have a reference to the project and can replicate the
> improvement, I would be interested.
It's likely project and processor specific.  We've certainly seen cases 
through GCC where this matters.   These constructs feed into the branch 
probability estimations that are then used throughout GCC to drive the 
optimization passes -- from high level stuff all the way down to setting 
static branch prediction bits in the assembly code.

jeff



More information about the Libc-alpha mailing list