- Feb 12, 2018
-
-
Noel Gordon authored
Run git cl format over BUILD.gn, and add a line space here and there to increase readability. Tbr: cavalcanti@chromium.org Bug: None Change-Id: Id46ff314c0fe820880fd441858cbaca6d7754b46 Reviewed-on: https://chromium-review.googlesource.com/912209 Reviewed-by:
Noel Gordon <noel@chromium.org> Commit-Queue: Noel Gordon <noel@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#536036} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 94793843358349ff7e5259eef7a3c5519a90da09
-
Noel Gordon authored
This reverts commit b07c92a12d39e1ac51fe0dab8e4cb98f91f0d213. Reason for revert: the litmus test of running this code on linux x86 bots worked. However, performance-wise we're not so sure. Back this change out to restrict it to Intel x64 for now. Original change's description: > Add x86 bots to the read64le party > > thestig@ reminds me we do have linux x86 bots on the waterfall. Add them > to the read64le party. Minor: run git cl format over BUILD.gn, and add a > line space here and there for readability. > > Bug: 760853 > Change-Id: Ia47296a26bff77f9be699e31053d8b94aac583f4 > Reviewed-on: https://chromium-review.googlesource.com/910328 > Reviewed-by:
Mike Klein <mtklein@chromium.org> > Commit-Queue: Noel Gordon <noel@chromium.org> > Cr-Commit-Position: refs/heads/master@{#535612} TBR=noel@chromium.org,mtklein@chromium.org,nigeltao@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 760853 Change-Id: If3d24a2cdc6614ff82c781019623108a52dbd16a Reviewed-on: https://chromium-review.googlesource.com/913029 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Noel Gordon <noel@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#536020} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: b7fef3927da4a703c523e7e8916fd8d4c031a402
-
- Feb 09, 2018
-
-
Noel Gordon authored
thestig@ reminds me we do have linux x86 bots on the waterfall. Add them to the read64le party. Minor: run git cl format over BUILD.gn, and add a line space here and there for readability. Bug: 760853 Change-Id: Ia47296a26bff77f9be699e31053d8b94aac583f4 Reviewed-on: https://chromium-review.googlesource.com/910328 Reviewed-by:
Mike Klein <mtklein@chromium.org> Commit-Queue: Noel Gordon <noel@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#535612} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: b07c92a12d39e1ac51fe0dab8e4cb98f91f0d213
-
- Feb 08, 2018
-
-
Noel Gordon authored
The chunk-copy code contribution deals with writing decoded DEFLATE data to the output with SIMD methods to increase inflate decode speed. Modern compilers such as gcc/clang/msvc elide the portable memcpy() calls used, replacing them with much faster SIMD machine instructions. Similarly, reading the input data to the DEFLATE decoder with wide, SIMD methods can also increase decode speed. See https://crbug.com/760853#c32 for details; content-encoding: gzip decoding speed improves by 2.17x, in the median over the snappy testdata corpus, when this method is combined with the chunk-copy, and the adler32, and crc32 SIMD contributions (this method improves our current inflate decode speed by 20-30%). Update the chunk-copy code with a wide input data reader, which consumes input in 64-bit (8 byte) chunks. Update inflate_fast_chunk_() to use the wide reader. This feature is supported on little endian machines, and is enabled with the INFLATE_CHUNK_READ_64LE build flag in BUILD.gn on Intel CPU only for now. The wide reader idea is due to nigeltao@chromium.org who did the initial work. This patch is based on his patch [1]. No change in behavior (other than more inflate decode speed), so no new tests. [1] https://chromium-review.googlesource.com/c/chromium/src/+/601694/16 Bug: 760853 Change-Id: Ia806d9a225737039367e1b803624cd59e286ce51 Reviewed-on: https://chromium-review.googlesource.com/900982 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Mike Klein <mtklein@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#535365} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 6e212423a214e0e41794e8c9969c2896e2c33121
-
- Jan 21, 2018
-
-
Noel Gordon authored
Add a tool for measuring encode/decode performance of gzip, zlib, and raw data encoded in DEFLATE compressed format. Given a file containing any data, encode (compress) it into gzip, zlib, or raw DEFLATE format (selected from the command line) then decode (uncompress) the DEFLATE data. Verify that the file data and the uncompressed data match. Output the median and maximum encoding and decoding rates in MB/s. Bug: 798943 Change-Id: I6729a8e875452c6656bd16d5c798f5d1f3c12689 Reviewed-on: https://chromium-review.googlesource.com/850652 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#530780} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 875ad5e3c08831f1efa91adade7fc350b1ef45bc
-
- Jan 04, 2018
-
-
Noel Gordon authored
Using an SSE4.2-based crc32 improves the decoding rate of the PNG 140 corpus by 4% average, giving a total 40% performance increase when combined with adler32 SIMD code and inflate chunk copy code, see https://crbug.com/796178#c2 for details. Raw crc32 speed is 5x - 25x faster than the zlib default "BYFOUR" crc32, and gzip- and zlib-wrapped inflate performance improves by 69% and 50% for the snappy corpus (https://crbug.com/796178#c3 #4 for details). Add crc32 SIMD implementation and update the call-site in crc32.c to use the new crc32 code, using run-time detection of the SSE4.2 and PCLMUL support required by the crc32 SIMD code. Update BUILD.gn to compile the crc32 SIMD code for Intel devices, also update names.h with the new symbol defined by the crc32 SIMD code path. Bug: 796178 Change-Id: I1bb94b47c9a4934eed01ba3d4feda51d67c4bf85 Reviewed-on: https://chromium-review.googlesource.com/833820 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#526935} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 65e2abcb74b1c07fa14f46abaa1fb1717892eec3
-
- Dec 20, 2017
-
-
Noel Gordon authored
MSVC noted the unsigned |n| = size_t |blocks| could be a possible loss in precision. No loss in precision occurs since (n > blocks) at this point: |blocks| fits in an unsigned type. To silence compiler warnings, first update BUILD.gn for the adler SIMD code to use chromium compiler:chromium_code rule (more error checking), rather than the permissive "compiler:no_chromium_code" rule. Then cast |blocks| to unsigned on assigment to |n| (this is safe to do as mentioned above). No change in behavior, no new tests. Tbr: cblume@chromium.org Bug: 762564 Change-Id: Ia97120bcca206287fd42b97674f8a6215283e4a5 Reviewed-on: https://chromium-review.googlesource.com/835927 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Sam McNally <sammc@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#525285} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0cb9a22e2fb55e092342192d66f7e33c14432d27
-
- Dec 13, 2017
-
-
Noel Gordon authored
Speculative fix: back off from using -O3 on Android for the inflate chunk copy code to see if -O3 caused the perf bot regression on the Android One bot, http://bit.ly/2AfaxhG Bug: 772870 Change-Id: I06bd941224dacbc5d7024a65934faaa53e4a4ce5 Reviewed-on: https://chromium-review.googlesource.com/823503 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Mike Klein <mtklein@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Reviewed-by:
Noel Gordon <noel@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#523679} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 53edf03e13a1569f146f136c9e43bc6e476bf33e
-
- Dec 12, 2017
-
-
Lei Zhang authored
Change-Id: I69bbbfa9d4c317a522a39e097b478d0f80e61fad Reviewed-on: https://chromium-review.googlesource.com/818606 Reviewed-by:
Scott Graham <scottmg@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Reviewed-by:
Max Moroz <mmoroz@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#523273} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 1295fa76d2e7c8efc134219dde4a55fc0630f0cb
-
- Dec 08, 2017
-
-
Noel Gordon authored
Using SSE2 chunk copies improves the decoding rate of the PNG 140 corpus by an average 17%, giving a total 37% performance increase when combined with SIMD adler32 code (https://crbug.com/772870#c3 for details). Move the arm-specific code back into the main chunk copy code and generalize the SIMD parts of chunkset_core() with inline function calls for ARM, and Intel SSE2 devices. This removes the TODO from arm/chunkcopy_arm.h, and that file can be deleted as a result. Add SSE2 vector load / store SSE helpers for chunkset_core(). The existing NEON load code had alignment issues, as noted in review. Fix that: use unaligned loads in the ARM helper code. Change chunkcopy.h to use __builtin_memcpy if it's available, use zmemcpy otherwise such as on MSVC. Also call x86_check_features() in inflateInit2_() to keep the adler32 SIMD code path enabled. Update BUILD.gn to conditionally compile the SIMD chunk copy code on Intel SSE2 and ARM NEON devices. Update names.h to add the new symbol defined by the inflate chunk copy code path. Code had various comment styles; pick one and use it consistently everywhere. Add inffast_chunk.h TODO(cblume). Bug: 772870 Change-Id: I47004c68ee675acf418825fb0e1f8fa8018d4342 Reviewed-on: https://chromium-review.googlesource.com/708834 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#522764} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: c293a3255eb27dee8879f85f2c45dedff58e2452
-
- Nov 30, 2017
-
-
Boris Sazonov authored
This reverts commit 35988c821c051a57e30c76f9fcd87b7b677bd9bd. Reason for revert: broke build ('cpu-features.h' not found) https://uberchromegw.corp.google.com/i/internal.client.clank/builders/x64-builder/builds/13697 Original change's description: > Using ARMv8 CRC32 specific instruction > > CRC32 affects performance for both image decompression (PNG) > as also in general browsing while accessing websites that serve > content using compression (i.e. Content-Encoding: gzip). > > This patch implements an optimized CRC32 function using the > dedicated instruction available in ARMv8. This instruction is available > in new Android devices featuring an ARMv8 SoC, like Nexus 5x and > Google Pixel. > > It should be between 6x (A53: 116ms X 22ms for a 4Kx4Kx4 buffer) to > 10x faster (A72: 91ms x 9ms) than the C implementation currently used > by zlib. > > PNG decoding performance gains should be around 5-9%. > > Finally it also introduces code to perform the ARM CPU features detection > using getauxval()@Linux/CrOS or android_getCpuFeatures(). We pre-built > and link the CRC32 instruction dependent code but will decide if to > use it at run time. > > If the feature is not supported, we fallback to the C implementation. > > This approach allows to use the instruction in both 32bits and 64bits > builds and works fine either in ARMv7 or ARMv8 processor. I tested the > generated Chromium apk in both a ARMv7 (Nexus 4 and 6) and ARMv8 (Nexus 5x and > Google Pixel). > > Change-Id: I069408ebc06c49a3c2be4ba3253319e025ee09d7 > Bug: 709716 > Reviewed-on: https://chromium-review.googlesource.com/612629 > Reviewed-by:
Chris Blume <cblume@chromium.org> > Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> > Cr-Commit-Position: refs/heads/master@{#520377} TBR=agl@chromium.org,noel@chromium.org,cavalcantii@chromium.org,cblume@chromium.org,mtklein@chromium.org,adenilson.cavalcanti@arm.com Change-Id: Ief2c32df5c8a37635f937cd6a671f5574f5a53a3 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 709716 Reviewed-on: https://chromium-review.googlesource.com/799930 Reviewed-by:
Chris Blume <cblume@chromium.org> Reviewed-by:
Boris Sazonov <bsazonov@chromium.org> Commit-Queue: Boris Sazonov <bsazonov@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#520497} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: e7d9a4649bde6f047105d29f0026dd8c3d54143a
-
Adenilson Cavalcanti authored
CRC32 affects performance for both image decompression (PNG) as also in general browsing while accessing websites that serve content using compression (i.e. Content-Encoding: gzip). This patch implements an optimized CRC32 function using the dedicated instruction available in ARMv8. This instruction is available in new Android devices featuring an ARMv8 SoC, like Nexus 5x and Google Pixel. It should be between 6x (A53: 116ms X 22ms for a 4Kx4Kx4 buffer) to 10x faster (A72: 91ms x 9ms) than the C implementation currently used by zlib. PNG decoding performance gains should be around 5-9%. Finally it also introduces code to perform the ARM CPU features detection using getauxval()@Linux/CrOS or android_getCpuFeatures(). We pre-built and link the CRC32 instruction dependent code but will decide if to use it at run time. If the feature is not supported, we fallback to the C implementation. This approach allows to use the instruction in both 32bits and 64bits builds and works fine either in ARMv7 or ARMv8 processor. I tested the generated Chromium apk in both a ARMv7 (Nexus 4 and 6) and ARMv8 (Nexus 5x and Google Pixel). Change-Id: I069408ebc06c49a3c2be4ba3253319e025ee09d7 Bug: 709716 Reviewed-on: https://chromium-review.googlesource.com/612629 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#520377} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 35988c821c051a57e30c76f9fcd87b7b677bd9bd
-
- Nov 04, 2017
-
-
Chris Blume authored
We want to cover all of zlib's external APIs. deflate() currently isn't covered. BUG=779648 Change-Id: I1d1ea523aa6caa2e468b9641dbf7f32c54724f38 Reviewed-on: https://chromium-review.googlesource.com/744330 Commit-Queue: Chris Blume <cblume@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Max Moroz <mmoroz@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#514045} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 66ca64074454e98829343bb2156b07958570b722
-
- Nov 03, 2017
-
-
Chris Blume authored
We want to cover all of zlib's external APIs. deflateSetDictionary() currently isn't covered. BUG=780926 Change-Id: Ie2da648a4d58fca0745c814b004d3859e81a85a6 Reviewed-on: https://chromium-review.googlesource.com/752070 Reviewed-by:
Max Moroz <mmoroz@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Chris Blume <cblume@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#513917} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 425d4cd82b3cdee276acf851d46d3eaf7662946a
-
Adenilson Cavalcanti authored
This handles the case where a zlib user could rely on InflateBack API to decompress content. The NEON optimization assumes that it can perform wide stores, sometimes overwriting data on the output pointer (but never overflowing the buffer end as it has enough room for the write). For infback there is no such guarantees (i.e. no extra wiggle room), which can result in illegal operations. This patch fixes the potential issue by falling back to the non-optimized code for such cases. Also it adds some comments about the entry assumptions in inflate and writes out a defined value at the write buffer to identify where the real data has ended (helpful while debugging). Bug: 769880 Change-Id: I08130e4d012e55fb1a114394b88df7e9d8a6542f Reviewed-on: https://chromium-review.googlesource.com/749732 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#513830} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0bb11040792edc5b28fcb710fc4c01fedd98c97c
-
- Nov 02, 2017
-
-
Chris Blume authored
Now that zlib_uncompress_fuzzer.cc is under the zlib directory, that "zlib_" in the file name is no longer useful. Rename it to remove that and be more concise. BUG=779823 Change-Id: I8169fae4ff81c86b162c1978bcc288a970eb6eb4 Reviewed-on: https://chromium-review.googlesource.com/750190 Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Max Moroz <mmoroz@chromium.org> Commit-Queue: Chris Blume <cblume@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#513389} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: e08208b15fc3c0b30c9adcab19c79a6746f68f8d
-
Chris Blume authored
We want to cover all of zlib's external APIs. inflate() currently isn't covered. BUG=779676 Change-Id: Ic8ea52f189a9870ea643d8d720a8e49f79f85422 Reviewed-on: https://chromium-review.googlesource.com/744338 Commit-Queue: Chris Blume <cblume@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Max Moroz <mmoroz@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#513374} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 1d1fe9219bcd06691028d3f84ac35a2d76b3f3b5
-
- Oct 31, 2017
-
-
Chris Blume authored
Zlib's fuzzer (and other tests) should all be close to the code it is related to. Move zlib_uncompress_fuzzer into third_party/zlib. BUG=779823 Change-Id: I960561b5cd83a629e9d296f56c75c7bfcec2663a Reviewed-on: https://chromium-review.googlesource.com/744597 Reviewed-by:
Max Moroz <mmoroz@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Chris Blume <cblume@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#512992} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 616f37bac71ba5ab23773f49989298d24cc2e136
-
- Oct 30, 2017
-
-
Adenilson Cavalcanti authored
The NEON specific code will be hosted in the folder 'contrib/optimizations/arm' while the platform independent C code is hosted in the upper directory. This allows to easily implement the inffast optimization for other architectures by simply implementing 2 functions and including the necessary header in chunk_copy.h (that is used by inflate and inffast). The idea is with time to move all optimizations to this new folder. Bug: 769880 Change-Id: I404ec0fdf3f6867c9c124da859ca38bf57b25447 Reviewed-on: https://chromium-review.googlesource.com/740907 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#512542} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 626df311481f7fac07b58799fbc94e09c848f01d
-
- Sep 29, 2017
-
-
Noel Gordon authored
Add SSSE3 implementation of the adler32 checksum, suitable for both large workloads, and small workloads commonly seen during PNG image decoding. Add a NEON implementation. Speed is comparable to the serial adler32 computation but near 64 bytes of input data, the SIMD code paths begin to be faster than the serial path: 3x faster at 256 bytes of input data, to ~8x faster for 1M of input data (~4x on ARMv8 NEON). For the PNG 140 image corpus, PNG decoding speed is ~8% faster on average on the desktop machines tested, and ~2% on an ARMv8 Pixel C Android (N) tablet, https://crbug.com/762564#c41 Update x86.{c,h} to runtime detect SSSE3 support and use it to enable the adler32_simd code path and update inflate.c to call x86_check_features(). Update the name mangler file names.h for the new symbols added, add FIXME about simd.patch. Ignore data alignment in the SSSE3 case since unaligned access is no longer penalized on current generation Intel CPU. Use it in the NEON case however to avoid the extra costs of unaligned memory access on ARMv8/v7. NEON credits: the v_s1/s2 vector component accumulate code was provided by Adenilson Cavalcanti. The uint16 column vector sum code is from libdeflate with corrections to process NMAX input bytes which improves performance by 3% for large buffers. Update BUILD.gn to put the code in its own source set, and add it conditionally to the zlib library build rule. On ARM, build the SIMD with max-speed config to produce the smallest code. No change in behavior, covered by many existing tests. Bug: 762564 Change-Id: I14a39940ae113b5a67ba70a99c3741e289b1796b Reviewed-on: https://chromium-review.googlesource.com/660019 Commit-Queue: Chris Blume <cblume@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Chris Blume <cblume@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#505447} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 09b784fd12f255a9da38107ac6e0386f4dde6d68
-
Adenilson Cavalcanti authored
In inflate_fast() the output pointer always has plenty of room to write. This means that so long as the target is capable, wide un-aligned loads and stores can be used to transfer several bytes at once. When the reference distance is too short simply unroll the data a little to increase the distance. Patch by Simon Hosie. PNG decoding performance gains should be around 30-33%. This also includes the fix reported in madler/zlib#245. Bug: 697280 Change-Id: I90a9866cc56aa766df5de472cd10c007f4b560d8 Reviewed-on: https://chromium-review.googlesource.com/689961 Reviewed-by:
Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#505276} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 78104f4d73e3bbb4155fa804d00ed66682180556
-
- Sep 16, 2017
-
-
Mike Klein authored
This reverts commit 0397489124ce7e6aced020f8b85f5034c7d5f49b. Reason for revert: appears to break Cronet. Original change's description: > Reland "zlib: inflate using wider loads and stores" > > This reverts commit e1f30a329eccf19ce1c8772e873abf88970cb65c. > > Reason for revert: This patch was originally reverted because > we have an ARMv6 build target (part of Cronet) which > incorrectly set NEON support in our build files. As a result, > the NEON intrinsics were included despite ARMv6 not > supporting NEON. > > The build problem was addressed here: > https://chromium-review.googlesource.com/c/chromium/src/+/639931 > > Now that ARMv6 builds do not set NEON support, these zlib > changes (which are only applied if NEON support is set in the > build) will not cause errors on ARMv6 targets. > > BUG=697280 > > Original change's description: > > zlib: inflate using wider loads and stores > > > > In inflate_fast() the output pointer always has plenty of room to write. > > This means that so long as the target is capable, wide un-aligned > > loads and stores can be used to transfer several bytes at once. > > > > When the reference distance is too short simply unroll the data a > > little to increase the distance. Patch by Simon Hosie. > > > > PNG decoding performance gains should be around 30-33%. > > > > BUG=697280 > > > > Change-Id: I59854eb25d2b1e43561c8a2afaf9175bf10cf674 > > Reviewed-on: https://chromium-review.googlesource.com/627098 > > Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> > > Reviewed-by:
Mike Klein <mtklein@chromium.org> > > Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#497866} > > > > Change-Id: I0b4cd1a393464c960c6a1e48a022a20340781e75 > Reviewed-on: https://chromium-review.googlesource.com/641575 > Commit-Queue: Chris Blume <cblume@chromium.org> > Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> > Reviewed-by:
Leon Scroggins <scroggo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#498580} TBR=scroggo@chromium.org,agl@chromium.org,cavalcantii@chromium.org,cblume@chromium.org,mtklein@chromium.org,adenilson.cavalcanti@arm.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 697280 Change-Id: I200e0e3b9cb9c884acfd6868067464a5f6cef804 Reviewed-on: https://chromium-review.googlesource.com/669259 Reviewed-by:
Mike Klein <mtklein@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#502474} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 7a620575b0512b33708e723c260fe66b90b5b103
-
- Sep 15, 2017
-
-
Mike Klein authored
This reverts commit 94b37d283b45036a471e316ffcaf8fe71914a7ac. Reason for revert: need to revert earlier third_party/zlib CLs. Original change's description: > Run "git cl format" on third_party/zlib. > > TBR=thakis@chromium.org > Bug:762564 > > Change-Id: I63a809b785a21190b0b8a1744cf073a02beaa239 > Reviewed-on: https://chromium-review.googlesource.com/644512 > Commit-Queue: Noel Gordon <noel@chromium.org> > Reviewed-by:
Stuart Langley <slangley@chromium.org> > Reviewed-by:
Noel Gordon <noel@chromium.org> > Cr-Commit-Position: refs/heads/master@{#500206} TBR=noel@chromium.org,cavalcantii@chromium.org,cblume@chromium.org,slangley@chromium.org,nigeltao@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 762564 Change-Id: Ie01454d9b4f24da84a6ae9120ff9d73cf20f32b7 Reviewed-on: https://chromium-review.googlesource.com/669539 Reviewed-by:
Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#502402} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: dcf65ae672b4b2e3235310f7ef7415294e75e472
-
- Sep 07, 2017
-
-
Nigel Tao authored
TBR=thakis@chromium.org Bug:762564 Change-Id: I63a809b785a21190b0b8a1744cf073a02beaa239 Reviewed-on: https://chromium-review.googlesource.com/644512 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by:
Stuart Langley <slangley@chromium.org> Reviewed-by:
Noel Gordon <noel@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#500206} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 94b37d283b45036a471e316ffcaf8fe71914a7ac
-
- Aug 30, 2017
-
-
Chris Blume authored
This reverts commit e1f30a329eccf19ce1c8772e873abf88970cb65c. Reason for revert: This patch was originally reverted because we have an ARMv6 build target (part of Cronet) which incorrectly set NEON support in our build files. As a result, the NEON intrinsics were included despite ARMv6 not supporting NEON. The build problem was addressed here: https://chromium-review.googlesource.com/c/chromium/src/+/639931 Now that ARMv6 builds do not set NEON support, these zlib changes (which are only applied if NEON support is set in the build) will not cause errors on ARMv6 targets. BUG=697280 Original change's description: > zlib: inflate using wider loads and stores > > In inflate_fast() the output pointer always has plenty of room to write. > This means that so long as the target is capable, wide un-aligned > loads and stores can be used to transfer several bytes at once. > > When the reference distance is too short simply unroll the data a > little to increase the distance. Patch by Simon Hosie. > > PNG decoding performance gains should be around 30-33%. > > BUG=697280 > > Change-Id: I59854eb25d2b1e43561c8a2afaf9175bf10cf674 > Reviewed-on: https://chromium-review.googlesource.com/627098 > Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> > Reviewed-by:
Mike Klein <mtklein@chromium.org> > Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> > Cr-Commit-Position: refs/heads/master@{#497866} > Change-Id: I0b4cd1a393464c960c6a1e48a022a20340781e75 Reviewed-on: https://chromium-review.googlesource.com/641575 Commit-Queue: Chris Blume <cblume@chromium.org> Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Leon Scroggins <scroggo@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#498580} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0397489124ce7e6aced020f8b85f5034c7d5f49b
-
- Aug 28, 2017
-
-
Paul Miller authored
This reverts commit ad8fca9f4ad29ab87e49ec91a3577ef3696b3a84. Reason for revert: broke Android_Cronet_ARMv6_Builder: error: "NEON support not enabled" Original change's description: > zlib: inflate using wider loads and stores > > In inflate_fast() the output pointer always has plenty of room to write. > This means that so long as the target is capable, wide un-aligned > loads and stores can be used to transfer several bytes at once. > > When the reference distance is too short simply unroll the data a > little to increase the distance. Patch by Simon Hosie. > > PNG decoding performance gains should be around 30-33%. > > BUG=697280 > > Change-Id: I59854eb25d2b1e43561c8a2afaf9175bf10cf674 > Reviewed-on: https://chromium-review.googlesource.com/627098 > Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> > Reviewed-by:
Mike Klein <mtklein@chromium.org> > Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> > Cr-Commit-Position: refs/heads/master@{#497866} TBR=scroggo@chromium.org,agl@chromium.org,cavalcantii@chromium.org,cblume@chromium.org,mtklein@chromium.org,adenilson.cavalcanti@arm.com Change-Id: I93030617e4ed4feb665de1095c411bce80c531a9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 697280 Reviewed-on: https://chromium-review.googlesource.com/639399 Reviewed-by:
Paul Miller <paulmiller@chromium.org> Commit-Queue: Paul Miller <paulmiller@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#497938} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: e1f30a329eccf19ce1c8772e873abf88970cb65c
-
Adenilson Cavalcanti authored
In inflate_fast() the output pointer always has plenty of room to write. This means that so long as the target is capable, wide un-aligned loads and stores can be used to transfer several bytes at once. When the reference distance is too short simply unroll the data a little to increase the distance. Patch by Simon Hosie. PNG decoding performance gains should be around 30-33%. BUG=697280 Change-Id: I59854eb25d2b1e43561c8a2afaf9175bf10cf674 Reviewed-on: https://chromium-review.googlesource.com/627098 Reviewed-by:
Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by:
Mike Klein <mtklein@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#497866} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: ad8fca9f4ad29ab87e49ec91a3577ef3696b3a84
-
- May 22, 2017
-
-
Thiago Farina authored
This came up while doing commit 3fe737215d43: ("third_party/zlib: fix for "gn check""), at https://chromium-review.googlesource.com/508355 zip and compression_utils are libraries built on top of zlib and base, and they don't really belong to third_party/zlib. As a first move into pulling them out of third_party, we are extracting their targets out of zlib's BUILD.gn file. BUG=None Change-Id: I927d212b8e68ddef1961e2f1971eee5bcf0a6df7 Reviewed-on: https://chromium-review.googlesource.com/509510 Reviewed-by:
Matt Sarett <msarett@chromium.org> Reviewed-by:
Ken Rockot <rockot@chromium.org> Reviewed-by:
Ilya Sherman <isherman@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Thiago Farina <tfarina@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#473595} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: d8a8a07cc7b4196d00c7ecb3eeb96671cd189dea
-
- May 19, 2017
-
-
Thiago Farina authored
compression_utils target include from //base and thus should depend on it. Checked on Linux with the following command line: $ gn check --force gn-ninja-out/local-dbg --args='is_debug=true is_component_build=true symbol_level=1' //third_party/zlib/* BUG=367595 Change-Id: Ic2ebfc5ff441eae4f4b2a2c0a7eca7024e6fe33f Reviewed-on: https://chromium-review.googlesource.com/508355 Commit-Queue: Thiago Farina <tfarina@chromium.org> Reviewed-by:
Ilya Sherman <isherman@chromium.org> Reviewed-by:
Satoru Takabayashi <satorux@google.com> Reviewed-by:
Matt Sarett <msarett@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#473187} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 3fe737215d4305f8766db04b2a4dfe15087b5b9a
-
- Apr 07, 2017
-
-
takise authored
MiniZip will be used by Zip Archiver, which is built with NaCL toolchain. MiniZip will be moved to src/third_party/ in the future, but it will take time, so now we just use minizip here. Review-Url: https://codereview.chromium.org/2799213002 Cr-Original-Commit-Position: refs/heads/master@{#462779} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 3387639806215545d562fa99b93054a6754779b5
-
- Mar 30, 2017
-
-
thestig authored
This lets other projects reuse the plain parts of third_party/zlib without depending on Chromium's base/. BUG=541704 Review-Url: https://codereview.chromium.org/2781353002 Cr-Original-Commit-Position: refs/heads/master@{#460863} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: da0685cc8b20ccce91494583f91aa4a8723ad7c3
-
- Feb 15, 2017
-
-
mark authored
Reapply and regenerate all local patches to upstream zlib 1.2.11 Explicitly specify 9 as the minimum windowBits value (representing a 512-byte window) during compression in net/websockets even when 8 (representing 256) is received. This was previously silently done during compression. Because of how zlib's deflate is implemented, when windowBits is 9, it will produce a stream that can be decompressed with a 250-byte or larger window. Changes in 1.2.9 (31 Dec 2016) - Fix contrib/minizip to permit unzipping with desktop API [Zouzou] - Improve contrib/blast to return unused bytes - Assure that gzoffset() is correct when appending - Improve compress() and uncompress() to support large lengths - Fix bug in test/example.c where error code not saved - Remedy Coverity warning [Randers-Pehrson] - Improve speed of gzprintf() in transparent mode - Fix inflateInit2() bug when windowBits is 16 or 32 - Change DEBUG macro to ZLIB_DEBUG - Avoid uninitialized access by gzclose_w() - Allow building zlib outside of the source directory - Fix bug that accepted invalid zlib header when windowBits is zero - Fix gzseek() problem on MinGW due to buggy _lseeki64 there - Loop on write() calls in gzwrite.c in case of non-blocking I/O - Add --warn (-w) option to ./configure for more compiler warnings - Reject a window size of 256 bytes if not using the zlib wrapper - Fix bug when level 0 used with Z_HUFFMAN or Z_RLE - Add --debug (-d) option to ./configure to define ZLIB_DEBUG - Fix bugs in creating a very large gzip header - Add uncompress2() function, which returns the input size used - Assure that deflateParams() will not switch functions mid-block - Dramatically speed up deflation for level 0 (storing) - Add gzfread(), duplicating the interface of fread() - Add gzfwrite(), duplicating the interface of fwrite() - Add deflateGetDictionary() function - Use snprintf() for later versions of Microsoft C - Fix *Init macros to use z_ prefix when requested - Replace as400 with os400 for OS/400 support [Monnerat] - Add crc32_z() and adler32_z() functions with size_t lengths - Update Visual Studio project files [AraHaan] Changes in 1.2.10 (2 Jan 2017) - Avoid warnings on snprintf() return value - Fix bug in deflate_stored() for zero-length input - Fix bug in gzwrite.c that produced corrupt gzip files - Remove files to be installed before copying them in Makefile.in - Add warnings when compiling with assembler code Changes in 1.2.11 (15 Jan 2017) - Fix deflate stored bug when pulling last block from window - Permit immediate deflateParams changes before any deflate input BUG=691074, 691075 Review-Url: https://codereview.chromium.org/2690623003 Cr-Original-Commit-Position: refs/heads/master@{#450585} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 6d9a6251dfe87183075dc16cfa134e41dc4cee0d
-
- Jan 14, 2016
-
-
hajimehoshi authored
We are now implementing CompressibleString in third_party/WebKit/Source/ wtf/text and want to use compression algorithm, but wtf/text can't depend on components. This CL moves components/compression to third_party and enables wtf/text to use the compression utility. The purpose of this CL is similar to crrev.com/14021015. BUG=574317 TEST=n/a Review URL: https://codereview.chromium.org/1564773002 Cr-Original-Commit-Position: refs/heads/master@{#369491} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 1e1cc1a7060ab8eb95a62da608f333e31aaba475
-
- Nov 03, 2015
-
-
tfarina authored
This patch was generated using the following command line: $ git ls-files "*.gn" | grep -v format_test_data | sed -e "s/^/gn format --in-place /" >x.sh $ chmod +x x.sh $ ./x.sh BUG=None R=dpranke@chromium.org,scottmg@chromium.org TBR=brettw@chromium.org Review URL: https://codereview.chromium.org/1415753003 Cr-Original-Commit-Position: refs/heads/master@{#357493} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: f7698e039267b2d07401506006c0f68bfbfe2453
-
- Sep 02, 2015
-
-
brettw authored
People sometimes nest targets or configs, usually with the assumption that this limits the visibility of a config to within a target. But this nesting provides no visibility restrictions over declaring it outside of a block. Un-nest for clarity. Re-land of http://crrev.com/1318823008 while preserving config ordering. Review URL: https://codereview.chromium.org/1307223010 Cr-Original-Commit-Position: refs/heads/master@{#346964} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 6dd952c77209619a445205998173fc40fb817be1
-
- Sep 01, 2015
-
-
thakis authored
Revert of Un-nest configs in GN files. (patchset #3 id:40001 of https://codereview.chromium.org/1318823008/ ) Reason for revert: This breaks why these configs exist in the first place and seriously breaks the clang/win gn build (which is what these configs exist for). Original issue's description: > Un-nest configs in GN files. > > People sometimes nest targets or configs, usually with the assumption that this limits the visibility of a config to within a target. But this nesting provides no visibility restrictions over declaring it outside of a block. > > Un-nest for clarity. > > Committed: https://crrev.com/4af2eac8e84692d94f88504ab6e0b244b88dddcb > Cr-Commit-Position: refs/heads/master@{#346461} TBR=dpranke@chromium.org,brettw@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1316843006 Cr-Original-Commit-Position: refs/heads/master@{#346695} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0cb5abbf230f3c30e3499d4e787f059ed723dd3c
-
- Aug 31, 2015
-
-
brettw authored
People sometimes nest targets or configs, usually with the assumption that this limits the visibility of a config to within a target. But this nesting provides no visibility restrictions over declaring it outside of a block. Un-nest for clarity. Review URL: https://codereview.chromium.org/1318823008 Cr-Original-Commit-Position: refs/heads/master@{#346461} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 4af2eac8e84692d94f88504ab6e0b244b88dddcb
-
- Jul 10, 2015
-
-
sammc authored
It defines YY_USE_CONST when building mesa to fix this warning, disables -Wincompatible-pointer-types for the other third-party libraries that trigger it and fixes some underspecified dependencies in third_party/libwebp. BUG=504696 Review URL: https://codereview.chromium.org/1226583002 Cr-Original-Commit-Position: refs/heads/master@{#338227} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: c98d446e81bcc18cf4241325c8719ccdc0b7abf3
-
- Jul 01, 2015
-
-
dcheng authored
The Cloud Print Windows service uses WTL, and one of the headers uses an assignment inside a conditional (atlgdi.h), which triggers this clang warning. BUG=505302 TBR=scottbyer@chromium.org,vitalybuka@chromium.org Review URL: https://codereview.chromium.org/1214113010 Cr-Original-Commit-Position: refs/heads/master@{#336964} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 700bce216cb9399ce306850ee66d3ce5a68c4cfa
-
- Feb 20, 2015
-
-
dpranke authored
The latest GN binaries rename cpu_arch to current_cpu and/or target_cpu as appropriate, build_cpu_arch to host_cpu, and os to current_os and target_os as appropriate. R=brettw@chromium.org TBR=ddorwin@chromium.org EXTRA_TRYBOTS=tryserver.chromium.linux:android_chromium_gn_compile_dbg,android_chromium_gn_compile_rel;tryserver.chromium.win:win8_chromium_gn_rel,win8_chromium_gn_dbg;tryserver.chromium.mac:mac_chromium_gn_rel,mac_chromium_gn_dbg BUG=344767 Review URL: https://codereview.chromium.org/913373002 Cr-Original-Commit-Position: refs/heads/master@{#317223} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 4327621a322c964a8bc6d1ef5a4534f0f877d63e
-