]> git.ipfire.org Git - thirdparty/zlib-ng.git/commit
Speed up software CRC-32 computation by a factor of 1.5 to 3.
authorNathan Moinvaziri <nathan@nathanm.com>
Tue, 24 May 2022 18:44:20 +0000 (11:44 -0700)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Wed, 25 May 2022 10:04:35 +0000 (12:04 +0200)
commita6155234a2aa34b4562570dbd359a2a505962a01
treefffecc2105016a315c3da7d3d77caaf4d9ff05e4
parentd79984b5bcaccab15e6cd13d7d1edea32ac36977
Speed up software CRC-32 computation by a factor of 1.5 to 3.
Use the interleaved method of Kadatch and Jenkins in order to make
use of pipelined instructions through multiple ALUs in a single
core. This also speeds up and simplifies the combination of CRCs,
and updates the functions to pre-calculate and use an operator for
CRC combination.

Co-authored-by: Nathan Moinvaziri <nathan@nathanm.com>
27 files changed:
CMakeLists.txt
Makefile.in
arch/power/crc32_power8.c
arch/s390/crc32-vx.c
arch/x86/crc32_fold_pclmulqdq.c
cpu_features.h
crc32.c [deleted file]
crc32_braid.c [new file with mode: 0644]
crc32_braid_comb.c [new file with mode: 0644]
crc32_braid_comb_p.h [new file with mode: 0644]
crc32_braid_p.h [new file with mode: 0644]
crc32_braid_tbl.h [new file with mode: 0644]
crc32_comb.c [deleted file]
crc32_comb_tbl.h [deleted file]
crc32_p.h [deleted file]
crc32_tbl.h [deleted file]
doc/crc-doc.1.0.pdf [new file with mode: 0644]
functable.c
test/benchmarks/benchmark_crc32.cc
test/fuzz/fuzzer_checksum.c
test/test_crc32.cc
tools/makecrct.c
win32/Makefile.a64
win32/Makefile.arm
win32/Makefile.msc
zlib-ng.h.in
zlib.h.in