Skip to content

Commit d280d82

Browse files
committed
Added branch predictor hint.
1 parent 9cffcf6 commit d280d82

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

src/ds/bits.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
# define ALWAYSINLINE __forceinline
1010
# define NOINLINE __declspec(noinline)
1111
# define HEADER_GLOBAL __declspec(selectany)
12+
# define likely(x) !!(x)
13+
# define unlikely(x) !!(x)
1214
#else
15+
# define likely(x) __builtin_expect(!!(x), 1)
16+
# define unlikely(x) __builtin_expect(!!(x), 0)
1317
# include <cpuid.h>
1418
# include <emmintrin.h>
1519
# define ALWAYSINLINE __attribute__((always_inline))

src/mem/alloc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,7 @@ namespace snmalloc
872872
inline void handle_message_queue()
873873
{
874874
// Inline the empty check, but not necessarily the full queue handling.
875-
if (message_queue().is_empty())
875+
if (likely(message_queue().is_empty()))
876876
return;
877877

878878
handle_message_queue_inner();

0 commit comments

Comments
 (0)