+ * @brief Two macros to provide branch predictor information.
+ * DALI_LIKELY should be used when a branch is taken in almost all cases so the
+ * branch predictor can avoid pre-fetching the code for else branch
+ * DALI_UNLIKELY should be used when a branch is almost never taken
+ * @SINCE_1_0.0
+ */
+#define DALI_LIKELY(expression) __builtin_expect( !!(expression), 1 )
+#define DALI_UNLIKELY(expression) __builtin_expect( !!(expression), 0 )
+
+/**