Change in libosmocore[master]: core/utils.h: add OSMO_LIKELY / OSMO_UNLIKELY macros
laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/27046 ) Change subject: core/utils.h: add OSMO_LIKELY / OSMO_UNLIKELY macros ...................................................................... core/utils.h: add OSMO_LIKELY / OSMO_UNLIKELY macros These macros are built on top of the __builtin_expect() function [1], which provides the compiler with branch prediction information. Similar macros exist in the Linux kernel: likely() / unlikely(). [1] https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html Change-Id: I0b029654ba050f079eed4a0574a3fa8019677067 --- M include/osmocom/core/utils.h 1 file changed, 9 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index eda0e39..7625da1 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -38,6 +38,15 @@ /*! Copy a C-string into a sized buffer using sizeof to detect buffer's size */ #define OSMO_STRLCPY_ARRAY(array, src) osmo_strlcpy(array, src, sizeof(array)) +/*! Branch prediction optimizations */ +#if defined(__GNUC__) +#define OSMO_LIKELY(exp) __builtin_expect(!!(exp), 1) +#define OSMO_UNLIKELY(exp) __builtin_expect(!!(exp), 0) +#else +#define OSMO_LIKELY(exp) exp +#define OSMO_UNLIKELY(exp) exp +#endif + /*! A mapping between human-readable string and numeric value */ struct value_string { uint32_t value; /*!< numeric value */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/27046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0b029654ba050f079eed4a0574a3fa8019677067 Gerrit-Change-Number: 27046 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: osmith <osmith@sysmocom.de> Gerrit-Reviewer: pespin <pespin@sysmocom.de> Gerrit-MessageType: merged
participants (1)
-
laforge