summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorJim Kukunas <james.t.kukunas@linux.intel.com>2013-07-18 13:19:05 -0700
committerJim Kukunas <james.t.kukunas@linux.intel.com>2014-07-26 15:53:17 -0700
commitd948170e11e4eaa68cce189e5ea10a4d41e01437 (patch)
tree61d57f3abbc292e2a063b49e46ee19d9d82a8c2b /configure
parent3684659f485b63f7482a8dc600f51112c556ce9d (diff)
downloadProject-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-xconfigure19
1 files changed, 19 insertions, 0 deletions
diff --git a/configure b/configure
index ab4e06482d..a42da63d59 100755
--- a/configure
+++ b/configure
@@ -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