[Mesa-dev] [PATCH excerpt] mesa: Wrap unlikely() around conditions leading to _mesa_error().

Matt Turner mattst88 at gmail.com
Mon Mar 2 17:56:50 PST 2015


On Mon, Mar 2, 2015 at 4:37 PM, Brian Paul <brianp at vmware.com> wrote:
> On 03/02/2015 04:03 PM, Eric Anholt wrote:
>>
>> Kenneth Graunke <kenneth at whitecape.org> writes:
>>
>>> Generated by the following Coccinelle semantic patch:
>>>
>>> @@
>>> expression E;
>>> @@
>>> if (
>>> -E
>>> +unlikely(E)
>>>   )
>>> { ... _mesa_error(...) ... }
>>>
>>> Improves performance in OglBatch7 (a CPU-bound microbenchmark) on
>>> an i7 4750HQ (Haswell) by 1.08546% +/- 0.519734% (n=292).
>>>
>>> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
>>
>>
>> Neat!
>>
>> I think you're supposed to be able to get the same result by marking
>> _mesa_error as attribute cold.  Then nobody can forget to mark their
>> conditions as unlikely in the future.
>
>
> I suspect unlikely() would be supported by more compilers than 'cold'.

FWIW, this link [0] says MSVC doesn't implement hot/cold nor unlikely.

Other than MSVC... there's really gcc and clang. I'd opt for the ~10
line patch :)

[0] https://connect.microsoft.com/VisualStudio/feedback/details/804542/msvc-add-hot-and-cold-like-function-attributes


More information about the mesa-dev mailing list