- Dec 13, 2021
-
-
W. Felix Handte authored
-
W. Felix Handte authored
I couldn't find a good way to spread `ip0` and `ip1` apart when we accelerate due to incompressible inputs. (The methods I tried slowed things down quite a bit.) Since we aren't splaying ip0 and ip1 apart (which would be like `0_1_2_3_`, as opposed to the `01__23__` we were actually doing), it's a big ambitious to increment `step` by 2. Instead, let's increment it by 1, which has the benefit sliiightly improving compression. Speed remains pretty much unchanged.
-
W. Felix Handte authored
The position updates are rewritten from `ip[N] = ip[N-1] + step` to be `ip[N] = ip[N-2] + step`. This lets us only deal with the asymmetric spacing of gaps at setup and then we only have to keep a single `step` variable. This seems to work quite well on GCC and Clang!
-
W. Felix Handte authored
-
- Dec 10, 2021
-
-
W. Felix Handte authored
This avoids an additional addition, at the cost of an additional variable.
-
W. Felix Handte authored
This replicates the behavior of @terrelln's `ZSTD_fast` implementation. That is, it always looks at adjacent pairs of positions, and only applies the acceleration every other position. This produces a more fine-grained acceleration.
-
- Dec 09, 2021
-
-
Yann Collet authored
-
Yann Collet authored
Update changelog for v1.5.1
-
Felix Handte authored
Reject Irregular Dictionary Files
-
Yann Collet authored
-
Yann Collet authored
updated xxHash to latest v0.8.1
-
- Dec 08, 2021
-
-
Yann Collet authored
no idea why visual + clang-cl + appveyor don't like them, I've not been able to reproduce the issue locally, but these static assert are very unlikely to deliver a useful signal, I can't imagine a situation where they will be wrong, and if they are, then a ton of other things will be broken way before reaching that point.
-
Nick Terrell authored
Remove possible NULL pointer addition
-
Yann Collet authored
-
W. Felix Handte authored
I hadn't seen #2890, so I wrote my own version. I like this approach a little better, since it does an explicit check for a regular file, rather than passing a magic value. Addresses #2874.
-
Yann Collet authored
on top of implementations, which were already scoped out.
-
Yann Collet authored
-
Nick Terrell authored
Refactor `ZSTDMT_isOverlapped()` to do NULL checks before computing the end pointer. Fixes #2906.
-
Nick Terrell authored
Fix oss-fuzz build
-
Felix Handte authored
Fix Up #2659; Build libzstd.pc Whenever Building the Lib on Unix
-
Nick Terrell authored
Disable assembly when dataflow sanitizer is enabled. This regressed in PR #2893, which accidentally removed the check for dataflow sanitizer.
-
Yann Collet authored
-
W. Felix Handte authored
-
Yann Collet authored
with minor modifications directly embedded in source : - does not compile XXH3 - namespace emulation (ZSTD_ prefix) Incidentally fix #2824
-
- Dec 07, 2021
-
-
binhdvo authored
* Imply -q when stderr is not a tty
-
Felix Handte authored
[lib] Fix libzstd.pc for lib-mt builds
-
- Dec 06, 2021
-
-
Nick Terrell authored
Apply FORCE_MEMORY_ACCESS=1 to legacy
-
Nick Terrell authored
fixbug CLI's -D fails when the argument is not a regular file
-
Alex Xu (Hello71) authored
See #2633, #2881.
-
- Dec 03, 2021
-
-
Nick Terrell authored
[asm] Share portability macros and restrict ASM further
-
Felix Handte authored
Avoid Using Deprecated Functions in Deprecated Code
-
Felix Handte authored
Disable Multithreading in CMake Builds for Android
-
Nick Terrell authored
Move portability macros to `lib/common/portability_macros.h`. This file only contains platform/feature detection (e.g. 0/1 macros). This file is shared between C and ASM code, so it cannot include any C code. Rename `HUF_` ASM macros to be `ZSTD_` prefixed, and move to the new header. Restrict `ZSTD_ASM_SUPPORTED` to `__GNUC__`, because we need the GAS assembler. Finally, only include the ASM code if we are actually going to use it. This disables it on all Windows platforms, which should resolve the problem brought up in Issue #2789.
-
Nick Terrell authored
[CI] Add cmake windows build
-
Nick Terrell authored
Improve zstd_opt build speed and size
-
- Dec 02, 2021
-
-
Nick Terrell authored
Build on windows with cmake to ensure everything compiles.
-
Yann Collet authored
Zstandard compiles and run on m68k cpus
-
W. Felix Handte authored
-
Nick Terrell authored
Use the same trick as we did for zstd_lazy in PR #2828: * Create one search function specialization for each (dictMode, mls). * Select the search function pointer at the top of the match finder. Additionally, we no longer inline `ZSTD_compressBlock_opt_generic` into every function, since `dictMode` is no longer used as a template. Create two specializations, for opt levels 0 and 2, and call one of the two specializations. Lastly, remove the hack that disabled inlining for zstd_opt for the Linux Kernel, as we've gotten most of the benefit already. Compilation time sees a ~4x reduction: | Compiler | Flags | Dev Time (s) | PR Time (s) | Delta | |----------|----------------------------------|--------------|-------------|-------| | gcc | -O3 | 10.1 | 2.3 | -77% | | gcc | -O3 -fsanitize=address,undefined | 61.1 | 10.2 | -83% | | clang | -O3 | 9.0 | 2.1 | -76% | | clang | -O3 -fsanitize=address,undefined | 33.5 | 5.1 | -84% | Build size is reduced by 150KB - 200KB: | Compiler | Dev libzstd.a Size (B) | PR libzstd.a Size (B) | Delta | |----------|------------------------|-----------------------|-------| | gcc | 1327476 | 1177108 | -11% | | clang | 1378324 | 1167780 | -15% | There is a <2% speed loss in all cases: | Compiler | Level | Dev Speed (MB/s) | PR Speed (MB/s) | Delta | |----------|-------|------------------|-----------------|--------| | gcc | 16 | 4.78 | 4.72 | -1.25% | | gcc | 17 | 3.49 | 3.46 | -0.85% | | gcc | 18 | 2.92 | 2.86 | -2.04% | | gcc | 19 | 2.61 | 2.61 | 0.00% | | clang | 16 | 4.69 | 4.80 | 2.34% | | clang | 17 | 3.53 | 3.49 | -1.13% | | clang | 18 | 2.86 | 2.85 | -0.34% | | clang | 19 | 2.61 | 2.61 | 0.00% | Fixes Issue #2862.
-
W. Felix Handte authored
-