Commit Graph

  • 183e1a2475 Fixup for adding the third_party/{benchmark, googletest} submodules. Victor Costan 2020-12-14 19:27:23 -0800
  • 549685a598 Remove custom testing and benchmarking code. Victor Costan 2020-12-14 21:26:01 +0000
  • 11f9a77a2f Add Travis-CI build status badge to README.md. Chris Mumford 2020-12-14 09:35:37 -0800
  • 49540965a3 Update Travis CI config. Victor Costan 2020-12-14 09:10:05 -0800
  • ab4bf0209e
    Merge 1846b8a1ec into 8995ffabb9 Henry Lee 2020-12-14 13:44:58 +0100
  • 8995ffabb9 Replace #pragma nounroll with equivalent used elsewhere. Victor Costan 2020-12-14 09:58:26 +0000
  • d1daa83044 Remove inline qualifier from static variables. Victor Costan 2020-12-14 09:38:48 +0000
  • 3b571656fa 1) Improve the lookup table data to require less instructions to extract the necessary data. We now store len - offset in a signed int16, this happens to remove masking offset in the calculations and the calculations that need to be done precisely give the flags that we need for testing correctness. 2) Replace offset extraction with a lookup mask. This is less uops and is needed because we need to special case type 3 to always return 0 as to properly trigger the fallback. 3) Unroll the loop twice, this removes some loop-condition checks AND it improves the generated assembly. The loop variables tend to end up in a different register requiring mov's having two consecutive copies allows the elision of the mov's. Snappy Team 2020-12-10 00:30:54 +0000
  • a9730ed505 Optimize zippy decompression by making IncrementalCopy faster. Shahriar Rouf 2020-12-09 02:27:22 +0000
  • 56c2c247d0 Internal change Snappy Team 2020-12-03 03:15:10 +0000
  • a94be58e65 Optimize zippy decompression by making IncrementalCopy faster. Shahriar Rouf 2020-12-03 00:50:04 +0000
  • 0b3f7c1566 Fix compilation in clang, unused variable Brian Fraser 2020-11-22 12:36:00 +0100
  • 01a566f825 Fix opensource version Snappy Team 2020-11-19 13:42:42 +0000
  • 616b8229b6 Add LZ4 as a benchmark option. Snappy is starting to look really good compared to LZ4. LZ4 is considered the fastest solution by many on internet. We now see that Snappy is actually becoming very competitive with compression a little faster and decompression slower but certainly not terribly slower. Snappy Team 2020-11-18 21:10:24 +0000
  • e4a6e97b91 Extend validate benchmarks over all types and also add a medley for validation. Snappy Team 2020-11-16 15:10:23 +0000
  • 719bed0ae2 Bug fix. Error on 0 offset copies. Snappy Team 2020-11-14 21:55:24 +0000
  • 289c8a3c0a Make zippy decompression branchless Snappy Team 2020-11-14 15:27:36 +0000
  • 3bfa265a04 Revert zippy optimization that causes heap buffer overflows. Snappy Team 2020-11-13 17:58:32 +0000
  • 4d2dc9dcbb Optimize zippy unzipping by upto >10% by making IncrementalCopy faster. Shahriar Rouf 2020-11-13 16:26:13 +0000
  • 11e5165b98 Add a benchmark that decreased the branch prediction memorization by increasing the amount of independent branches executed per benchmark iteration. Snappy Team 2020-11-13 13:12:41 +0000
  • 6835abd953 Change hash function for Compress. Luca Versari 2020-11-09 23:32:45 +0000
  • 3675176432
    Merge bb152678fa into 368b01c8dd MacChen02 2020-11-03 23:17:13 +0100
  • 368b01c8dd Merge pull request #107 from jsteemann:bug-fix/fix-compile-warning Victor Costan 2020-11-03 20:51:55 +0000
  • 1ce58af28e Fix the use of op + len when op is nullptr and len is non-zero. See https://reviews.llvm.org/D67122 for some discussion of why this can matter. I don't think this should have any noticeable effect on performance. Snappy Team 2020-11-02 17:46:36 +0000
  • 0b990db2b8 Run clang-format Luca Versari 2020-10-30 17:37:07 +0000
  • cb2b3c7ec6 fix compile warnings due to missing override specifiers jsteemann 2020-10-29 21:50:50 +0100
  • 6e41fe606e
    Fix docs: Snappy compressor works in 64 kB blocks instead of 32 kB now Hsiao-Wei Wang 2020-10-13 17:58:17 +0800
  • 7ffaf77cf4 Replace ARCH_K8 with __x86_64__. Chris Kennelly 2020-07-15 17:34:03 +0000
  • 43ef82b86a Availability of the immintrin.h should not implicitly disable support of all pre-Haswell CPUs. User needs to explicitly specify AVX2 requirement via SNAPPY_REQUIRE_AVX2 if it was their intention. Andrzej Potepa 2020-10-07 14:22:59 +0200
  • c74a946f41
    Merge 43149b6c39 into 4dd277fed4 Howard Hinnant 2020-08-08 16:30:33 -0400
  • d6121987aa
    Merge 11f685fa6f into 4dd277fed4 Victor Costan 2020-08-08 16:30:00 -0400
  • fa992dad9b
    Merge c51f153377 into 4dd277fed4 MacChen02 2020-07-15 14:43:06 -0500
  • 4dd277fed4 Replace the division with a constant table in IncrementalCopy Snappy Team 2020-07-10 22:21:23 +0000
  • c51f153377 Add prefetch instructions in FindMatchLength MacChen02 2020-06-15 19:52:36 +0800
  • f16eda3466 Correct uninitialized variable. Snappy Team 2020-05-21 21:30:02 +0000
  • bb152678fa
    update snappy.cc Optimize by about 7.82% MacChen02 2020-05-23 17:24:52 +0800
  • d9f7fc4d18
    Add another C# implementation Ivan Gavryliuk 2020-05-18 09:28:15 +0100
  • c383002f4c travis: bump linux gcc to 10 Daniel Black 2020-05-16 16:17:22 +1000
  • ca19171d8e travis: avx2 with clang too Daniel Black 2020-05-16 17:24:48 +1000
  • d2ad6fa018 travis: multiarch Daniel Black 2020-05-16 11:55:54 +1000
  • 57334b8b85 Enable ARM64 and PPC64 on Travis CI. Victor Costan 2020-05-04 06:06:59 -0700
  • 837f38b3e0 Revise stubs for ARCH_{K8,PPC,ARM}. Victor Costan 2020-05-06 15:55:59 +0000
  • e1353b9fa8 Remove ARCH_* guards around Bits::FindLSBSetNonZero64(). Victor Costan 2020-05-05 20:17:32 +0000
  • c98344f626 Fix Clang/GCC compilation warnings. Victor Costan 2020-05-05 16:13:04 +0000
  • 31ac8a5aae Fix all compilation warnings. Victor Costan 2020-05-04 05:02:11 -0700
  • 113cd97ab3 Tighten types on a few for loops. Victor Costan 2020-05-04 12:31:03 +0000
  • abde3abb1f Fix Travis CI build. Victor Costan 2020-04-30 02:00:33 +0000
  • e6506681fa Fix accidental double std:: qualifiers. Victor Costan 2020-04-30 01:03:12 +0000
  • 63620c06d2 Add some std:: qualifiers to types and functions. Victor Costan 2020-04-29 22:31:17 +0000
  • 5417da69b7 Switch from C headers to C++ headers. Victor Costan 2020-04-29 19:32:47 +0000
  • 0f849ae009
    Merge 507e443927 into 251d935d50 Evan Klitzke 2020-04-18 07:33:51 +0000
  • 251d935d50 Remove #include <string> from snappy-stubs-public.h. Victor Costan 2020-04-14 15:48:25 +0000
  • 4f195aee43 Remove mismatched #endif. Victor Costan 2020-04-14 00:37:10 +0000
  • 041c608086 Remove platform-dependent code for unaligned loads/stores. Victor Costan 2020-04-14 00:19:00 +0000
  • 27ff130ff9 Remove platform-dependent code for little-endian loads and stores. Victor Costan 2020-04-13 22:30:24 +0000
  • a4cdb5d133 Introduce SNAPPY_ATTRIBUTE_ALWAYS_INLINE. Victor Costan 2020-04-13 19:47:34 +0000
  • 231b8be076 Migrate to standard integral types. Victor Costan 2020-04-12 20:03:50 +0000
  • 14bef66290 Modernize memcpy() and memmove() usage. Victor Costan 2020-04-12 00:01:01 +0000
  • e166a7c91d
    Merge a6765fd8ad into d674348a0c David Miller 2020-04-10 19:21:18 -1000
  • d674348a0c Improve zippy with 5-10%. Snappy Team 2020-03-31 02:46:46 +0000
  • 4dfcad9f4e assertion failure on darwin_x86_64, have to investigage Snappy Team 2020-03-27 23:17:50 +0000
  • e19178748f assertion failure on darwin_x86_64, have to investigage Snappy Team 2020-03-27 16:35:10 +0000
  • 0faf56378e This cl does two things 1) It shaves of a few cycles from the data dependency chain. By using "shrd" instead of a load. 2) The important loop is finding small copies (4-12) which are either "copy 1", or "copy 2" depending if the offset fits <2048. It turns out that this is a branch that is mispredicted often. Due to the long dependency chain the CPU is running with IPC~1 anyway so we can freely add instructions to instead emit copies branchfree. This reduces the branch misspredicts from 15% to 11% (for BM_ZFlat/6 txt1) and from 5.6% to 4% (for BM_ZFlat/10 or pb). Snappy Team 2020-03-27 14:57:37 +0000
  • 0c7ed08a25 The result on protobuf benchmark is around 19%. Results vary by their propensity for compression. As the frequency of finding matches influences the amount of branch misspredicts and the amount of hashing. Snappy Team 2020-03-25 15:24:14 +0000
  • 3c77e01459 1) Make the output pointer a local variable such it doesn't need a load add store on it's loop carried dependency chain. 2) Reduce the input pointer loop carried dependency chain from 7 cycles to 4 cycles by using pre-loading. This is a very subtle point. 3) Just brutally copy 64 bytes which removes a difficult to predict branch from the inner most loop. There is enough bandwidth to do so in the intrinsic cycles of the loop. 4) Implement limit pointers that include the slop region. This removes unnecessary instructions from the hot path. 5) It seems the removal of the difficult to predict branch has removed the code sensitivity to alignment, so remove the asm nop's. Snappy Team 2020-02-12 18:04:58 +0000
  • 9eabb7baba Cut a load from the critical dependency chain of the input pointer by speculating the uncommon case of COPY_4 is not happening. Snappy Team 2020-02-07 14:38:49 +0000
  • cddd9c0875 Improve comments in IncrementalCopy, add an assert. Snappy Team 2020-01-31 09:44:03 +0000
  • a6765fd8ad Minimal changes to add reasonable support for POWER architecture detection, for use in IncrementalCopy(). Power9 has true unaligned loads and stores, Power8 uses the equivalent of the SSE2 code. David Miller 2020-04-08 18:02:51 -0400
  • 75b2bdce6f Add -fPIC option for snappy static lib Pierre de Fréminville 2020-03-30 10:27:25 +0000
  • 5334fbfd14 modify instruction layout in DecompressAllTags Giantlan 2020-03-17 14:52:05 +0800
  • 3686852940 modify instruction layout Giantlan 2020-03-17 11:05:59 +0800
  • 4150255128 copy modify in ARCH_ARM Giantlan 2020-03-16 15:28:52 +0800
  • 9eb84f2435 Add prefetch in ARCH_ARM Giantlan 2020-03-05 11:21:56 +0800
  • 0d75a87b54
    Merge 3c6d114585 into 537f4ad624 Yikun Jiang 2020-03-02 19:02:05 -0800
  • 3c6d114585 Fix some minor change to improve performance Yikun Jiang 2020-03-03 11:00:08 +0800
  • eea8908a7c
    Update snappy-stubs-internal.h Daniel Black 2020-02-26 11:09:29 +1100
  • 1d2e0f6219 Add more definitions to detect PPC64 Alexander Grund 2020-02-20 15:22:04 +0100
  • 016d3b7ea0
    Merge a5828c8ff1 into 537f4ad624 Ming Wang 2020-02-18 03:57:36 -0800
  • a5828c8ff1 Optimize unaligned operator function on MIPS64 platform. wangming 2020-02-18 19:20:37 +0800
  • 7c7e2c4358
    Merge 418a6e233c into 537f4ad624 huangwenjun 2020-01-24 17:50:38 -0700
  • a740290771
    Merge 22f3131d20 into 537f4ad624 Yannic 2020-01-24 12:56:36 -0800
  • 22f3131d20 Build snappy with Bazel Yannic Bonenberger 2020-01-24 21:38:33 +0100
  • 8d6d17ae3f Make CMake sanitizer and fuzzer agnostic Bhargava Shastry 2019-08-20 09:19:54 +0200
  • 6ecf6181e3 Add vcpkg installation instructions NancyLi1013 2020-01-16 01:55:55 -0800
  • 537f4ad624 Tag open source release 1.1.8. 1.1.8 Victor Costan 2020-01-14 10:05:25 -0800
  • b5477a8457 Optimize IncrementalCopy: There are between 1 and 4 copy iterations. Allow FDO to work with full knowledge of the probabilities for each branch. Snappy Team 2020-01-10 07:41:30 -0800
  • 03f0a0996c
    Updated "Used by" list in docs Brett Holman 2019-11-23 09:25:57 -0700
  • f5acee902c Move CI to Visual Studio 2019. Victor Costan 2019-11-11 11:58:12 -0800
  • 26410cc4f8 Merge pull request #85 from bitomaxsp:patch-1 Victor Costan 2019-11-10 14:10:50 -0800
  • 0eec45ed16 Align CMake configuration with related projects. Victor Costan 2019-11-07 21:38:01 -0800
  • 6617df53fa Remove redundant PROJECT_SOURCE_DIR usage from CMake config. Victor Costan 2019-11-05 15:13:05 -0800
  • f48c38f91a Fix one forgotten instance of StringPrintf -> StrFormat. Victor Costan 2019-11-04 00:06:23 -0800
  • c9212708b2 Fix build errors. Victor Costan 2019-11-03 23:22:24 -0800
  • eb2eb73e6b Test CMake installation on Travis. Victor Costan 2019-11-03 21:37:17 -0800
  • 8f32e3fbc0 Internal changes Snappy Team 2019-10-30 12:02:30 -0700
  • 94dd4a1079
    Added pkg-config file and .gitignore Sebastien Lavoie 2019-10-28 10:51:47 -0400
  • ca0cc7df5e __PPC__ defines the Power architecture Daniel Black 2018-03-26 09:13:23 +1100
  • 38945971d6
    Allow build with different standard if lib used as a subproject Dmitry 2019-10-17 14:17:49 +0200
  • e9e11b84e6 Fix Travis CI build. Victor Costan 2019-09-29 20:32:50 -0700
  • 9dabbca006 Remove snappy::string alias to std::string. Victor Costan 2019-09-27 17:13:37 -0700