[Mesa-dev] [PATCH 1/2] gallium: include util/macros.h

Tobias Klausmann tobias.johannes.klausmann at mni.thm.de
Mon Feb 23 15:04:19 PST 2015


Can somebody push this please?!

Thanks,
Tobias

On 12.02.2015 23:04, Jose Fonseca wrote:
> LGTM.
>
> On 12/02/15 17:31, Tobias Klausmann wrote:
>> The most common macros are defined there, no use to duplicate these
>> Clean up the already redefinded macros
>>
>> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>
>> ---
>>   src/gallium/include/pipe/p_compiler.h | 57 
>> ++---------------------------------
>>   1 file changed, 2 insertions(+), 55 deletions(-)
>>
>> diff --git a/src/gallium/include/pipe/p_compiler.h 
>> b/src/gallium/include/pipe/p_compiler.h
>> index fb018bf..cc4f444 100644
>> --- a/src/gallium/include/pipe/p_compiler.h
>> +++ b/src/gallium/include/pipe/p_compiler.h
>> @@ -33,6 +33,8 @@
>>
>>   #include "p_config.h"
>>
>> +#include "util/macros.h"
>> +
>>   #include <stdlib.h>
>>   #include <string.h>
>>   #include <stddef.h>
>> @@ -204,61 +206,6 @@ void _ReadWriteBarrier(void);
>>
>>   #endif
>>
>> -
>> -/* You should use these macros to mark if blocks where the if condition
>> - * is either likely to be true, or unlikely to be true.
>> - *
>> - * This will inform human readers of this fact, and will also inform
>> - * the compiler, who will in turn inform the CPU.
>> - *
>> - * CPUs often start executing code inside the if or the else blocks
>> - * without knowing whether the condition is true or not, and will have
>> - * to throw the work away if they find out later they executed the
>> - * wrong part of the if.
>> - *
>> - * If these macros are used, the CPU is more likely to correctly 
>> predict
>> - * the right path, and will avoid speculatively executing the wrong 
>> branch,
>> - * thus not throwing away work, resulting in better performance.
>> - *
>> - * In light of this, it is also a good idea to mark as "likely" a path
>> - * which is not necessarily always more likely, but that will 
>> benefit much
>> - * more from performance improvements since it is already much 
>> faster than
>> - * the other path, or viceversa with "unlikely".
>> - *
>> - * Example usage:
>> - * if(unlikely(do_we_need_a_software_fallback()))
>> - *    do_software_fallback();
>> - * else
>> - *    render_with_gpu();
>> - *
>> - * The macros follow the Linux kernel convention, and more examples can
>> - * be found there.
>> - *
>> - * Note that profile guided optimization can offer better results, but
>> - * needs an appropriate coverage suite and does not inform human 
>> readers.
>> - */
>> -#ifndef likely
>> -#  if defined(__GNUC__)
>> -#    define likely(x)   __builtin_expect(!!(x), 1)
>> -#    define unlikely(x) __builtin_expect(!!(x), 0)
>> -#  else
>> -#    define likely(x)   (x)
>> -#    define unlikely(x) (x)
>> -#  endif
>> -#endif
>> -
>> -
>> -/**
>> - * Static (compile-time) assertion.
>> - * Basically, use COND to dimension an array.  If COND is false/zero 
>> the
>> - * array size will be -1 and we'll get a compilation error.
>> - */
>> -#define STATIC_ASSERT(COND) \
>> -   do { \
>> -      (void) sizeof(char [1 - 2*!(COND)]); \
>> -   } while (0)
>> -
>> -
>>   #if defined(__cplusplus)
>>   }
>>   #endif
>>
>



More information about the mesa-dev mailing list