Commit Graph

143 Commits

Author SHA1 Message Date
Mahesh Madhav
782aadd0ff Apply suggestions from code review
Co-authored-by: Eugene Kliuchnikov <eustas@google.com>
2024-11-19 09:52:16 +01:00
Mahesh Madhav
1054ecc262 Add static variables as per code review comments. 2024-11-19 09:52:16 +01:00
Mahesh Madhav
cec846f88e Update c/enc/block_splitter_inc.h
Added a digit of precision
2024-11-19 09:52:16 +01:00
Mahesh Madhav
cefec3ce9d Reduce fdiv's into fmul's
Provides small speedup on microarchitectures where the floating
point divide is slower than the floating point multiply.
2024-11-19 09:52:16 +01:00
Jeremy Koritzinsky
aa54821999 Fix C4224 warnings when building with MSVC 2024-11-12 16:50:52 +01:00
Ilya Tokar
664952333f Make Brotli decompression faster
Makes it ~8% faster on my skylake desktop.

PiperOrigin-RevId: 689499172
2024-10-24 13:36:55 -07:00
Ilya Tokar
350100a5bb Add BrotliCopyPreloadedSymbols function.
Add a single trivial use to avoid complier warning.

PiperOrigin-RevId: 676435629
2024-09-19 09:02:34 -07:00
Brotli
39bcecf455 Fix hasher resolution for long windows.
PiperOrigin-RevId: 652545288
2024-07-15 11:27:36 -07:00
Brotli
a528bce9f6 Hoist the static bounds check out of the combined if check.
PiperOrigin-RevId: 639054702
2024-05-31 09:11:23 -07:00
Brotli
fe754f3459 Use a hash table header and SIMD to speed up hash table operations (similar to [Swiss Tables](https://abseil.io/about/design/swisstables)).
PiperOrigin-RevId: 638686412
2024-05-30 09:51:43 -07:00
Brotli
04388304a6 Use a hash table header and SIMD to speed up hash table operations (similar to [Swiss Tables](https://abseil.io/about/design/swisstables)).
PiperOrigin-RevId: 632238409
2024-05-09 12:42:42 -07:00
Brotli
bb809ac908 Use a hash table header and SIMD to speed up hash table operations (similar to [Swiss Tables](https://abseil.io/about/design/swisstables)).
PiperOrigin-RevId: 631982664
2024-05-08 17:59:58 -07:00
Brotli
d01a4caaa8 Internal change
PiperOrigin-RevId: 626960053
2024-04-22 02:07:25 -07:00
Brotli
1b3a5ccb6e Prefetch the backreference hashtable bucket.
Place the prefetch before the last distance checks, to give the prefetch enough time to work.

PiperOrigin-RevId: 626228820
2024-04-18 20:00:02 -07:00
Evgenii Kliuchnikov
443af10a80 add (assumption) check
PiperOrigin-RevId: 625632989
2024-04-17 04:10:04 -07:00
Evgenii Kliuchnikov
c1c76e993f Don't check cur_ix_masked against ring_buffer_mask.
`cur_ix_masked` isn't changing from iteration to iteration, and `max_length` ensures we never find a match long enough to walk off the ring buffer.

PiperOrigin-RevId: 624701948
2024-04-14 06:36:02 -07:00
Brotli
709c4672d4 Fix minor syntax issues.
Missing semicolons.
Move checks below variable declarations for c89.

PiperOrigin-RevId: 624199887
2024-04-12 09:16:00 -07:00
Brotli
a76d96e730 Don't check cur_ix_masked against ring_buffer_mask.
`cur_ix_masked` isn't changing from iteration to iteration, and `max_length` ensures we never find a match long enough to walk off the ring buffer.

PiperOrigin-RevId: 624162764
2024-04-12 06:50:51 -07:00
Brotli
a813a6a1e4 Update the H5 hasher to use the H6's FN(STORE).
PiperOrigin-RevId: 623885589
2024-04-11 11:23:47 -07:00
Brotli
f964a1e8ac Internal change
PiperOrigin-RevId: 623073126
2024-04-09 00:19:11 -07:00
Brotli
cdbe7fc739 Internal change
PiperOrigin-RevId: 622802698
2024-04-08 04:30:44 -07:00
Brotli
9351fa7ffb Compare 4 bytes when checking if a longer match is possible.
Loading and comparing 4 bytes is ~as fast as 1 byte, but allows us to avoid more full match length calculation.

PiperOrigin-RevId: 617556847
2024-03-20 10:30:00 -07:00
Brotli
9717649c31 Use BROTLI_MAX_STATIC_CONTEXTS instead of magic constants in encode.c
PiperOrigin-RevId: 615341475
2024-03-13 02:47:52 -07:00
Evgenii Kliuchnikov
d5e697b3c7 remove dependency on os-specific defines
PiperOrigin-RevId: 600449944
2024-01-22 07:24:41 -08:00
Evgenii Kliuchnikov
3396c67fea add brcat alias + flag to decompress concatenated streams
PiperOrigin-RevId: 598652401
2024-01-15 12:49:56 -08:00
Evgenii Kliuchnikov
033940f97c add comment (fingerprint) CLI feature
PiperOrigin-RevId: 597489910
2024-01-11 02:04:37 -08:00
Evgenii Kliuchnikov
6b6adb7ae8 fix build for Microsoft-designed ARM64 ABI
PiperOrigin-RevId: 595334901
2024-01-03 02:01:23 -08:00
Evgenii Kliuchnikov
9b83be233e fix wording
PiperOrigin-RevId: 576788685
2023-10-26 02:03:20 -07:00
Evgenii Kliuchnikov
e7313b0c4e tune memory manager for BROTLI_EXPERIMENTAL
PiperOrigin-RevId: 560703386
2023-08-28 07:20:49 -07:00
Evgenii Kliuchnikov
c1bd196833 comb HAVE_UTIMENSAT definition
PiperOrigin-RevId: 560011681
2023-08-25 01:07:12 -07:00
Evgenii Kliuchnikov
2a5a088b03 more tuning for BROTLI_EXPERIMENTAL + clean-on-oom
PiperOrigin-RevId: 558771745
2023-08-21 06:36:24 -07:00
Evgenii Kliuchnikov
feb6d8bc80 prepare for 1.1.0rc
PiperOrigin-RevId: 558736892
2023-08-21 03:35:01 -07:00
Evgenii Kliuchnikov
3ebb2d30ab Move serialized dictionary feature behind the flag.
BROTLI_SHARED_DICTIONARY_SERIALIZED enum value is a part of API,
but it should not be used (will cause failures).
Changing how serialized dictionaries work won't be considered as an API change, until this feature is enabled.
Enabling this feature in the future will be considered as a "compatible" change.

PiperOrigin-RevId: 558091676
2023-08-18 02:55:33 -07:00
Evgenii Kliuchnikov
0f2157cc5e Update comment; fixes #1061
PiperOrigin-RevId: 557501089
2023-08-16 08:55:14 -07:00
Evgenii Kliuchnikov
8c7923045a reduce amount of padding in decoder structs
PiperOrigin-RevId: 555101669
2023-08-09 02:48:53 -07:00
Evgenii Kliuchnikov
a560089843 speedup q5-9 on large files
PiperOrigin-RevId: 553440457
2023-08-03 04:58:52 -07:00
Evgenii Kliuchnikov
117b68b745 speedup encoder on q5-9 / 1MB+ files
PiperOrigin-RevId: 553087469
2023-08-02 03:05:57 -07:00
Evgenii Kliuchnikov
d639a81d35 add option to delete files that are not "compressed"
PiperOrigin-RevId: 552472135
2023-07-31 07:19:14 -07:00
Evgenii Kliuchnikov
27a9a80992 simplify CMake build
PiperOrigin-RevId: 552238545
2023-07-30 03:45:11 -07:00
Evgenii Kliuchnikov
779a49bfd6 bake in runtime constant
PiperOrigin-RevId: 549590409
2023-07-20 04:18:46 -07:00
Evgenii Kliuchnikov
c3dc7d039c more careful bit-reader interruption
PiperOrigin-RevId: 548661043
2023-07-17 05:39:13 -07:00
Evgenii Kliuchnikov
2d0947f1ea insert missing fuzz/WORKSPACE content
PiperOrigin-RevId: 546848285
2023-07-10 07:31:03 -07:00
Evgenii Kliuchnikov
2e6164d7b0 verbose error report in CLI
PiperOrigin-RevId: 546833411
2023-07-10 11:43:42 +00:00
Evgenii Kliuchnikov
70e7b1ae4a simplify building of fuzzer
PiperOrigin-RevId: 545950923
2023-07-10 11:43:27 +00:00
Evgenii Kliuchnikov
6ee96e291d Internal changes
PiperOrigin-RevId: 545262005
2023-07-04 07:55:25 +00:00
Evgenii Kliuchnikov
e252f1fc15 0.5-2.9% decoder speedup
PiperOrigin-RevId: 529412095
2023-07-04 07:55:16 +00:00
Evgenii Kliuchnikov
e1f5788fb0 Fix internal buffer reset
PiperOrigin-RevId: 524301253
2023-07-04 07:54:41 +00:00
Evgenii Kliuchnikov
e5dba91c38 Add BROTLI_ENABLE_DUMP build option
PiperOrigin-RevId: 520047051
2023-07-04 07:54:07 +00:00
Evgenii Kliuchnikov
f29c44ed38 Avoid nullptr with zero offset
PiperOrigin-RevId: 516808122
2023-07-04 07:53:51 +00:00
Evgenii Kliuchnikov
cb1ced3a25 speedup decoder by 0.2%-1.2%
PiperOrigin-RevId: 516754779
2023-07-04 07:53:42 +00:00