haproxy/include/import
Willy Tarreau c9e4adf608 IMPORT: eb32/eb64: use a more parallelizable check for lack of common bits
Instead of shifting the XOR value right and comparing it to 1, which
roughly requires 2 sequential instructions, better test if the XOR has
any bit above the current bit, which means any bit set among those
strictly higher, or in other words that XOR & (-bit << 1) is non-zero.
This is one less instruction in the fast path and gives another nice
performance gain on random keys (in million lookups/s):

    eb32   1k:  33.17 -> 37.30   +12.5%
          10k:  15.74 -> 17.08   +8.51%
         100k:   8.00 ->  9.00   +12.5%
    eb64   1k:  34.40 -> 38.10   +10.8%
          10k:  16.17 -> 17.10   +5.75%
         100k:   8.38 ->  8.87   +5.85%

This is ebtree commit c942a2771758eed4f4584fe23cf2914573817a6b.
2025-09-17 14:30:31 +02:00
..
atomic-ops.h
ceb32_tree.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
ceb64_tree.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
ceba_tree.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
cebb_tree.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
cebib_tree.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
cebis_tree.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
cebl_tree.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
cebs_tree.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
cebtree-prv.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
cebtree.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
eb32sctree.h
eb32tree.h IMPORT: eb32/eb64: use a more parallelizable check for lack of common bits 2025-09-17 14:30:31 +02:00
eb64tree.h IMPORT: eb32/eb64: use a more parallelizable check for lack of common bits 2025-09-17 14:30:31 +02:00
ebimtree.h
ebistree.h
ebmbtree.h
ebpttree.h
ebsttree.h
ebtree-t.h
ebtree.h
ist.h
lru.h
mjson.h
mt_list.h CLEANUP: include: replace hand-rolled offsetof to avoid UB 2025-07-25 17:54:32 +02:00
plock.h
sha1.h
slz-tables.h
slz.h
xxhash.h