summaryrefslogtreecommitdiffstats
path: root/src/gallium/include/pipe/p_compiler.h
diff options
context:
space:
mode:
authorTobias Klausmann <tobias.johannes.klausmann@mni.thm.de>2015-02-12 18:31:40 +0100
committerEric Anholt <eric@anholt.net>2015-02-24 12:20:59 +0000
commit984f3069370cd4a347cb38269d430b428385affd (patch)
tree9d970f357b7d6007702050f9c9e021280061c7e9 /src/gallium/include/pipe/p_compiler.h
parent9913ce14e7fc8d67fb58e175b7efac10ded152a9 (diff)
downloadexternal_mesa3d-984f3069370cd4a347cb38269d430b428385affd.zip
external_mesa3d-984f3069370cd4a347cb38269d430b428385affd.tar.gz
external_mesa3d-984f3069370cd4a347cb38269d430b428385affd.tar.bz2
gallium: include util/macros.h
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@mni.thm.de> Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/gallium/include/pipe/p_compiler.h')
-rw-r--r--src/gallium/include/pipe/p_compiler.h57
1 files 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