From: Steinar H. Gunderson Date: Tue, 6 Oct 2020 20:46:46 +0000 (+0200) Subject: Run clang-format. X-Git-Tag: 1.0.0~40 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=faf31198659504235e2b65b5c3bb2ccb2ef296aa;p=plocate Run clang-format. --- diff --git a/bench.cpp b/bench.cpp index 6ab0494..78fa339 100644 --- a/bench.cpp +++ b/bench.cpp @@ -1,16 +1,16 @@ -#include -#include -#include #include +#include #include +#include +#include #define dprintf(...) //#define dprintf(...) fprintf(stderr, __VA_ARGS__); -#include "turbopfor.h" -#include "vp4.h" #include "db.h" #include "io_uring_engine.h" +#include "turbopfor.h" +#include "vp4.h" using namespace std; using namespace std::chrono; @@ -99,5 +99,5 @@ int main(void) // 1 ns/element, a 10k-element posting list goes by in 0.01 ms, which is way beyond // instantaneous in practice). fprintf(stderr, "%.1f MB/sec (compressed), %.1f MB/sec (uncompressed), %.1f ns/element\n", posting_list_bytes / own_sec / 1048576.0, - (total_elements * sizeof(uint32_t)) / own_sec / 1048576.0, 1e9 * own_sec / total_elements); + (total_elements * sizeof(uint32_t)) / own_sec / 1048576.0, 1e9 * own_sec / total_elements); } diff --git a/io_uring_engine.cpp b/io_uring_engine.cpp index f8295aa..895b16c 100644 --- a/io_uring_engine.cpp +++ b/io_uring_engine.cpp @@ -91,7 +91,8 @@ void IOUringEngine::finish() } unsigned head; - io_uring_for_each_cqe(&ring, head, cqe) { + io_uring_for_each_cqe(&ring, head, cqe) + { PendingRead *pending = reinterpret_cast(cqe->user_data); if (cqe->res <= 0) { fprintf(stderr, "async read failed: %s\n", strerror(-cqe->res)); diff --git a/plocate-build.cpp b/plocate-build.cpp index 0a19c1f..18d3bd9 100644 --- a/plocate-build.cpp +++ b/plocate-build.cpp @@ -144,16 +144,18 @@ void PostingListBuilder::write_header(uint32_t docid) class Corpus { public: Corpus(FILE *outfp, size_t block_size) - : invindex(new PostingListBuilder*[NUM_TRIGRAMS]), outfp(outfp), block_size(block_size) {} + : invindex(new PostingListBuilder *[NUM_TRIGRAMS]), outfp(outfp), block_size(block_size) {} void add_file(string filename); void flush_block(); vector filename_blocks; size_t num_files = 0, num_files_in_block = 0, num_blocks = 0; - bool seen_trigram(uint32_t trgm) { + bool seen_trigram(uint32_t trgm) + { return invindex[trgm] != nullptr; } - PostingListBuilder& get_pl_builder(uint32_t trgm) { + PostingListBuilder &get_pl_builder(uint32_t trgm) + { if (invindex[trgm] == nullptr) { invindex[trgm] = new PostingListBuilder; } @@ -161,7 +163,7 @@ public: } private: - unique_ptr invindex; + unique_ptr invindex; FILE *outfp; string current_block; string tempbuf; @@ -217,7 +219,7 @@ void Corpus::flush_block() string read_cstr(FILE *fp) { string ret; - for ( ;; ) { + for (;;) { int ch = getc(fp); if (ch == -1) { perror("getc"); @@ -402,7 +404,8 @@ void do_build(const char *infile, const char *outfile, int block_size) size_t trigrams = 0, longest_posting_list = 0; size_t bytes_for_posting_lists = 0; for (unsigned trgm = 0; trgm < NUM_TRIGRAMS; ++trgm) { - if (!corpus.seen_trigram(trgm)) continue; + if (!corpus.seen_trigram(trgm)) + continue; PostingListBuilder &pl_builder = corpus.get_pl_builder(trgm); pl_builder.finish(); longest_posting_list = max(longest_posting_list, pl_builder.num_docids); diff --git a/turbopfor.h b/turbopfor.h index 2422652..1796708 100644 --- a/turbopfor.h +++ b/turbopfor.h @@ -13,13 +13,12 @@ // although some implementation details have been worked out by studying the // TurboPFor code. +#include #include #include +#include #include #include -#include - -#include #if defined(__i386__) || defined(__x86_64__) #define COULD_HAVE_SSE2 @@ -29,19 +28,25 @@ // Forward declarations to declare to the template code below that they exist. // (These must seemingly be non-templates for function multiversioning to work.) __attribute__((target("default"))) -const unsigned char *decode_for_interleaved_128_32(const unsigned char *in, uint32_t *out); +const unsigned char * +decode_for_interleaved_128_32(const unsigned char *in, uint32_t *out); __attribute__((target("default"))) -const unsigned char *decode_pfor_bitmap_interleaved_128_32(const unsigned char *in, uint32_t *out); +const unsigned char * +decode_pfor_bitmap_interleaved_128_32(const unsigned char *in, uint32_t *out); __attribute__((target("default"))) -const unsigned char *decode_pfor_vb_interleaved_128_32(const unsigned char *in, uint32_t *out); +const unsigned char * +decode_pfor_vb_interleaved_128_32(const unsigned char *in, uint32_t *out); #ifdef COULD_HAVE_SSE2 __attribute__((target("sse2"))) -const unsigned char *decode_for_interleaved_128_32(const unsigned char *in, uint32_t *out); +const unsigned char * +decode_for_interleaved_128_32(const unsigned char *in, uint32_t *out); __attribute__((target("sse2"))) -const unsigned char *decode_pfor_bitmap_interleaved_128_32(const unsigned char *in, uint32_t *out); +const unsigned char * +decode_pfor_bitmap_interleaved_128_32(const unsigned char *in, uint32_t *out); __attribute__((target("sse2"))) -const unsigned char *decode_pfor_vb_interleaved_128_32(const unsigned char *in, uint32_t *out); +const unsigned char * +decode_pfor_vb_interleaved_128_32(const unsigned char *in, uint32_t *out); #endif constexpr uint32_t mask_for_bits(unsigned bit_width) @@ -177,7 +182,9 @@ public: : in(reinterpret_cast(in)), bits(bits), mask(_mm_set1_epi32(mask_for_bits(bits))) {} __attribute__((target("sse2"))) - __m128i read() { + __m128i + read() + { __m128i val = _mm_srli_epi32(_mm_loadu_si128(in), bits_used); if (bits_used + bits > 32) { __m128i val_upper = _mm_slli_epi32(_mm_loadu_si128(in + 1), 32 - bits_used); @@ -251,10 +258,13 @@ const unsigned char *decode_for(const unsigned char *in, unsigned num, Docid *ou class DeltaDecoderSSE2 { public: __attribute__((target("sse2"))) - DeltaDecoderSSE2(uint32_t prev_val) : prev_val(_mm_set1_epi32(prev_val)) {} + DeltaDecoderSSE2(uint32_t prev_val) + : prev_val(_mm_set1_epi32(prev_val)) {} __attribute__((target("sse2"))) - __m128i decode(__m128i val) { + __m128i + decode(__m128i val) + { val = _mm_add_epi32(val, _mm_slli_si128(val, 4)); val = _mm_add_epi32(val, _mm_slli_si128(val, 8)); val = _mm_add_epi32(val, _mm_add_epi32(prev_val, delta)); @@ -271,8 +281,7 @@ private: }; template -__attribute__((target("sse2"))) -inline void delta_decode_sse2(uint32_t *out) +__attribute__((target("sse2"))) inline void delta_decode_sse2(uint32_t *out) { DeltaDecoderSSE2 delta(out[-1]); __m128i *outvec = reinterpret_cast<__m128i *>(out); @@ -284,12 +293,13 @@ inline void delta_decode_sse2(uint32_t *out) template __attribute__((target("sse2"))) -const unsigned char *decode_bitmap_sse2_unrolled(const unsigned char *in, uint32_t *out) +const unsigned char * +decode_bitmap_sse2_unrolled(const unsigned char *in, uint32_t *out) { __m128i *outvec = reinterpret_cast<__m128i *>(out); DeltaDecoderSSE2 delta(out[-1]); InterleavedBitReaderSSE2 bs(in, bit_width); - #pragma GCC unroll 32 +#pragma GCC unroll 32 for (unsigned i = 0; i < BlockSize / 4; ++i) { __m128i val = bs.read(); if constexpr (OrWithExisting) { @@ -306,42 +316,76 @@ const unsigned char *decode_bitmap_sse2_unrolled(const unsigned char *in, uint32 template __attribute__((target("sse2"))) -const unsigned char *decode_bitmap_sse2(const unsigned char *in, unsigned bit_width, uint32_t *out) +const unsigned char * +decode_bitmap_sse2(const unsigned char *in, unsigned bit_width, uint32_t *out) { switch (bit_width) { - case 0: return decode_bitmap_sse2_unrolled(in, out); - case 1: return decode_bitmap_sse2_unrolled(in, out); - case 2: return decode_bitmap_sse2_unrolled(in, out); - case 3: return decode_bitmap_sse2_unrolled(in, out); - case 4: return decode_bitmap_sse2_unrolled(in, out); - case 5: return decode_bitmap_sse2_unrolled(in, out); - case 6: return decode_bitmap_sse2_unrolled(in, out); - case 7: return decode_bitmap_sse2_unrolled(in, out); - case 8: return decode_bitmap_sse2_unrolled(in, out); - case 9: return decode_bitmap_sse2_unrolled(in, out); - case 10: return decode_bitmap_sse2_unrolled(in, out); - case 11: return decode_bitmap_sse2_unrolled(in, out); - case 12: return decode_bitmap_sse2_unrolled(in, out); - case 13: return decode_bitmap_sse2_unrolled(in, out); - case 14: return decode_bitmap_sse2_unrolled(in, out); - case 15: return decode_bitmap_sse2_unrolled(in, out); - case 16: return decode_bitmap_sse2_unrolled(in, out); - case 17: return decode_bitmap_sse2_unrolled(in, out); - case 18: return decode_bitmap_sse2_unrolled(in, out); - case 19: return decode_bitmap_sse2_unrolled(in, out); - case 20: return decode_bitmap_sse2_unrolled(in, out); - case 21: return decode_bitmap_sse2_unrolled(in, out); - case 22: return decode_bitmap_sse2_unrolled(in, out); - case 23: return decode_bitmap_sse2_unrolled(in, out); - case 24: return decode_bitmap_sse2_unrolled(in, out); - case 25: return decode_bitmap_sse2_unrolled(in, out); - case 26: return decode_bitmap_sse2_unrolled(in, out); - case 27: return decode_bitmap_sse2_unrolled(in, out); - case 28: return decode_bitmap_sse2_unrolled(in, out); - case 29: return decode_bitmap_sse2_unrolled(in, out); - case 30: return decode_bitmap_sse2_unrolled(in, out); - case 31: return decode_bitmap_sse2_unrolled(in, out); - case 32: return decode_bitmap_sse2_unrolled(in, out); + case 0: + return decode_bitmap_sse2_unrolled(in, out); + case 1: + return decode_bitmap_sse2_unrolled(in, out); + case 2: + return decode_bitmap_sse2_unrolled(in, out); + case 3: + return decode_bitmap_sse2_unrolled(in, out); + case 4: + return decode_bitmap_sse2_unrolled(in, out); + case 5: + return decode_bitmap_sse2_unrolled(in, out); + case 6: + return decode_bitmap_sse2_unrolled(in, out); + case 7: + return decode_bitmap_sse2_unrolled(in, out); + case 8: + return decode_bitmap_sse2_unrolled(in, out); + case 9: + return decode_bitmap_sse2_unrolled(in, out); + case 10: + return decode_bitmap_sse2_unrolled(in, out); + case 11: + return decode_bitmap_sse2_unrolled(in, out); + case 12: + return decode_bitmap_sse2_unrolled(in, out); + case 13: + return decode_bitmap_sse2_unrolled(in, out); + case 14: + return decode_bitmap_sse2_unrolled(in, out); + case 15: + return decode_bitmap_sse2_unrolled(in, out); + case 16: + return decode_bitmap_sse2_unrolled(in, out); + case 17: + return decode_bitmap_sse2_unrolled(in, out); + case 18: + return decode_bitmap_sse2_unrolled(in, out); + case 19: + return decode_bitmap_sse2_unrolled(in, out); + case 20: + return decode_bitmap_sse2_unrolled(in, out); + case 21: + return decode_bitmap_sse2_unrolled(in, out); + case 22: + return decode_bitmap_sse2_unrolled(in, out); + case 23: + return decode_bitmap_sse2_unrolled(in, out); + case 24: + return decode_bitmap_sse2_unrolled(in, out); + case 25: + return decode_bitmap_sse2_unrolled(in, out); + case 26: + return decode_bitmap_sse2_unrolled(in, out); + case 27: + return decode_bitmap_sse2_unrolled(in, out); + case 28: + return decode_bitmap_sse2_unrolled(in, out); + case 29: + return decode_bitmap_sse2_unrolled(in, out); + case 30: + return decode_bitmap_sse2_unrolled(in, out); + case 31: + return decode_bitmap_sse2_unrolled(in, out); + case 32: + return decode_bitmap_sse2_unrolled(in, out); } assert(false); } @@ -382,7 +426,8 @@ const unsigned char *decode_for_interleaved(const unsigned char *in, Docid *out) } __attribute__((target("default"))) -const unsigned char *decode_for_interleaved_128_32(const unsigned char *in, uint32_t *out) +const unsigned char * +decode_for_interleaved_128_32(const unsigned char *in, uint32_t *out) { return decode_for_interleaved_generic<128>(in, out); } @@ -390,7 +435,8 @@ const unsigned char *decode_for_interleaved_128_32(const unsigned char *in, uint #ifdef COULD_HAVE_SSE2 // Specialized version for SSE2. __attribute__((target("sse2"))) -const unsigned char *decode_for_interleaved_128_32(const unsigned char *in, uint32_t *out) +const unsigned char * +decode_for_interleaved_128_32(const unsigned char *in, uint32_t *out) { constexpr unsigned BlockSize = 128; @@ -494,7 +540,8 @@ const unsigned char *decode_pfor_bitmap_interleaved(const unsigned char *in, Doc } __attribute__((target("default"))) -const unsigned char *decode_pfor_bitmap_interleaved_128_32(const unsigned char *in, uint32_t *out) +const unsigned char * +decode_pfor_bitmap_interleaved_128_32(const unsigned char *in, uint32_t *out) { return decode_pfor_bitmap_interleaved_generic<128>(in, out); } @@ -502,12 +549,13 @@ const unsigned char *decode_pfor_bitmap_interleaved_128_32(const unsigned char * #ifdef COULD_HAVE_SSE2 // Specialized version for SSE2. __attribute__((target("sse2"))) -const unsigned char *decode_pfor_bitmap_interleaved_128_32(const unsigned char *in, uint32_t *out) +const unsigned char * +decode_pfor_bitmap_interleaved_128_32(const unsigned char *in, uint32_t *out) { constexpr unsigned BlockSize = 128; - // Set all output values to zero, before the exceptions are filled in. - #pragma GCC unroll 4 +// Set all output values to zero, before the exceptions are filled in. +#pragma GCC unroll 4 for (unsigned i = 0; i < BlockSize / 4; ++i) { _mm_storeu_si128(reinterpret_cast<__m128i *>(out) + i, _mm_setzero_si128()); } @@ -634,14 +682,16 @@ const unsigned char *decode_pfor_vb_interleaved(const unsigned char *in, Docid * } __attribute__((target("default"))) -const unsigned char *decode_pfor_vb_interleaved_128_32(const unsigned char *in, uint32_t *out) +const unsigned char * +decode_pfor_vb_interleaved_128_32(const unsigned char *in, uint32_t *out) { return decode_pfor_vb_interleaved_generic<128>(in, out); } // Specialized version for SSE2. __attribute__((target("sse2"))) -const unsigned char *decode_pfor_vb_interleaved_128_32(const unsigned char *in, uint32_t *out) +const unsigned char * +decode_pfor_vb_interleaved_128_32(const unsigned char *in, uint32_t *out) { constexpr unsigned BlockSize = 128; using Docid = uint32_t;