From: W. Felix Handte Date: Fri, 16 Nov 2018 23:02:11 +0000 (-0800) Subject: Add ZSTD_DECOMPRESS_MINIMAL Macro, Which Reduces Branching of Decompress Variants X-Git-Tag: v1.3.8~13^2~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df28e5babdfd927901de9be5856060981daf831f;p=thirdparty%2Fzstd.git Add ZSTD_DECOMPRESS_MINIMAL Macro, Which Reduces Branching of Decompress Variants --- diff --git a/lib/decompress/zstd_decompress_block.c b/lib/decompress/zstd_decompress_block.c index 869bdd9aa..00f04208b 100644 --- a/lib/decompress/zstd_decompress_block.c +++ b/lib/decompress/zstd_decompress_block.c @@ -1201,13 +1201,17 @@ ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, } /* Build Decoding Tables */ - { int usePrefetchDecoder = dctx->ddictIsCold; + { +#ifndef ZSTD_DECOMPRESS_MINIMAL + int usePrefetchDecoder = dctx->ddictIsCold; +#endif int nbSeq; size_t const seqHSize = ZSTD_decodeSeqHeaders(dctx, &nbSeq, ip, srcSize); if (ZSTD_isError(seqHSize)) return seqHSize; ip += seqHSize; srcSize -= seqHSize; +#ifndef ZSTD_DECOMPRESS_MINIMAL if ( !usePrefetchDecoder && (!frame || (dctx->fParams.windowSize > (1<<24))) && (nbSeq>ADVANCED_SEQS) ) { /* could probably use a larger nbSeq limit */ @@ -1215,11 +1219,14 @@ ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, U32 const minShare = MEM_64bits() ? 7 : 20; /* heuristic values, correspond to 2.73% and 7.81% */ usePrefetchDecoder = (shareLongOffsets >= minShare); } +#endif dctx->ddictIsCold = 0; +#ifndef ZSTD_DECOMPRESS_MINIMAL if (usePrefetchDecoder) return ZSTD_decompressSequencesLong(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset); +#endif /* else */ return ZSTD_decompressSequences(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset);