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
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