diff options
| author | Jim Kukunas <james.t.kukunas@linux.intel.com> | 2013-07-18 13:19:05 -0700 |
|---|---|---|
| committer | Jim Kukunas <james.t.kukunas@linux.intel.com> | 2014-07-26 15:53:17 -0700 |
| commit | d948170e11e4eaa68cce189e5ea10a4d41e01437 (patch) | |
| tree | 61d57f3abbc292e2a063b49e46ee19d9d82a8c2b /configure | |
| parent | 3684659f485b63f7482a8dc600f51112c556ce9d (diff) | |
| download | Project-Tick-d948170e11e4eaa68cce189e5ea10a4d41e01437.tar.gz Project-Tick-d948170e11e4eaa68cce189e5ea10a4d41e01437.zip | |
deflate: add new deflate_quick strategy for level 1
The deflate_quick strategy is designed to provide maximum
deflate performance.
deflate_quick achieves this through:
- only checking the first hash match
- using a small inline SSE4.2-optimized longest_match
- forcing a window size of 8K, and using a precomputed dist/len
table
- forcing the static Huffman tree and emitting codes immediately
instead of tallying
This patch changes the scope of flush_pending, bi_windup, and
static_ltree to ZLIB_INTERNAL and moves END_BLOCK, send_code,
put_short, and send_bits to deflate.h.
Updates the configure script to enable by default for x86. On systems
without SSE4.2, fallback is to deflate_fast strategy.
Fixes #6
Fixes #8
Diffstat (limited to 'configure')
| -rwxr-xr-x | configure | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -796,6 +796,9 @@ else HAVE_PCLMULQDQ_INTRIN=0 fi +DEFLATE_QUICK_o="" +DEFLATE_QUICK_lo="" + # Set ARCH specific FLAGS case "${ARCH}" in x86_64) @@ -837,6 +840,12 @@ case "${ARCH}" in CRC_FOLDING_o="" CRC_FOLDING_lo="" fi + + CFLAGS="${CFLAGS} -DUSE_QUICK" + SFLAGS="${SFLAGS} -DUSE_QUICK" + + DEFLATE_QUICK_o="deflate_quick.o" + DEFLATE_QUICK_lo="deflate_quick.lo" ;; i386 | i486 | i586 | i686) OBJC="${OBJC} x86.o" @@ -877,6 +886,12 @@ case "${ARCH}" in CRC_FOLDING_o="" CRC_FOLDING_lo="" fi + + CFLAGS="${CFLAGS} -DUSE_QUICK" + SFLAGS="${SFLAGS} -DUSE_QUICK" + + DEFLATE_QUICK_o="deflate_quick.o" + DEFLATE_QUICK_lo="deflate_quick.lo" ;; esac @@ -915,6 +930,8 @@ echo FILL_WINDOW_SSE_o = ${FILL_WINDOW_SSE_o} >> configure.log echo FILL_WINDOW_SSE_lo= ${FILL_WINDOW_SSE_lo} >> configure.log echo CRC_FOLDING_o = ${CRC_FOLDING_o} >> configure.log echo CRC_FOLDING_lo= ${CRC_FOLDING_lo} >> configure.log +echo DEFLATE_QUICK_o=${DEFLATE_QUICK_o} >> configure.log +echo DEFLATE_QUICK_lo=${DEFLATE_QUICK_lo} >> configure.log # udpate Makefile with the configure results sed < Makefile.in " @@ -948,6 +965,8 @@ sed < Makefile.in " /^FILL_WINDOW_SSE_lo *=/s#=.*#=$FILL_WINDOW_SSE_lo# /^CRC_FOLDING_o *=/s#=.*#=$CRC_FOLDING_o# /^CRC_FOLDING_lo *=/s#=.*#=$CRC_FOLDING_lo# +/^DEFLATE_QUICK_o *=/s#=.*#=$DEFLATE_QUICK_o# +/^DEFLATE_QUICK_lo *=/s#=.*#=$DEFLATE_QUICK_lo# " > Makefile # create zlib.pc with the configure results |
