- Sep 27, 2022
-
-
Jose Dapena Paz authored
Recent changes to include support for PMULL require arm_neon.h header. This was added for Clang, but not for GCC. Also, we need to add AES instruction set to the module level statement. Bug: 819294 Change-Id: I442d5a3d3e33aa78f08f9ee1d5a4035f16b25b46 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3917532 Commit-Queue: José Dapena Paz <jdapena@igalia.com> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1051716} NOKEYCHECK=True GitOrigin-RevId: cdf142aad5b43835fb9947293ec3bcbe886fef18
-
- Sep 16, 2022
-
-
Hans Wennborg authored
To prevent timeouts when processing large inputs with small chunk sizes. Bug: 1362206 Change-Id: Ie21ea48abf85ee49897243857bf84b0f32d24bd5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3899099 Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Auto-Submit: Hans Wennborg <hans@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1048044} NOKEYCHECK=True GitOrigin-RevId: fd75b8c2768e7cc3a3e7a06bc563bb03c5ba0ec2
-
Nigel Tao authored
Prior to this commit, the chromium_zlib_hash field was added to the middle of the struct, which changes the offsets of all later fields. This makes it more difficult for some ABI-compatibility tooling to reconcile the upstream and chromium-modified flavors of zlib. This commit moves the chromium_zlib_hash field to the end of the struct so that there are no later fields. The field was added in crrev.com/c/3596671 BUG=1316541,b/245235788 TEST=CQ Change-Id: Id7e1756a62e55b765eeb0b24cde0c5143a715d2c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3897707 Commit-Queue: Nigel Tao <nigeltao@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1047783} NOKEYCHECK=True GitOrigin-RevId: b67d3166f8b75dc6c04a059f553845f7d5c38b99
-
- Sep 13, 2022
-
-
Adenilson Cavalcanti authored
First patch* based on Dougall Johnson zlib research**. The basic idea is to use a bigger root table to avoid a branch misprediction while performing a lookup when the searched Huffman code is actually located in a nested sub-table. The increase of memory use in the structure inflate_state will be 1920 bytes (i.e. 1332 - 852 = 480 x sizeof(code) = 480 x 4) per active inflate context which should be fine given that even lower spec boards generally have CPUs with a L1 cache size of 32KB. Performance gains are dependent on input entropy features plus architecture, but are a net positive on both x86 (Haswell: 5.1%), Cortex big.LITTLE.Medium (X1, A55, A76) on 32bit (6.3%, 1.44%, 5.7%) and 64bit (8.3%, 2.4%, 6.7%) plus M1 (7.6%). * https://github.com/dougallj/zlib-dougallj/commits/main ** https://dougallj.wordpress.com/2022/08/20/ Bug: 1354990 Change-Id: I1f784bfaf9a8108f657e3c9753030482e5026366 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3888219 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1046251} NOKEYCHECK=True GitOrigin-RevId: b40b1f7a30b58aeb0d6e4906ae25c6e4734f3b1f
-
- Sep 09, 2022
-
-
Adenilson Cavalcanti authored
Using the polynomial multiplication instruction allows to improve a bit more the decompression speed of gzipped content in zlib. The average gains are not massive though (around +4.9%), but is more expressive for some relevant content (e.g. +10% for HTMLx4 & JPEG, +6% for JS) in more recent chip designs. While at it, ensure that the crypto accelerated CRC-32 will work if users decide to call crc32_z() instead, a 'new' (for zlib standards...) API introduced in 2017. Bug: 873725 Change-Id: Ibb8967fb74b97f99e338ef9dc31a0ec8010aeedf Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3862996 Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Cr-Commit-Position: refs/heads/main@{#1045228} NOKEYCHECK=True GitOrigin-RevId: 81df8c8ea3e6aa8a1d7b505206606e4ec70b4c63
-
- Sep 07, 2022
-
-
Hans Wennborg authored
These were meant to be size_t. Follow-up to crrev.com/1043254 Bug: none Change-Id: I8d3e5b18bed16f669e4a534d49b8c7b6fdf2e8d4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3879603 Auto-Submit: Hans Wennborg <hans@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1044121} NOKEYCHECK=True GitOrigin-RevId: 10b301b384840c58d286f15c006a92c5df5b441c
-
- Sep 05, 2022
-
-
Hans Wennborg authored
In this case size_t is 32 bits but stream.total_in is 64 bits, confusing the build about which std::min overload to use. Bug: 1359115 Change-Id: I7d015be559e1f885d59749af38687b35cdeec5f1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3871028 Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Auto-Submit: Hans Wennborg <hans@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1043254} NOKEYCHECK=True GitOrigin-RevId: f1b8bf26f13d602d191ffac8c3d642734504d3ff
-
- Sep 01, 2022
-
-
Hans Wennborg authored
The fuzzer does inflation with inflateGetHeader() enabled, using varying sizes for the gzip header fields and processing the data in varying chunk sizes. With the CVE fix reverted, it finds the bug in a minute or two. Having it will prevent regressions in this area, and perhaps it will find some other problem. Bug: 1355103 Change-Id: I2103b111d40dd8f5277069d83db6792ed06b3152 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3865887 Commit-Queue: Hans Wennborg <hans@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1041966} NOKEYCHECK=True GitOrigin-RevId: 6887ee5130d407126adbc374cdfa14391218341a
-
- Aug 25, 2022
-
-
Adenilson Cavalcanti authored
Ported: - Change version number on develop branch to 1.2.12.1. - Fix odd error in Visual C compiler preventing automatic promotion. - Fix inflateBack to detect invalid input with distances too far. - Have infback() deliver all of the available output up to any error. - Fix a bug when getting a gzip header extra field with inflate(). - Fix extra field processing bug that dereferences NULL state->head. - Fix some typos. Bug: 1355103 Change-Id: I838b3f7c885a97d72e040e5a5224bc0aa58068fb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3853109 Reviewed-by:
Hans Wennborg <hans@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1039413} NOKEYCHECK=True GitOrigin-RevId: 29ee00aece42bd66b1a7196aa41275baad2dd512
-
- Aug 01, 2022
-
-
Adenilson Cavalcanti authored
In chunk_copy decompression optimization, we perform wide loads/stores within the internal zstream buffer. The SIMD optimization assumes that it can perform wide stores, sometimes overwriting data on the output pointer (but never overflowing the buffer's end as it has enough room for the write), while keeping track of the length of decompressed stream. To help fix buggy client code, the rest of the buffer is filled with a defined character (since that will make faulty client code to fail soon and fail fast). It is save to say after all these years that Chromium code is well behaved and works fine with the optimization, therefore we can enable this only for DEBUG builds. Change requested by Volker Simonis. Bug: 1302606 Change-Id: I5ee9e7178fbbff40bf1e4f409fc528ad65597dde Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3518085 Reviewed-by:
Noel Gordon <noel@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Cr-Commit-Position: refs/heads/main@{#1030214} NOKEYCHECK=True GitOrigin-RevId: 36be3c7a465f00f4edefccc10bba00bbebe1843d
-
- Jul 29, 2022
-
-
Alex Danilo authored
Adds detection of AES encrypted content in a ZIP archive. Adds a boolean to the mojo Info structure to return AES encryption presence to the caller. Adds a new enum value and fixes mismatch in enum values between enums.xml and extract_io_task.h. Bug: 953256 Tests: components_unittests --gtest_filter=UnzipTest.DetectAESArchive Change-Id: I565464c59e51f25144eb80786ae56fdb30138b2b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3782515 Commit-Queue: Alex Danilo <adanilo@chromium.org> Reviewed-by:
François Degros <fdegros@chromium.org> Reviewed-by:
Dominick Ng <dominickn@chromium.org> Reviewed-by:
Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#1029601} NOKEYCHECK=True GitOrigin-RevId: 0fcd02b48834b4ea92613ffea7a57d35e742ad53
-
- May 31, 2022
-
-
Henrique Ferreiro authored
That target is only used in //third_party/zlib:*, so make that explicit. From documentation (https://gn.googlesource.com/gn/+/master/docs/reference.md#var_visibility) this change will make the given target 'private' only to the current build file. No expected change in behavior, but a nice cleanup. Change-Id: I0bc111bd7bda05b450f7d1b82aebbd5bdc746b05 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3672796 Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Noel Gordon <noel@chromium.org> Commit-Queue: Henrique Ferreiro <hferreiro@igalia.com> Cr-Commit-Position: refs/heads/main@{#1009027} NOKEYCHECK=True GitOrigin-RevId: f2c70a1264eff5f762bf97d2c50e15116c2633dc
-
Alex Danilo authored
Bug: 953256 Tests: Tests: components_unittests --gtest_filter='UnzipTest.GetExtractedProgressSize*' Change-Id: I8fc9b19db793bbdd4673ae5d1a96e4e6eca56517 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3665160 Reviewed-by:
Noel Gordon <noel@chromium.org> Reviewed-by:
François Degros <fdegros@chromium.org> Reviewed-by:
Dominick Ng <dominickn@chromium.org> Commit-Queue: Alex Danilo <adanilo@chromium.org> Cr-Commit-Position: refs/heads/main@{#1008974} NOKEYCHECK=True GitOrigin-RevId: 0f10dd05940d26f6aebe12aa43dc6d3b333abba9
-
- May 23, 2022
-
-
Adenilson Cavalcanti authored
This reverts commit a0771caebe87477558454cc6d793562e3afe74ac. Reason for revert: Missing call to CPU features detection Original change's description: > [zlib] Adding PMULL based CRC-32 for aarch64 > > Using the polynomial multiplication instruction allows to improve a bit > more the decompression speed of gzipped content in zlib. > > The average gains are not massive though (around +4.9%), but is more expressive > for some relevant content (e.g. +10% for HTMLx4 & JPEG, +6% for JS) in more > recent chip designs. > > Since Chrome is distributed as a 64bit binary (i.e. aarch64) only for > higher end devices, it should be safe from a performance perspective. > > For lower spec devices, the same serial crc32 code using the crypto > extensions is used, therefore no change on behavior for 32bit. > > Bug: 873725 > Change-Id: I33b9b345b82b5256ec922324984f9a371949bbe6 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2422723 > Reviewed-by:
Chris Blume <cblume@chromium.org> > Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1006184} Bug: 873725 Change-Id: I7b6a2bfb60a96bc640b59187c5dd63590d09599e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3659852 Reviewed-by:
Noel Gordon <noel@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#1006331} NOKEYCHECK=True GitOrigin-RevId: 42a820acf433146b284bb195b0c3507244cf1c30
-
- May 22, 2022
-
-
Adenilson Cavalcanti authored
Using the polynomial multiplication instruction allows to improve a bit more the decompression speed of gzipped content in zlib. The average gains are not massive though (around +4.9%), but is more expressive for some relevant content (e.g. +10% for HTMLx4 & JPEG, +6% for JS) in more recent chip designs. Since Chrome is distributed as a 64bit binary (i.e. aarch64) only for higher end devices, it should be safe from a performance perspective. For lower spec devices, the same serial crc32 code using the crypto extensions is used, therefore no change on behavior for 32bit. Bug: 873725 Change-Id: I33b9b345b82b5256ec922324984f9a371949bbe6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2422723 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1006184} NOKEYCHECK=True GitOrigin-RevId: a0771caebe87477558454cc6d793562e3afe74ac
-
- May 18, 2022
-
-
Peter Kasting authored
std::string::max_size() is constexpr in C++20, which lets the compiler determine that a comparison can never succeed. Cast to prevent a resulting warning. Bug: 1284275 Change-Id: Ib56f3a9a114b9f3d2210df7846869f9452a60a58 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3649750 Reviewed-by:
Satoru Takabayashi <satorux@chromium.org> Commit-Queue: Satoru Takabayashi <satorux@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/main@{#1004522} NOKEYCHECK=True GitOrigin-RevId: 997528f9568938b61c551ff62315ecc0d1385b05
-
- May 17, 2022
-
-
Adenilson Cavalcanti authored
Plus add flag for unused variables since it is active on V8 bazel builders. Bug: 103721 Change-Id: I73eac19583e567434d9971ef112562fe18d42a60 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3646604 Reviewed-by:
Noel Gordon <noel@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1004117} NOKEYCHECK=True GitOrigin-RevId: 0ff4a51a6dc62ede3e208f80ac01520b690b7f99
-
- May 15, 2022
-
-
Noel Gordon authored
zlib_compress deflate() should consume all the input data. Add a check and fail the deflation if there is unconsumed input data when the zlib deflate() call returns. What about inflate()? zlib_bench knows the expected length of the data (it is the original input length) and fails with a Z_DATA_ERROR if the zlib_uncompress inflate() output data length does not match. Bug: 798943 Change-Id: Ibdc9752754a52343ea6139ce9cc5a99c2a0a57a7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3630105 Auto-Submit: Noel Gordon <noel@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Chris Blume <cblume@chromium.org> Cr-Commit-Position: refs/heads/main@{#1003565} NOKEYCHECK=True GitOrigin-RevId: 4cc4f4c0086c2e5ad52bff6be7e2430b72ebcba9
-
- May 13, 2022
-
-
Noel Gordon authored
V8 bazel builders failed build due to an unused variable |n| in the 1.2.12 crc32_combine64(crc1, crc2, len2) function. Remove it. Bug: 1032721 Change-Id: I087dde0d7abd46da5455f3f4844333a31d22c0f9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3647250 Reviewed-by:
Hans Wennborg <hans@chromium.org> Commit-Queue: Hans Wennborg <hans@chromium.org> Auto-Submit: Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#1003070} NOKEYCHECK=True GitOrigin-RevId: df853fb66127baf3668a1fabbc951860046dadd3
-
- May 12, 2022
-
-
Chris Blume authored
Currently, I am the only person listed in the OWNERS file for zlib's fuzzers. Having only a single OWNER is not ideal. Noel and Hans have both been active in this area. This commit adds Noel and Hans as OWNERS of zlib's fuzzers. Change-Id: I6558e2ec77f777193ae87638fdcb69c7c8f9cd4d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3637973 Reviewed-by:
Noel Gordon <noel@chromium.org> Reviewed-by:
Hans Wennborg <hans@chromium.org> Commit-Queue: Chris Blume <cblume@chromium.org> Cr-Commit-Position: refs/heads/main@{#1002696} NOKEYCHECK=True GitOrigin-RevId: f009ecea72b8d0eba5a647f333e7c6128e1a9de7
-
Alex Danilo authored
Bug: 953256 Change-Id: I3f18cdbd6551a3c1e768354c8452cfc6de0d875c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3641229 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#1002527} NOKEYCHECK=True GitOrigin-RevId: c09ef1fb4048d7ea2d59543a46b8c73a4ec9d8e6
-
Alex Danilo authored
Adds parsing of the Info-ZIP Extra field which overrides the file name in the File Header only if the CRC in the extra field is a CRC of the file name in the File Header. See https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT section 4.6.9 for reference. Also tidied up some whitespace indent. Bug: 953256, 953599 Tests: Manually tested, auto test in follow on CL Change-Id: I1283dcb88a203c3bb56c1d9c504035a2e51aecbd Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3641742 Reviewed-by:
Noel Gordon <noel@chromium.org> Commit-Queue: Alex Danilo <adanilo@chromium.org> Cr-Commit-Position: refs/heads/main@{#1002476} NOKEYCHECK=True GitOrigin-RevId: c8834821f452a3d424edd0ed2a1e9ceeda38d0ea
-
- May 03, 2022
-
-
Peter Kasting authored
This helps prevent ambiguous symbol issues in C++20 and should have been the case anyway. Bug: 1284275 Change-Id: I86210c7b1c8133e8c872930e9e1fdf86b663e104 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3615258 Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by:
Hongchan Choi <hongchan@chromium.org> Reviewed-by:
Lei Zhang <thestig@chromium.org> Owners-Override: Lei Zhang <thestig@chromium.org> Commit-Queue: Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/main@{#998789} NOKEYCHECK=True GitOrigin-RevId: cc88ac052b7d86a19a2f553e1b47037e0250c639
-
- May 02, 2022
-
-
Arthur Eubanks authored
Fix an instance in libevent. Sink -Wno-deprecated-non-prototype into zlib, it's the only remaining library where this warning fires. (upstream bug https://github.com/madler/zlib/issues/633) Bug: 1314867 Change-Id: I2547ba1b358ab90ec6dece4f0879b2ebe6f59820 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3615937 Reviewed-by:
Nico Weber <thakis@chromium.org> Commit-Queue: Arthur Eubanks <aeubanks@google.com> Cr-Commit-Position: refs/heads/main@{#998593} NOKEYCHECK=True GitOrigin-RevId: cbba1d4d16d3dfeb51421749cafa34c2666f8b26
-
Noel Gordon authored
In zlib, hash_size is 1 << s->hash_bits or 65536 (at most) at maximum memory level which makes the Assert(hash_size == (ush)hash_size) fail at maximum zlib memory level (issue 1321435). Fix this incorrect Assert: test that hash_size is bounded viz., 1<<16 at most, and 1<<8 at least. Bug: 1316541, 1321435 Change-Id: Id1d28b1901905dcfdb889fcd5d3cdbc2a3d478a1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3617306 Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#998237} NOKEYCHECK=True GitOrigin-RevId: 0e8968867160101c6726e979fae136b560e54def
-
- Apr 30, 2022
-
-
Noel Gordon authored
Given an input file corpus, run zlib_bench --check[-binary] over those files and output the results to stdout. Bug: 798943,1316541 Change-Id: If99ea34af7f05698e8cea1dc3ca7e548b9f9d1bc Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3614630 Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Noel Gordon <noel@chromium.org> Auto-Submit: Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#998063} NOKEYCHECK=True GitOrigin-RevId: 25ee43caf00528cee12f4d10c6202766ebe0afe7
-
Noel Gordon authored
If USE_ZLIB_RABIN_KARP_ROLLING_HASH build-time option is defined, use the Rabin-Karp hash. This disables CRC SIMD hashing on ARM and Intel, which will degrade compression speed. However, the compressed output matches canonical zlib output, for the same input, and that should resolve ASOP OTA issue 1316541. To ensure the Rabin-Karp hash is used correctly in chromium zlib, the first step is to go back to using canonical fill_window(). To do this combine the ARM NEON and Intel SSE2 slide_hash() routines in a common framework called slide_hash_simd(). Remove fill_window_sse.c and undo deflate_read_buf() rename: name it back to canonical read_buf(). Change insert_string(): by default it uses CRC32C hashes on all ports (ARM, Intel) so add code comments to state that. If Rabin-Karp hashes are enabled, disable CRC32C hashes. Add a new deflate internal state variable chromium_zlib_hash, used to detect which type of hashing is enabled (Rabin-Karp, CRC32C). Set the state variable in deflateInit2_ after cpu_check_features() detection, with #ifdef guards matching the #ifdef logic of insert_string(). Change canonical fill_window() to insert hashes into {hash,prev} hash chains based on hash type (Rabin-Karp, CRC32C). Prior to this change, the ARM port was inserting Rabin-Karp hashes into hash chains even if CRC32 hashing was active when s->insert was > 0. Change longest_match() and deflate_fast(): update them to use the new deflate state variable chromium_zlib_hash. Compression performance degrades when Rabin-Karp hashing is used, but is unchanged when CRC32C hashing is enabled (chromium zlib default). Compat: if Rabin-Karp hashing is enabled, zlib-bench --check built as normal and against canonical zlib 1.2.11, produce the same compressed output for the snappy corpora for gzip,zlib,raw types and compression levels 1..9. Bug: 1316541 Change-Id: I0d5ee6240f0b7eac4653d60a29d459d994c3871f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3596671 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#998062} NOKEYCHECK=True GitOrigin-RevId: 2bd100e46361a459b41a29212ea8f97a4837a06c
-
Noel Gordon authored
Per CL:3591994 if the --check option is given, compress the input file and output the length and crc32 of the compressed data. Add check option modifier: --check-binary, which writes the compressed data to the output as well. Also normalize the check output compression details: use the base-name of the input file, instead of its full-path name. Bug: 798943,1316541 Change-Id: Ia27f09b1ad583bda8e9c82c62a5b24b619f6713a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3616433 Commit-Queue: Noel Gordon <noel@chromium.org> Auto-Submit: Noel Gordon <noel@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#998055} NOKEYCHECK=True GitOrigin-RevId: 5ae6f05e848868027ac1a78f191c4a43919e8c94
-
- Apr 29, 2022
-
-
Adenilson Cavalcanti authored
The last two changes came from the 'develop' branch of canonical zlib and should address some issues on 1.2.12 that are going to be featured on the upcoming 1.2.12.x. With this patch landing, Chromium's zlib will be 1.2.12 + fixes (plus our optimizations). Ported: - Eliminate use of ULL constants. - Fix crc32.c to compile local functions only if used. - zlib 1.2.12 - Silence some warnings from Visual Studio C. - Correct incorrect inputs provided to the CRC functions. Bug: 1032721 Change-Id: I3903ae4de5f42427fae1cca8052ad300f5a07b30 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3611239 Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Reviewed-by:
Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#997532} NOKEYCHECK=True GitOrigin-RevId: 9eb3d1c886a4dd302304241e74a75127e2069d17
-
- Apr 28, 2022
-
-
Adenilson Cavalcanti authored
Ported: - Avoid adding empty gzip member after gzflush with Z_FINISH. - Fix error in comment on the polynomial representation of a byte. - Clarify gz* function interfaces, referring to parameter names. - Change macro name in inflate.c to avoid collision in VxWorks. - Replace black/white with allow/block. (theresa-m) - Add fallthrough comments for gcc. Bug: 1032721 Change-Id: Iddabef8450dca9dced3df58473a0ecb197796dc4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3611483 Reviewed-by:
Noel Gordon <noel@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#996983} NOKEYCHECK=True GitOrigin-RevId: c47a52f8f7950377f45f850cf66092a4a6033fa6
-
- Apr 26, 2022
-
-
Adenilson Cavalcanti authored
This time we add an extra guard where it is required to explicitly activate the new Armv8.1 CRC-32 provided by zlib 1.2.12 (i.e. USE_CANONICAL_ARMV8_CRC32) since we measured and the serial implementation that we ship since early 2018 is slightly faster. Ported: - Add use of the ARMv8 crc32 instructions when requested. - Use ARM crc32 instructions if the ARM architecture has them. - Explicitly note that the 32-bit check values are 32 bits. Bug: 1032721 Change-Id: I0ca87270ef470de243e62e9056ed0cd195da21ec Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3607702 Reviewed-by:
Noel Gordon <noel@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#996421} NOKEYCHECK=True GitOrigin-RevId: 43824b58db1f48f93a50194c0488ec4495f4c492
-
Findit authored
This reverts commit 096d2447f2fdecf9693db32ba50858d5e31cca34. Reason for revert: Findit (https://goo.gl/kROfz5) identified this CL at revision 096d2447f2fdecf9693db32ba50858d5e31cca34 as the culprit for failures in the continuous build including: Sample Failed Build: https://ci.chromium.org/b/8815840511093637041 Sample Failed Step: compile If it is a false positive, please report it at https://bugs.chromium.org/p/chromium/issues/entry?status=Available&comment=Datastore+key+for+the+culprit+entity%3A+chromium.googlesource.com%2Fchromium%2Fsrc%2Frefs%2Fheads%2Fmain%2F096d2447f2fdecf9693db32ba50858d5e31cca34&labels=Test-Findit-Wrong&components=Tools%3ETest%3EFindIt&summary=Wrongly+blame+096d2447f2fdecf9693db32ba50858d5e31cca34 Original change's description: > [zlib] Re-sync with zlib 1.2.12, patch 13 of N > > Ported: > - Add use of the ARMv8 crc32 instructions when requested. > - Use ARM crc32 instructions if the ARM architecture has them. > - Explicitly note that the 32-bit check values are 32 bits. > > Bug: 1032721 > Change-Id: Ic988198b20de6f59c5fbcd3d37a33d2594380b28 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3607170 > Reviewed-by:
Noel Gordon <noel@chromium.org> > Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> > Cr-Commit-Position: refs/heads/main@{#996030} Change-Id: Ic2edd4bdc8c8f5538414ce8e71b8666e271752df No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 1032721 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3607182 Reviewed-by:
Christopher Lam <calamity@chromium.org> Commit-Queue: Christopher Lam <calamity@chromium.org> Owners-Override: Christopher Lam <calamity@chromium.org> Cr-Commit-Position: refs/heads/main@{#996033} NOKEYCHECK=True GitOrigin-RevId: 7acb20d251cd57c13e3f04fa41be7b9c83d06d5e
-
Adenilson Cavalcanti authored
Ported: - Add use of the ARMv8 crc32 instructions when requested. - Use ARM crc32 instructions if the ARM architecture has them. - Explicitly note that the 32-bit check values are 32 bits. Bug: 1032721 Change-Id: Ic988198b20de6f59c5fbcd3d37a33d2594380b28 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3607170 Reviewed-by:
Noel Gordon <noel@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#996030} NOKEYCHECK=True GitOrigin-RevId: 096d2447f2fdecf9693db32ba50858d5e31cca34
-
- Apr 25, 2022
-
-
Adenilson Cavalcanti authored
Ported: - Use atomic test and set, if available, for dynamic CRC tables - Correct comment in crc32.c Bug: 1032721 Change-Id: Iabbfb759c83fc629f3d618e3b6aee98fa50b6aee Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3605954 Reviewed-by:
Noel Gordon <noel@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#995877} NOKEYCHECK=True GitOrigin-RevId: d5498c6134bec53234615dcd02efa3b522070e73
-
- Apr 22, 2022
-
-
Adenilson Cavalcanti authored
Ported: - Add tables for crc32_combine(), to speed it up by a factor of 200 - Add crc32_combine_gen() and crc32_combine_op() for fast combines - Speed up software CRC-32 computation by a factor of 1.5 to 3 Bug: 1032721 Change-Id: Ia6a1fd31e5d264813e2d6bb307d95123c855240c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3584144 Reviewed-by:
Noel Gordon <noel@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#995069} NOKEYCHECK=True GitOrigin-RevId: 3b3abb30607889eccfb38d02cc13a17da6130b9b
-
- Apr 21, 2022
-
-
Adenilson Cavalcanti authored
This change will allow Chromium's zlib to use the portable hash function provided by canonical zlib (i.e. Rabin-Karp). This switch is available during compiling time, but it will regress compression performance. Bug: 1316541 Change-Id: Ie2f3662c60221a7a0cc4d8d7b65745994a797e96 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3587609 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#994782} NOKEYCHECK=True GitOrigin-RevId: dbb1ac4d43c8d854a44f94ed9cc0303ae77230f1
-
Noel Gordon authored
This is a just CHROMIUM_ZLIB_NO_CASTAGNOLI synonym and can be used in chromium zlib code to guard UPDATE_HASH fixes. Add references, to explain Rabin-Karp use in zlib, for the curious. Not used yet, so no change in behavior. Bug: 1316541 Change-Id: I321bf7c245c1ca63ead4627f17cf1d58f7d98b26 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3587989 Auto-Submit: Noel Gordon <noel@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Chris Blume <cblume@chromium.org> Cr-Commit-Position: refs/heads/main@{#994634} NOKEYCHECK=True GitOrigin-RevId: 6a5338eeabda806f43a9c7d589cc317c2ec6d050
-
- Apr 20, 2022
-
-
Noel Gordon authored
After CL:1960893, there are no calls to crc32_simd.h API anymore from deflate.c code. Remove this unused include file. No change in behavior. Bug: 1316541 Change-Id: Ia5953ef1536310970e006d82f8e9a4a836c8acc7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3592421 Reviewed-by:
Hans Wennborg <hans@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Noel Gordon <noel@chromium.org> Auto-Submit: Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#994195} NOKEYCHECK=True GitOrigin-RevId: f480d12c204852ebe388183a8e3ae67952a80038
-
- Apr 19, 2022
-
-
Noel Gordon authored
If --check option is given, compress the input file. Report the length of the compresssed data, and the crc32 of the compressed data. For the GZIP and ZLIB DEFLATE stream types, also report the data those stream types [1] store at the end of the compressed data. Add the --check option to program usage message. Also change the usage message to always report the zlib verion number. [1] See RFC-1952 GZIP, RFC 1950 ZLIB. Bug: 798943,1316541 Change-Id: Id9d5a918b3ae142077d654f82ca6c9bd40762cfe Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3591994 Auto-Submit: Noel Gordon <noel@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#993581} NOKEYCHECK=True GitOrigin-RevId: ce61cdae957433ff9955863b07826f0d6fdc9f3c
-
- Apr 11, 2022
-
-
Adenilson Cavalcanti authored
Validated build is fine for V8@Win10 with MSVC. Ported: - Avoid the use of ptrdiff_t Bug: 1032721 Change-Id: I27c290bf29321c3000ffd8edfa53f21b900859d5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3579804 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#991240} NOKEYCHECK=True GitOrigin-RevId: bf6fd995251659eb7d57e3ef453f37e1f0d55aa8
-