diff options
author | Sheikha AL-Hinai <sheikha443@gmail.com> | 2016-01-03 15:06:28 +0400 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2016-01-06 09:38:16 +0000 |
commit | eafb1ebf74c3caf8fbecdc6a4fc7037c3c8f4964 (patch) | |
tree | 92b2b6e7b2576f3cd7d0127693776fdd5e8311cd | |
parent | 1479ad1c632a7511468fc5133e4fd747062c376f (diff) |
tdf#39631: Add optimisation helpers
Change-Id: I3d09eea11e7acabcd9b692bf5abd7676b89f1323
-rw-r--r-- | include/sal/types.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/sal/types.h b/include/sal/types.h index 9cd77f846767..9eb45a6ced24 100644 --- a/include/sal/types.h +++ b/include/sal/types.h @@ -612,6 +612,26 @@ template< typename T1, typename T2 > inline T1 static_int_cast(T2 n) { #define SAL_WARN_UNUSED #endif +#if defined(__GNUC__) && defined(__OPTIMIZE__) +#define _SAL_BOOLEAN_EXPR(expr) \ + __extension__ ({ \ + int _sal_boolean_var_; \ + if (expr) \ + _sal_boolean_var_ = 1; \ + else \ + _sal_boolean_var_ = 0; \ + _sal_boolean_var_; \ +}) +#define SAL_LIKELY(expr) (__builtin_expect (_SAL_BOOLEAN_EXPR(expr), 1)) +#define SAL_UNLIKELY(expr) (__builtin_expect (_SAL_BOOLEAN_EXPR(expr), 0)) +#define SAL_HOT __attribute__((hot)) +#define SAL_COLD __attribute__((cold)) +#else +#define SAL_LIKELY(expr) (expr) +#define SAL_UNLIKELY(expr) (expr) +#define SAL_HOT +#define SAL_COLD +#endif #endif // INCLUDED_SAL_TYPES_H /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |