summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* updated block format with more details on MF_LIMITYann Collet2019-04-111-12/+23
| | | | aka distance from end of block for the last match.
* Merge pull request #663 from lz4/headerSizeYann Collet2019-04-103-60/+107
|\ | | | | made LZ4F_getHeaderSize() public
| * made LZ4F_getHeaderSize() publicYann Collet2019-04-103-60/+107
| |
* | added versions in commentsYann Collet2019-04-102-2/+7
|/
* Merge pull request #659 from lz4/resetFastYann Collet2019-04-0914-343/+495
|\ | | | | LZ4_resetStream*_fast()
| * fixed loadDictHCYann Collet2019-04-092-14/+22
| | | | | | | | | | by making a full initialization instead of a fast reset.
| * re-enable LZ4_resetStreamHC()Yann Collet2019-04-091-1/+1
| | | | | | | | towards deprecation, but still available and fully supported
| * modified LZ4_initStreamHC() to look like LZ4_initStream()Yann Collet2019-04-097-72/+119
| | | | | | | | | | it is now a pure initializer, for statically allocated states. It can initialize any memory area, and because of this, requires size.
| * check some more initialization resultYann Collet2019-04-081-1/+5
| | | | | | | | ensure it's not NULL.
| * removed LZ4_stream_t alignment test on VisualYann Collet2019-04-081-0/+8
| | | | | | | | | | | | | | it fails on x86 32-bit mode : Visual reports an alignment of 8-bytes (even with alignof()) but actually only align LZ4_stream_t on 4 bytes. The alignment check then fails, resulting in missed initialization.
| * checkFrame: removed %zuYann Collet2019-04-081-7/+12
| | | | | | | | not liked by mingw
| * fullbench: assert lz4_stream_t initializationYann Collet2019-04-081-2/+4
| |
| * fixed cleaning tmp directoryYann Collet2019-04-081-3/+3
| |
| * slightly faster huge file testYann Collet2019-04-081-1/+1
| | | | | | | | | | level down 5->4 size down 6G->5G
| * added make list target to testsYann Collet2019-04-081-0/+6
| |
| * LZ4_initStream() checks alignment restrictionYann Collet2019-04-082-7/+17
| | | | | | | | updated associated documentation
| * added comment on initStream + _extState_Yann Collet2019-04-051-4/+8
| | | | | | | | as suggested by @felixhandte
| * created LZ4_initStream()Yann Collet2019-04-059-105/+111
| | | | | | | | | | | | | | | | | | | | - promoted LZ4_resetStream_fast() to stable - moved LZ4_resetStream() into deprecate, but without triggering a compiler warning - update all sources to no longer rely on LZ4_resetStream() note : LZ4_initStream() proposal is slightly different : it's able to initialize any buffer, provided that it's large enough. To this end, it accepts a void*, and returns an LZ4_stream_t*.
| * fixed _GNU_SOURCE duplicateYann Collet2019-04-051-0/+1
| |
| * fuzzer: fixed strict c99 with mmap+MAP_ANONYMOUSYann Collet2019-04-052-8/+5
| |
| * fixed strict iso C90Yann Collet2019-04-051-1/+1
| |
| * created LZ4_initStreamHC()Yann Collet2019-04-056-171/+225
|/ | | | | | | | - promoted LZ4_resetStreamHC_fast() to stable - moved LZ4_resetStreamHC() to deprecated (but do not generate a warning yet) - Updated doc, to highlight difference between init and reset - switched all invocations of LZ4_resetStreamHC() onto LZ4_initStreamHC() - misc: ensure `make all` also builds /tests
* Merge pull request #658 from lz4/_fastYann Collet2019-04-048-60/+97
|\ | | | | Deprecated LZ4_decompres_fast*() functions
| * make `_fast*()` decoder generate a deprecation warningYann Collet2019-04-047-39/+70
| | | | | | | | updated modification
| * moved LZ4_decompress_fast*() into deprecated sectionYann Collet2019-04-042-24/+30
|/
* Merge pull request #657 from lz4/destSizeYann Collet2019-04-044-117/+173
|\ | | | | moved _destSize() into "stable API" status
| * fixed an old bug in LZ4F_flush()Yann Collet2019-04-032-66/+109
| | | | | | | | | | | | | | which remained undetected so far, as it requires a fairly large number of conditions to be triggered, starting with enabling Block checksum, which is disabled by default, and which usage is known to be extremely rare.
| * fixed docYann Collet2019-04-032-16/+22
| | | | | | | | and bumped version number fo v1.9.0
| * moved _destSize() into "stable API" statusYann Collet2019-04-032-48/+55
|/ | | | as requested in #642
* Merge pull request #656 from lz4/armtestYann Collet2019-04-032-55/+80
|\ | | | | LZ4_FAST_DEC_LOOP macros
| * minor comments and reformattingYann Collet2019-04-031-12/+17
| |
| * fixed minor conversion warningsYann Collet2019-04-031-14/+10
| |
| * created LZ4_FAST_DEC_LOOP build macroYann Collet2019-04-022-9/+31
| |
| * fixed a few minor conversion warningsYann Collet2019-04-021-20/+22
|/
* Merge pull request #652 from vtorri/devYann Collet2019-03-033-3/+3
|\ | | | | Allow installation of lz4 for Windows 10 with MSYS2
| * Allow installation of lz4 for Windows 10 with MSYS2Vincent Torri2019-03-033-3/+3
| |
* | Merge pull request #645 from djwatson/optimize_decompress_genericYann Collet2019-02-121-19/+245
|\ \ | | | | | | Optimize decompress generic
| * | decompress_generic: Limit fastpath to x86Dave Watson2019-02-111-3/+9
| | | | | | | | | | | | | | | New fastpath currently shows a regression on qualcomm arm chips. Restrict it to x86 for now
| * | decompress_generic: Add fastpath for small offsetsDave Watson2019-02-081-19/+59
| | | | | | | | | | | | | | | | | | | | | | | | For small offsets of size 1, 2, 4 and 8, we can set a single uint64_t, and then use it to do a memset() variation. In particular, this makes the somewhat-common RLE (offset 1) about 2-4x faster than the previous implementation - we avoid not only the load blocked by store, but also avoid the loads entirely.
| * | decompress_generic: Unroll loops a bit moreDave Watson2019-02-081-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | Generally we want our wildcopy loops to look like the memcpy loops from our libc, but without the final byte copy checks. We can unroll a bit to make long copies even faster. The only catch is that this affects the value of FASTLOOP_SAFE_DISTANCE.
| * | decompress_generic: remove msan writeDave Watson2019-02-081-5/+0
| | | | | | | | | | | | | | | This store is also causing load-blocked-by-store issues, remove it. The msan warning will have to be fixed another way if it is still an issue.
| * | decompress_generic: re-add fastpathDave Watson2019-02-081-4/+19
| | | | | | | | | | | | | | | This is the remaineder of the original 'shortcut'. If true, we can avoid the loop in LZ4_wildCopy, and directly copy instead.
| * | decompress_generic: drop partial copy check in fast loopDave Watson2019-02-081-15/+0
| | | | | | | | | | | | | | | | | | We've already checked that we are more than FASTLOOP_SAFE_DISTANCE away from the end, so this branch can never be true, we will have already jumped to the second decode loop.
| * | decompress_generic: Optimize literal copiesDave Watson2019-02-081-12/+21
| | | | | | | | | | | | | | | | | | | | | | | | Use LZ4_wildCopy16 for variable-length literals. For literal counts that fit in the flag byte, copy directly. We can also omit oend checks for roughly the same reason as the previous shortcut: We check once that both match length and literal length fit in FASTLOOP_SAFE_DISTANCE, including wildcopy distance.
| * | decompress_generic: optimize match copyDave Watson2019-02-081-23/+28
| | | | | | | | | | | | | | | | | | Add an LZ4_wildCopy16, that will wildcopy, potentially smashing up to 16 bytes, and use it for match copy. On x64, this avoids many blocked loads due to store forwarding, similar to issue #411.
| * | decompress_generic: Add a loop fastpathDave Watson2019-02-081-5/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Copy the main loop, and change checks such that op is always less than oend-SAFE_DISTANCE. Currently these are added for the literal copy length check, and for the match copy length check. Otherwise the first loop is exactly the same as the second. Follow on diffs will optimize the first copy loop based on this new requirement. I also tried instead making a separate inlineable function for the copy loop (similar to existing partialDecode flags, etc), but I think the changes might be significant enough to warrent doubling the code, instead pulling out common functionality to separate functions. This is the basic transformation that will allow several following optimisations.
| * | decompress_generic: Refactor variable length fieldsDave Watson2019-02-081-12/+35
| | | | | | | | | | | | | | | Make a helper function to read variable lengths for literals and match length.
* | | Merge pull request #648 from aregm/fix-VS2017-solutionYann Collet2019-02-071-11/+6
|\ \ \ | | | | | | | | Build fixed by removing unavailable project
| * | | Build fixed by removing unavailable projectAreg Melik-Adamyan2019-02-071-11/+6
|/ / /
* | | Merge pull request #646 from jbms/fix-clang-optimize-attribute-ppc64leYann Collet2019-02-041-1/+1
|\ \ \ | |/ / |/| | Eliminate optimize attribute warning with clang on PPC64LE