matchfinder_common: sync with libdeflate
Use MIT license instead of CC0 CC0 has continued to fall out of favor due to the patents clause (https://lwn.net/ml/fedora-legal/CAC1cPGw1xScGAXo-0NRs92zFB7ptRxTt=oCYi0BxfZDfAgUtYQ@mail.gmail.com). Years ago I released some source files in this project (not the whole project) under CC0. Use the MIT license for these files instead. Note that this requires claiming copyright on the latest version of these files. Of course, previous versions of these files remain public domain where legally recognized; this is *not* in any way an attempt to "revoke" the public domain status of previous versions.
Stop force-inlining everything marked 'inline' Instead, replace 'inline' with 'forceinline' in selected places.
bitops: rename bit scan functions Our bit scan functions use 0-based indices and do not allow zero inputs. Rename them to 'bsr' and 'bsf' to match the x86 instructions and avoid confusion with another common convention for 'fls' and 'ffs'.
Rename WORDSIZE to WORDBYTES and introduce WORDBITS
lz_extend: simplify lz_extend() slightly Unrolling the first four word copies does not seem give noticably better performance anymore, and on a recent Intel processor actually appears to decrease the performance slightly.
Use more comprehensive public domain dedications
lz_extend.h: fix for CPU_IS_BIG_ENDIAN && UNALIGNED_ACCESS_IS_FAST
Merge LZX compression updates
Misc. cleanups
lz_extend: little endian CPU is necessary for byte count to work
portability and compression cleanups - Split compiler.h into compiler.h and compiler-gcc.h - Compile with -std=c99. Some GCC extensions are still used but they are explicitly defined in compiler-gcc.h. - Add get_unaligned_uXX_le() and put_unaligned_uXX_le() helpers - Faster lz_copy() in some cases - Faster lz_extend() in some cases - New bitops.h header
More lz_hash_chains, lz_binary_trees performance improvements - Use a multiplicative hash function. In practice it's as good as the CRC32-based hash function previously used, but it's faster to compute and requires no static data. - Use slightly different logic that avoids the need to special-case the extension of matches from 'nice_len' to 'max_len'. - Faster skip_positions() by avoiding unnecessary calculations. - Fast match length extension on x86 using unaligned word accesses and trailing zero count.