From c8f7641646cd4915f0dc92a81acf09767dfdddca Mon Sep 17 00:00:00 2001 From: Snappy Team Date: Wed, 28 Jul 2021 15:32:22 +0000 Subject: [PATCH] Remove inline assembly as the bug in clang was fixed PiperOrigin-RevId: 387356237 --- snappy.cc | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/snappy.cc b/snappy.cc index 632ab85..a8a8e80 100644 --- a/snappy.cc +++ b/snappy.cc @@ -1141,22 +1141,6 @@ std::pair DecompressBranchless( } std::ptrdiff_t delta = op + len_min_offset - len; if (SNAPPY_PREDICT_FALSE(delta < 0)) { -#if defined(__GNUC__) && defined(__x86_64__) - // TODO - // When validating, both code path reduced to `op += len`. Ie. this - // becomes effectively - // - // if (delta < 0) if (tag_type != 0) goto break_loop; - // op += len; - // - // The compiler interchanges the predictable and almost always false - // first if-statement with the completely unpredictable second - // if-statement, putting an unpredictable branch on every iteration. - // This empty asm is worth almost 2x, which I think qualifies for an - // award for the most load-bearing empty statement. - asm(""); -#endif - // Due to the spurious offset in literals have this will trigger // at the start of a block when op is still smaller than 256. if (tag_type != 0) goto break_loop;