[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