28c74bf591
Implement basic splitSequence and skipSequence functions
2020-10-07 13:56:24 -04:00
634ab7830d
Flesh out required args for ldm_handleLdm()
2020-10-07 13:56:24 -04:00
db70761032
Add callsites to appropriate locations in ..opt_generic()
2020-10-07 13:56:24 -04:00
aea61e3c91
Add ldm helper function declarations into opt parser
2020-10-07 13:56:24 -04:00
35d9f488f5
Modify codepath to use opt parser exclusively if the compression level is high enough
2020-10-07 13:56:24 -04:00
e1ae398ad5
Add rawSeqStore to match state
2020-10-07 13:56:24 -04:00
b684900a4a
Allow external creation of POOLs that can be shared.
2020-10-07 12:44:33 +02:00
4b4d8b4dc9
Merge pull request #2338 from terrelln/comments
...
Add comments to ZSTD_getLowest{Match,Prefix}Index()
2020-10-01 18:56:24 -07:00
0057c4acf7
Merge pull request #2333 from terrelln/stable-dst
...
Reset all decompression parameters in ZSTD_DCtx_reset()
2020-10-01 18:56:11 -07:00
2e7d174130
Reset all decompression parameters in ZSTD_DCtx_reset()
...
* Reset all decompression parameters in `ZSTD_DCtx_reset()` when
resetting parameters.
* Add a test case.
2020-10-01 14:19:21 -07:00
27c969ed07
Add comments to ZSTD_getLowest{Match,Prefix}Index()
...
Clarify how we handle dictionaries in each case.
2020-10-01 13:21:46 -07:00
cc88eb7594
Merge pull request #2317 from animalize/msvc_inline
...
Let MSVC force inline ZSTD_hashPtr() function
2020-09-30 08:27:53 -07:00
f1cbeec039
[superblock] Reduce stack usage by correctly sizing header buffers
2020-09-24 19:42:04 -07:00
6a1e526ea7
[lib] Add ZSTD_COMPRESS_HEAPMODE tuning parameter
2020-09-24 19:42:04 -07:00
b841387218
[freestanding] Improve macro resolution to handle #if X
2020-09-24 19:42:04 -07:00
caecd8c211
Allow user to override ASAN/MSAN detection
...
Rename ADDRESS_SANITIZER -> ZSTD_ADDRESS_SANITIZER and same for
MEMORY_SANITIZER. Also set it to 0/1 instead of checking for defined.
This allows the user to override ASAN/MSAN detection for platforms that
don't support it.
2020-09-24 19:42:04 -07:00
88fac5d514
Remove call to memset
...
The previous commit fixes the test so it errors on calls to mem*()
functions from <string.h>.
2020-09-24 19:42:04 -07:00
9ae0483858
Reorganize zstd_deps.h and mem.h + replace mem.h for the kernel
2020-09-24 19:41:59 -07:00
260fc75028
Move __has_builtin() fallback define to compiler.h
2020-09-24 15:51:08 -07:00
4d63ee57f5
Move ASAN/MSAN support declarations to compiler.h
2020-09-24 15:51:08 -07:00
b09ec5c2b9
Remove MEM_STATIC_ASSERT and use DEBUG_STATIC_ASSERT instead
2020-09-24 15:51:04 -07:00
9261476b7d
[lib] Wrap customMem xor checks in parens for readability
...
This clarifies operator precedence, and quiets cppcheck in
the Kernel Test Robot. I think this is a slight bonus to
readability, so I am accepting the suggestion.
2020-09-23 23:26:07 -07:00
dec7fb03ec
[lib] Silence -Wunused-const-variable warnings
2020-09-23 12:59:57 -07:00
2e5d73dd72
Use MEM_STATIC FORCE_INLINE_ATTR
instead of FORCE_INLINE_TEMPLATE
...
It adds `__attribute__((unused))` for __GNUC__, to eliminate `-Werror=unused-function` error.
2020-09-21 13:26:38 +08:00
0a69a6b1ca
Let MSVC force inline ZSTD_hashPtr() function
...
ZSTD_hashPtr() function was not expanded by MSVC, led to low performance compared to GCC.
2020-09-21 10:38:55 +08:00
200c960f1d
Merge pull request #2311 from felixhandte/ddss-fix-cparam-derivation
...
Fix Compression Parameter Derivation Bugs Introduced by DDSS Changes
2020-09-18 14:02:14 -04:00
8930c6e551
Use ZSTD_CCtxParams_init() to Init CCtxParams, not memset()
...
Even if the discrepancies are at the moment benign, it's probably better to
standardize on using the one true initializer, rather than trying (and failing)
to correctly duplicate its behavior.
2020-09-17 12:15:33 -04:00
e8a44326fa
Avoid Redundancy in ZSTD_initCDict_internal() Args; Don't Take CParams + CCtxParams
2020-09-17 12:08:36 -04:00
eee51a664a
Fall Back if Derived CParams are Incompatible with DDSS; Refactor CDict Creation
...
Rewrite ZSTD_createCDict_advanced() as a wrapper around
ZSTD_createCDict_advanced2(). Evaluate whether to use DDSS mode *after* fully
resolving cparams. If not, fall back.
2020-09-15 18:01:08 -04:00
bc6521a6f6
Make ZSTD_createCDict_advanced2() cctxParams Arg Const
2020-09-15 14:06:10 -04:00
26a96a5b35
Do More Complete CParams Deduction in Non-DDSS Path of ZSTD_createCDict_advanced2
...
Call ZSTD_getCParamsFromCCtxParams() instead of ZSTD_getCParams_internal().
2020-09-15 13:57:43 -04:00
a2af804129
Pull CParam Override Logic into Helper
2020-09-15 13:38:05 -04:00
c91a0855f8
check endDirective in ZSTD_compressStream2()
...
fix #2297
also :
- `assert()` `endDirective` in `ZSTD_compressStream_internal()`, for debug mode
- add relevant tests
2020-09-14 10:56:08 -07:00
17b56f934e
Coding style cleanup
2020-09-11 11:42:12 -04:00
801513b5e7
Modify params rather than cctx->requestedParams
2020-09-11 11:41:10 -04:00
c5fab8848a
Document searchFuncs Table
2020-09-10 22:10:02 -04:00
85a95840e4
Further Consolidate Dict Mode Checks
2020-09-10 22:10:02 -04:00
032010fcc1
Improve Documentation Slightly
2020-09-10 22:10:02 -04:00
0faefbf1b3
Make DDSS Selection Override ForceCopy Directive
2020-09-10 22:10:02 -04:00
efa33861f2
Attempt to Fix MSVC Warnings
2020-09-10 22:10:02 -04:00
ed43832770
Simplify Match Limit Checks
...
Seems like a ~1.25% speedup.
2020-09-10 22:10:02 -04:00
06d240b8a7
Use All Available Space in the Hash Table to Extent Chain Table Reach
...
Rather than restrict our temp chain table to 2 ** chainLog entries, this
commit uses all available space to reach further back to gather longer
chains to pack into the DDSS chain table.
2020-09-10 22:10:02 -04:00
b2b0641ea0
Rewrite Table Fill to Retain Cache Entries Beyond Chain Window
2020-09-10 22:10:02 -04:00
916238d9dc
Avoid Malloc in Table Fill; Pack Tmp Structure into Hash Table
2020-09-10 22:10:02 -04:00
f42c5bddd9
Truncate Chain at Last Possible Attempt
...
Make the chain table denser?
2020-09-10 22:10:02 -04:00
20a020edbc
Prefetch Chain Table Matches
2020-09-10 22:10:02 -04:00
9b9feb84f2
Lay Out Chain Table Chains Contiguously
...
Rather than interleave all of the chain table entries, tying each entry's
position to the corresponding position in the input, this commit changes the
layout so that all the entries in a single chain are laid out next to each
other. The last entry in the hash table's bucket for this hash is now a packed
pointer of position + length of this chain.
This cannot be merged as written, since it allocates temporary memory inside
ZSTD_dedicatedDictSearch_lazy_loadDictionary().
2020-09-10 22:10:02 -04:00
66509c7bf4
Only Insert Positions Inside the Chain Window
2020-09-10 22:10:02 -04:00
13c5ec3e41
Only Allow Dedicated Dict Search for Dicts Loaded in 1 Chunk
...
The load algorithm requires we do it all in one go.
2020-09-10 22:10:02 -04:00
07793547e6
Fix Bug: Only Use DDSS Insertion on CDict MatchStates
...
Previously, if DDSS was enabled on a CCtx and a dictionary was inserted into
the CCtx, the CCtx MatchState would be filled as a DDSS struct, causing
segfaults etc. This changes the check to use whether the MatchState is marked
as using the DDSS (which is only ever set for CDict MatchStates), rather than
looking at the CCtxParams.
2020-09-10 18:51:52 -04:00