Commit Graph

  • 30326e5b8c Merge pull request #150 from davemgreen:betterunalignedloads Victor Costan 2023-01-12 13:33:26 +00:00
  • 74960e8bd6 Allow some buffer overwrite on literal emitting Snappy Team 2022-11-22 09:59:27 +00:00
  • 37f375ddeb Add prefetch to zippy decompess, Ilya Tokar 2022-11-18 21:51:44 +00:00
  • 15e2a0e13d Add "cc" clobbers to inline asm that modifies flags. Snappy Team 2022-11-09 05:32:52 +00:00
  • 8881ba172a Improve the speed of hashing in zippy compression. Snappy Team 2022-11-03 20:36:33 +00:00
  • a2d219a8a8 Modify MemCopy64 to use AVX 32 byte copies instead of SSE2 16 byte copies on capable x86 platforms. This gives an average speedup of 6.87% on Milan and 1.90% on Skylake. Snappy Team 2022-10-11 16:00:34 +00:00
  • 984b191f0f Fix the remaining occurrence of non-const std::string::data(). Marcin Kowalczyk 2022-10-08 21:41:20 +02:00
  • 974fcc49e8 Fix compilation errors under C++11. Matt Callanan 2022-10-08 03:11:32 +02:00
  • d644ca8770 Fix warnings due to use of __attribute__(always_inline) without inline. Marcin Kowalczyk 2022-10-05 10:26:41 +02:00
  • 9758c9dfd7 Add snappy::CompressFromIOVec. Matt Callanan 2022-09-26 10:23:33 -07:00
  • af720f9a3b Merge pull request #148 from pitrou:ubsan-ptr-add-overflow Victor Costan 2022-07-27 15:28:16 +00:00
  • 44caf79086 Move the comment about non-overlap requirement from the implementation to the contract of MemCopy64(), and clarify that it applies to size, not to 64. Marcin Kowalczyk 2022-06-09 14:28:22 +00:00
  • d261d2766f Optimize zippy MemCpy / MemMove during decompression Snappy Team 2022-06-09 14:13:38 +00:00
  • 6a2b78a379 Optimize Zippy compression for ARM by 5-10% by choosing csel instructions Snappy Team 2022-04-27 15:16:35 +00:00
  • 8dd58a519f Fix compilation for older GCC and Clang versions. Snappy Team 2022-01-24 09:05:38 +00:00
  • 6c6e890ef9 Change LittleEndian loads/stores to use memcpy David Green 2022-01-17 11:41:53 +00:00
  • 8b07ff196a Update contributing guidelines. Victor Costan 2022-01-12 16:58:28 +00:00
  • 64df9f28c8 Fix UBSan error (ptr + offset overflow) Antoine Pitrou 2021-11-30 19:46:18 +01:00
  • 65dc7b3839 Pass by reference the first argument of ExtractLowBytes to avoid UB of passing uninitialized argument by value. Snappy Team 2021-10-28 04:39:14 +00:00
  • fe18b46322 Switch CI to GitHub Actions. Victor Costan 2021-09-01 16:21:26 +00:00
  • a7ddc144d1 Merge pull request #140 from JunHe77:adv Victor Costan 2021-08-31 19:47:38 +00:00
  • aeb5de55a9 decompress: refine data depdency Jun He 2021-08-17 16:36:43 +08:00
  • 7062d7f1d8 Merge pull request #133 from JunHe77:simd Victor Costan 2021-08-30 01:36:24 +00:00
  • cbb83a1d64 Migrate feature detection macro checks from #ifdef to #if. Victor Costan 2021-08-16 18:22:31 +00:00
  • a8400f1fab Add baseline CPU level to Travis CI. Victor Costan 2021-08-16 17:40:32 +00:00
  • b9c9a989b2 Merge pull request #135 from JunHe77:remove_extra Victor Costan 2021-08-14 08:15:44 +00:00
  • 5c87bc61b6 Merge pull request #136 from JunHe77:ext_arm Victor Costan 2021-08-13 23:24:49 +00:00
  • 734b32bfe3 Add config and header file for NEON support Jun He 2021-07-09 16:59:45 +08:00
  • ab9a57280d Fix SSE3 and BMI2 compile error Jun He 2021-07-09 16:49:06 +08:00
  • d643b9a988 decompress: add hint to remove extra AND Jun He 2021-08-03 15:36:20 +08:00
  • f52721b2b4 decompression: optimize ExtractOffset for Arm Jun He 2021-08-06 14:46:53 +08:00
  • f2db8f77ce Move the extract masks variable out in zippy. I see a consistent 1.5-2% improvement for ARM. Probably because ARM has more relaxed address computation than x86 https://www.godbolt.org/z/bfM1ezx41. I don't think this is a compiler bug or it can do something about it Snappy Team 2021-07-29 13:26:45 +00:00
  • c8f7641646 Remove inline assembly as the bug in clang was fixed Snappy Team 2021-07-28 15:32:22 +00:00
  • 9cc3689b21 Optimize memset to pure SIMD because compilers generate consistently bad code. clang for ARM and gcc for x86 https://gcc.godbolt.org/z/oxeGG7aEx Snappy Team 2021-07-07 19:22:28 +00:00
  • b4888f7616 Optimize tag extraction for ARM with conditional increment instruction generation (csinc). For codegen see https://gcc.godbolt.org/z/a8z9j95Pv Snappy Team 2021-07-02 07:52:56 +00:00
  • b3fb0b5b4b Enable vector byte shuffle optimizations on ARM NEON atdt 2021-06-24 17:09:34 +00:00
  • b638ebe5d9 Update Travis CI config. Victor Costan 2021-05-25 02:17:44 +00:00
  • d8f5dd8eca Clarify, in a comment, that offset/256 fits in 3 bits. It has to in this context, because the other 5 bits in the byte are used for len-4 and the tag. Snappy Team 2021-05-20 19:29:12 +00:00
  • 2b63814b15 Tag open source release 1.1.9. Victor Costan 2021-05-04 22:28:33 +00:00
  • 9c1be17938 'size' remains unused if none of ZLIB, LZO and LZ4 are available. atdt 2021-04-19 00:59:10 +00:00
  • 78650d126a Add project goals to CONTRIBUTING.md. Chris Mumford 2021-03-11 23:09:04 +00:00
  • 5e7c14bd05 Add stubs for abseil flags. Victor Costan 2021-03-08 17:24:08 +00:00
  • 80a2a10c8c Remove unused run_microbenchmarks flag. Victor Costan 2021-03-08 17:21:22 +00:00
  • 453942b38f Add absl::GetFlag and absl::SetFlag to uses of flags. Snappy Team 2021-02-16 22:35:17 +00:00
  • ea368c2f07 Add AppVeyor status badge. Victor Costan 2020-12-16 19:27:39 +00:00
  • d1d1f48604 Remove unused include in snappy_benchmark.cc. Victor Costan 2020-12-16 19:26:51 +00:00
  • 4ebd8b2f23 Split benchmarks and test tools into separate targets. Victor Costan 2020-12-16 19:07:59 +00:00
  • 0793e2ae2d Merge pull request #117 from cmumford:disable-osx-fuzzer Victor Costan 2020-12-16 03:02:51 +00:00
  • ac55f842f7 Test stub improvements. Victor Costan 2020-12-16 02:56:14 +00:00
  • 6e9ae72423 Disable fuzzing on OSX. Chris Mumford 2020-12-15 17:10:14 -08:00
  • 402d88812c Fixup for adding the third_party/{benchmark, googletest} submodules. (#115) Victor Costan 2020-12-15 12:01:28 -08:00
  • 6badb0a261 Merge pull request #114 from cmumford:werror-only-clang Victor Costan 2020-12-15 19:49:13 +00:00
  • bc53daa7be Fixed endif clause. Chris Mumford 2020-12-15 11:19:53 -08:00
  • e9a6a08439 Matching clang. Chris Mumford 2020-12-15 11:17:28 -08:00
  • 955a5dd1b3 Building with -Werror only with clang. Chris Mumford 2020-12-15 11:02:17 -08:00
  • 42d1dd7ea3 Fix CHECK_EQ to call ok() instead of CheckSuccess(). Chris Mumford 2020-12-15 09:13:57 -08:00
  • eaaa0ed0ca Fixup for adding the third_party/{benchmark, googletest} submodules. (#111) Victor Costan 2020-12-15 08:49:01 -08:00
  • e1e91ee464 Rework file:: stubs. Victor Costan 2020-12-15 06:20:22 +00:00
  • 6aa79cb471 Wrap snappy_unittest in an anonymous namespace and remove static from functions. Victor Costan 2020-12-15 06:17:23 +00:00
  • bae9f9bef8 Fixup for adding the third_party/{benchmark, googletest} submodules. (#110) Victor Costan 2020-12-14 20:27:33 -08:00
  • 5f913be04e Fix unused local variable warnings. Victor Costan 2020-12-15 04:14:06 +00:00
  • 549685a598 Remove custom testing and benchmarking code. Victor Costan 2020-12-14 21:26:01 +00:00
  • 11f9a77a2f Add Travis-CI build status badge to README.md. Chris Mumford 2020-12-14 09:35:37 -08:00
  • 49540965a3 Update Travis CI config. Victor Costan 2020-12-14 09:10:05 -08:00
  • 8995ffabb9 Replace #pragma nounroll with equivalent used elsewhere. Victor Costan 2020-12-14 09:58:26 +00:00
  • d1daa83044 Remove inline qualifier from static variables. Victor Costan 2020-12-14 09:38:48 +00:00
  • 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 +00:00
  • a9730ed505 Optimize zippy decompression by making IncrementalCopy faster. Shahriar Rouf 2020-12-09 02:27:22 +00:00
  • 56c2c247d0 Internal change Snappy Team 2020-12-03 03:15:10 +00:00
  • a94be58e65 Optimize zippy decompression by making IncrementalCopy faster. Shahriar Rouf 2020-12-03 00:50:04 +00:00
  • 01a566f825 Fix opensource version Snappy Team 2020-11-19 13:42:42 +00:00
  • 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 +00:00
  • e4a6e97b91 Extend validate benchmarks over all types and also add a medley for validation. Snappy Team 2020-11-16 15:10:23 +00:00
  • 719bed0ae2 Bug fix. Error on 0 offset copies. Snappy Team 2020-11-14 21:55:24 +00:00
  • 289c8a3c0a Make zippy decompression branchless Snappy Team 2020-11-14 15:27:36 +00:00
  • 3bfa265a04 Revert zippy optimization that causes heap buffer overflows. Snappy Team 2020-11-13 17:58:32 +00:00
  • 4d2dc9dcbb Optimize zippy unzipping by upto >10% by making IncrementalCopy faster. Shahriar Rouf 2020-11-13 16:26:13 +00:00
  • 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 +00:00
  • 6835abd953 Change hash function for Compress. Luca Versari 2020-11-09 23:32:45 +00:00
  • 368b01c8dd Merge pull request #107 from jsteemann:bug-fix/fix-compile-warning Victor Costan 2020-11-03 20:51:55 +00:00
  • 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 +00:00
  • 0b990db2b8 Run clang-format Luca Versari 2020-10-30 17:37:07 +00:00
  • cb2b3c7ec6 fix compile warnings due to missing override specifiers jsteemann 2020-10-29 21:50:50 +01:00
  • 7ffaf77cf4 Replace ARCH_K8 with __x86_64__. Chris Kennelly 2020-07-15 17:34:03 +00:00
  • 4dd277fed4 Replace the division with a constant table in IncrementalCopy Snappy Team 2020-07-10 22:21:23 +00:00
  • f16eda3466 Correct uninitialized variable. Snappy Team 2020-05-21 21:30:02 +00:00
  • 837f38b3e0 Revise stubs for ARCH_{K8,PPC,ARM}. Victor Costan 2020-05-06 15:55:59 +00:00
  • e1353b9fa8 Remove ARCH_* guards around Bits::FindLSBSetNonZero64(). Victor Costan 2020-05-05 20:17:32 +00:00
  • c98344f626 Fix Clang/GCC compilation warnings. Victor Costan 2020-05-05 16:13:04 +00:00
  • 113cd97ab3 Tighten types on a few for loops. Victor Costan 2020-05-04 12:31:03 +00:00
  • abde3abb1f Fix Travis CI build. Victor Costan 2020-04-30 02:00:33 +00:00
  • e6506681fa Fix accidental double std:: qualifiers. Victor Costan 2020-04-30 01:03:12 +00:00
  • 63620c06d2 Add some std:: qualifiers to types and functions. Victor Costan 2020-04-29 22:31:17 +00:00
  • 5417da69b7 Switch from C headers to C++ headers. Victor Costan 2020-04-29 19:32:47 +00:00
  • 251d935d50 Remove #include <string> from snappy-stubs-public.h. Victor Costan 2020-04-14 15:48:25 +00:00
  • 4f195aee43 Remove mismatched #endif. Victor Costan 2020-04-14 00:37:10 +00:00
  • 041c608086 Remove platform-dependent code for unaligned loads/stores. Victor Costan 2020-04-14 00:19:00 +00:00
  • 27ff130ff9 Remove platform-dependent code for little-endian loads and stores. Victor Costan 2020-04-13 22:30:24 +00:00
  • a4cdb5d133 Introduce SNAPPY_ATTRIBUTE_ALWAYS_INLINE. Victor Costan 2020-04-13 19:47:34 +00:00
  • 231b8be076 Migrate to standard integral types. Victor Costan 2020-04-12 20:03:50 +00:00