diff --git a/lib/nimbase.h b/lib/nimbase.h index d06ed7cbae..e1cb32b15c 100644 --- a/lib/nimbase.h +++ b/lib/nimbase.h @@ -466,16 +466,16 @@ struct TFrame_ { #define NIM_POSIX_INIT __attribute__((constructor)) #ifdef __GNUC__ -# define likely(x) __builtin_expect(x, 1) -# define unlikely(x) __builtin_expect(x, 0) +# define NIM_LIKELY(x) __builtin_expect(x, 1) +# define NIM_UNLIKELY(x) __builtin_expect(x, 0) /* We need the following for the posix wrapper. In particular it will give us POSIX_SPAWN_USEVFORK: */ # ifndef _GNU_SOURCE # define _GNU_SOURCE # endif #else -# define likely(x) (x) -# define unlikely(x) (x) +# define NIM_LIKELY(x) (x) +# define NIM_UNLIKELY(x) (x) #endif #if 0 // defined(__GNUC__) || defined(__clang__) diff --git a/lib/system.nim b/lib/system.nim index 873aa6fc91..ca8eade71e 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -3387,8 +3387,8 @@ else: when not defined(JS): - proc likelyProc(val: bool): bool {.importc: "likely", nodecl, nosideeffect.} - proc unlikelyProc(val: bool): bool {.importc: "unlikely", nodecl, nosideeffect.} + proc likelyProc(val: bool): bool {.importc: "NIM_LIKELY", nodecl, nosideeffect.} + proc unlikelyProc(val: bool): bool {.importc: "NIM_UNLIKELY", nodecl, nosideeffect.} template likely*(val: bool): bool = ## Hints the optimizer that `val` is likely going to be true.