More lz_hash_chains, lz_binary_trees performance improvements
authorEric Biggers <ebiggers3@gmail.com>
Thu, 14 Aug 2014 04:04:58 +0000 (23:04 -0500)
committerEric Biggers <ebiggers3@gmail.com>
Thu, 14 Aug 2014 04:08:25 +0000 (23:08 -0500)
commit7e3f3761e0a9fc93341ed0b9c69f6056d9a97af9
treecbc492f0da3cf389cff2365b54cb2379bafebe71
parent6eff6022b2d43d15f41589fe77122da9fe764033
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.
Makefile.am
include/wimlib/lz_extend.h [new file with mode: 0644]
include/wimlib/lz_hash3.h [new file with mode: 0644]
src/lz_binary_trees.c
src/lz_hash_chains.c