From e8a7f5d3ce0ebb36e4ad850ab12463b1127dba17 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Fri, 12 Jul 2019 11:34:53 -0700 Subject: [PATCH] double-fast: changed the trade-off for a smaller positive change same number of complementary insertions, just organized differently (long at `ip-2`, short at `ip-1`). --- .gitignore | 2 +- lib/compress/zstd_double_fast.c | 17 ++++------------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 0c840b6b6..4c297053b 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ *.dylib # Executables -zstd. +/zstd zstdmt *.exe *.out diff --git a/lib/compress/zstd_double_fast.c b/lib/compress/zstd_double_fast.c index bdb26ef80..b65fd41e7 100644 --- a/lib/compress/zstd_double_fast.c +++ b/lib/compress/zstd_double_fast.c @@ -257,19 +257,10 @@ _match_stored: /* Complementary insertion */ /* done after iLimit test, as candidates could be > iend-8 */ { U32 const indexToInsert = current+2; - hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = - hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = - indexToInsert; - } - { const BYTE* const ipToInsert = ip - 2; - hashLong[ZSTD_hashPtr(ipToInsert, hBitsL, 8)] = - hashSmall[ZSTD_hashPtr(ipToInsert, hBitsS, mls)] = - (U32)(ipToInsert-base); - } - { const BYTE* const ipToInsert = ip - 1; - hashLong[ZSTD_hashPtr(ipToInsert, hBitsL, 8)] = - hashSmall[ZSTD_hashPtr(ipToInsert, hBitsS, mls)] = - (U32)(ipToInsert-base); + hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; + hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); + hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; + hashSmall[ZSTD_hashPtr(ip-1, hBitsS, mls)] = (U32)(ip-1-base); } /* check immediate repcode */