AArpad PanyikAArch64: Remove 32-bit code from ZSTD_decodeSequence
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
AArch64: Enhance struct access in Huffman decode 2X In the multi-stream multi-symbol Huffman decoder GCC generates suboptimal code - emitting more loads for HUF_DEltX2 struct member accesses. Forcing it to use 32-bit loads and bit arithmetic to extract the necessary parts (UBFX) improves the overall decode speed. Also avoid integer type conversions in the symbol decodes, which leads to better instruction selection in table lookup accesses. On AArch64 the decoder no longer runs into register-pressure limits, so we can simplify the hot path and improve throughput Decompression uplifts on a Neoverse V2 system, using Zstd-1.5.8 compiled with "-O3 -march=armv8.2-a+sve2": Clang-20 Clang-* GCC-13 GCC-14 GCC-15 1#silesia.tar: +0.820% +1.365% +2.480% +1.348% +0.987% 2#silesia.tar: +0.426% +0.784% +1.218% +0.665% +0.554% 3#silesia.tar: +0.112% +0.389% +0.508% +0.188% +0.261% * Requires Clang-21 support from LLVM commit hash a53003fe23cb6c871e72d70ff2d3a075a7490da2 (Clang-21 hasn’t been released as of this writing) | 1 年前 | |
Fix Darwin build of huf_decompress_amd64.S | 1 年前 | |
Fix zstd-dll build missing dependencies (#3496) * Fixes zstd-dll build (https://github.com/facebook/zstd/issues/3492): - Adds pool.o and threading.o dependency to the zstd-dll target - Moves custom allocation functions into header to avoid needing to add dependency on common.o - Adds test target for zstd-dll - Adds github workflow that buildis zstd-dll | 3 年前 | |
Coalesce Almost All Copyright Notices to Standard Phrasing for f in $(find . \( -path ./.git -o -path ./tests/fuzz/corpora -o -path ./tests/regression/data-cache -o -path ./tests/regression/cache \) -prune -o -type f); do sed -i '/Copyright .* \(Yann Collet\)\|\(Meta Platforms\)/ s/Copyright .*/Copyright (c) Meta Platforms, Inc. and affiliates./' $f; done git checkout HEAD -- build/VS2010/libzstd-dll/libzstd-dll.rc build/VS2010/zstd/zstd.rc tests/test-license.py contrib/linux-kernel/test/include/linux/xxhash.h examples/streaming_compression_thread_pool.c lib/legacy/zstd_v0*.c lib/legacy/zstd_v0*.h nano ./programs/windres/zstd.rc nano ./build/VS2010/zstd/zstd.rc nano ./build/VS2010/libzstd-dll/libzstd-dll.rc | 3 年前 | |
minor: assert that state is not null replaces #4016 | 1 年前 | |
AArch64: Remove 32-bit code from ZSTD_decodeSequence Remove the 32-bit code paths from the AArch64 only sections of ZSTD_decodeSequence. | 9 个月前 | |
Reduce streaming decompression memory by 128KB The split literals buffer patch increased streaming decompression memory by 64KB (shrunk lit buffer from 128KB to 64KB, and added 128KB). This patch removes the added 128KB buffer, because it isn't necessary. The buffer was there because the literals compression code didn't know the true blockSizeMax of the frame, and always put split literals so they ended 128KB - 32 from the beginning of the block. Instead, we can pass down the true blockSizeMax and ensure that the split literals end up at blockSizeMax - 32 from the beginning of the block. We already reserve a full blockSizeMax bytes in streaming mode, so we won't be overwriting the extDict window. | 3 年前 | |
Check DYNAMIC_BMI2 instead of DYNAMIC_BMI2 != 0 #if DYNAMIC_BMI2 is consistent with the rest of the code. + use spaces instead of tabs | 1 年前 |