90 lines
2.7 KiB
Diff
90 lines
2.7 KiB
Diff
|
From 984f3069370cd4a347cb38269d430b428385affd Mon Sep 17 00:00:00 2001
|
||
|
From: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
|
||
|
Date: Thu, 12 Feb 2015 18:31:40 +0100
|
||
|
Subject: 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>
|
||
|
|
||
|
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
|
||
|
--
|
||
|
cgit v0.10.2
|
||
|
|