diff --git a/ConflictSet.cpp b/ConflictSet.cpp index ece8e60..8187a9a 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -1969,6 +1969,9 @@ downLeftSpine: return n->entry.rangeVersion <= readVersion; } +// Only one of these is ever exercised. I'm not worried about somehow not +// calling one of these though. +// GCOVR_EXCL_START #ifdef HAS_AVX uint32_t compare16_32bit(const InternalVersionT *vs, InternalVersionT rv) { uint32_t compared = 0; @@ -1995,6 +1998,7 @@ compare16_32bit_avx512(const InternalVersionT *vs, InternalVersionT rv) { _mm512_setzero_epi32()); } #endif +// GCOVR_EXCL_STOP // Returns true if v[i] <= readVersion for all i such that begin <= is[i] < end // Preconditions: begin <= end, end - begin < 256 @@ -2049,9 +2053,9 @@ bool scan16(const InternalVersionT *vs, const uint8_t *is, int begin, int end, uint32_t compared = 0; if constexpr (kAVX512) { - compared = compare16_32bit_avx512(vs, readVersion); + compared = compare16_32bit_avx512(vs, readVersion); // GCOVR_EXCL_LINE } else { - compared = compare16_32bit(vs, readVersion); + compared = compare16_32bit(vs, readVersion); // GCOVR_EXCL_LINE } return !(compared & mask); @@ -2077,10 +2081,11 @@ 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 // // always_inline So that we can optimize when begin or end is a constant. +// gcovr exclude annotation necessary because of always_inline? template inline __attribute__((always_inline)) bool -scan16(const InternalVersionT *vs, int begin, int end, - InternalVersionT readVersion) { +scan16(const InternalVersionT *vs, int begin, int end, // GCOVR_EXCL_LINE + InternalVersionT readVersion) { // GCOVR_EXCL_LINE assert(0 <= begin && begin < 16); assert(0 <= end && end <= 16); assert(begin <= end);