Compare commits
5 Commits
1d9e8ab68b
...
v0.0.11
Author | SHA1 | Date | |
---|---|---|---|
84c6a2bfc2 | |||
b5772a6aa0 | |||
e6c39981b9 | |||
c20c08f112 | |||
ac98d4a443 |
@@ -1,7 +1,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.18)
|
cmake_minimum_required(VERSION 3.18)
|
||||||
project(
|
project(
|
||||||
conflict-set
|
conflict-set
|
||||||
VERSION 0.0.10
|
VERSION 0.0.11
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
"A data structure for optimistic concurrency control on ranges of bitwise-lexicographically-ordered keys."
|
"A data structure for optimistic concurrency control on ranges of bitwise-lexicographically-ordered keys."
|
||||||
HOMEPAGE_URL "https://git.weaselab.dev/weaselab/conflict-set"
|
HOMEPAGE_URL "https://git.weaselab.dev/weaselab/conflict-set"
|
||||||
@@ -31,14 +31,12 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|||||||
"MinSizeRel" "RelWithDebInfo")
|
"MinSizeRel" "RelWithDebInfo")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_compile_options(
|
add_compile_options(-fdata-sections -ffunction-sections -Wswitch-enum
|
||||||
-fdata-sections
|
-Werror=switch-enum -fPIC)
|
||||||
-ffunction-sections
|
if(NOT APPLE)
|
||||||
-Wswitch-enum
|
# This causes some versions of clang to crash on macos
|
||||||
-Werror=switch-enum
|
add_compile_options(-g -fno-omit-frame-pointer)
|
||||||
-fPIC
|
endif()
|
||||||
-g
|
|
||||||
-fno-omit-frame-pointer)
|
|
||||||
|
|
||||||
set(full_relro_flags "-pie;LINKER:-z,relro,-z,now,-z,noexecstack")
|
set(full_relro_flags "-pie;LINKER:-z,relro,-z,now,-z,noexecstack")
|
||||||
cmake_push_check_state()
|
cmake_push_check_state()
|
||||||
|
@@ -2104,13 +2104,9 @@ bool scan16(const InternalVersionT *vs, const uint8_t *is, int begin, int end,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Returns true if v[i] <= readVersion for all i such that begin <= i < end
|
// Returns true if v[i] <= readVersion for all i such that begin <= i < end
|
||||||
//
|
|
||||||
// always_inline So that we can optimize when begin or end is a constant.
|
|
||||||
// gcovr exclude annotation necessary because of always_inline?
|
|
||||||
template <bool kAVX512>
|
template <bool kAVX512>
|
||||||
inline __attribute__((always_inline)) bool
|
bool scan16(const InternalVersionT *vs, int begin, int end,
|
||||||
scan16(const InternalVersionT *vs, int begin, int end, // GCOVR_EXCL_LINE
|
InternalVersionT readVersion) {
|
||||||
InternalVersionT readVersion) { // GCOVR_EXCL_LINE
|
|
||||||
assert(0 <= begin && begin < 16);
|
assert(0 <= begin && begin < 16);
|
||||||
assert(0 <= end && end <= 16);
|
assert(0 <= end && end <= 16);
|
||||||
assert(begin <= end);
|
assert(begin <= end);
|
||||||
@@ -2873,7 +2869,7 @@ bool checkRangeRead(Node *n, std::span<const uint8_t> begin,
|
|||||||
template __attribute__((target("avx512f"))) bool
|
template __attribute__((target("avx512f"))) bool
|
||||||
scan16<true>(const InternalVersionT *vs, const uint8_t *is, int begin, int end,
|
scan16<true>(const InternalVersionT *vs, const uint8_t *is, int begin, int end,
|
||||||
InternalVersionT readVersion);
|
InternalVersionT readVersion);
|
||||||
template __attribute__((always_inline, target("avx512f"))) bool
|
template __attribute__((target("avx512f"))) bool
|
||||||
scan16<true>(const InternalVersionT *vs, int begin, int end,
|
scan16<true>(const InternalVersionT *vs, int begin, int end,
|
||||||
InternalVersionT readVersion);
|
InternalVersionT readVersion);
|
||||||
template __attribute__((target("avx512f"))) bool
|
template __attribute__((target("avx512f"))) bool
|
||||||
|
Reference in New Issue
Block a user