diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/defs.h | 31 | ||||
-rw-r--r-- | src/mergesort.c | 2 | ||||
-rw-r--r-- | src/util.h | 38 |
3 files changed, 1 insertions, 70 deletions
@@ -49,37 +49,6 @@ # else typedef uint64_t field; # endif - -/* 128 bit and up do not fit in basic types; building composites */ - -#elif entry_field_size == 128 -# ifdef entry_field_signed - typedef struct field { - uint64_t low; - int64_t high; - } field; -# else - typedef struct field { - uint64_t low; - uint64_t high; - } field; -# endif -#elif entry_field_size == 256 -# ifdef entry_field_signed - typedef struct field { - uint64_t low; - uint64_t midlow; - uint64_t midhigh; - int64_t high; - } field; -# else - typedef struct field { - uint64_t low; - uint64_t midlow; - uint64_t midhigh; - uint64_t high; - } field; -# endif #endif union nextoff { diff --git a/src/mergesort.c b/src/mergesort.c index aa05f8e..fb08d29 100644 --- a/src/mergesort.c +++ b/src/mergesort.c @@ -56,7 +56,7 @@ static int merge(struct stream * const dest, struct stream * const A, struct str b = B->get(B, &b_store); while (a || b) { - if (a && (!b || is_less_equal(a_store.val, b_store.val))) { + if (a && (!b || a_store.val <= b_store.val)) { dest->put(dest, a); a = A->get(A, &a_store); } else { @@ -10,42 +10,4 @@ int stream_rewind(struct stream * const restrict in); int split(struct stream * const src, struct stream * const A, struct stream * const B); -/* inline crap below */ - -static inline int is_less_equal(const field a, const field b) __attribute__((always_inline)); - -static inline int is_less_equal(const field a, const field b) -{ - int ret; - -/* all sizes fitting in a primitive type */ -#if entry_field_size <= 64 - - ret = a <= b; - -/* composite of two 64bit */ -#elif entry_field_size == 128 - - if (unlikely(a.high == b.high)) { - ret = a.low <= b.low; - } else { - ret = a.high < b.high; - } - -/* composite of four 64bit */ -#elif entry_field_size == 256 - if (likely(a.high != b.high)) { - ret = a.high < b.high; - } else if (likely(a.midhigh != b.midhigh)){ - ret = a.midhigh < b.midhigh; - } else if (likely(a.midlow != b.midlow)){ - ret = a.midlow < b.midlow; - } else { - ret = a.low <= b.low; - } -#endif - - return ret; -} - #endif /* ALGOS_UTIL_H_INCLUDED */ |