Skip to content
Snippets Groups Projects
  1. Nov 04, 2020
    • Hans Wennborg's avatar
      [zlib] Zero-initialize the window used for deflation · e84c9a3f
      Hans Wennborg authored
      Otherwise MSan complains about use-of-uninitialized values in the window.
      This happens in both regular deflate's longest_match and deflate_rle.
      
      Before crrev.com/822755 we used to suppress those reports, but it seems
      better to fix it properly. That will also allow us to catch other
      potential issues with MSan in these functions.
      
      The instances of this that we've seen only reproduce with
      fill_window_sse(), not with the regular fill_window() function. Since
      the former doesn't exist in upstream zlib, I'm not planning to send this
      patch upstream.
      
      Bug: 1137613, 1144420
      Change-Id: I2b1801cd2a63fef48a0072b2d2c8fc1f8a7bb920
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2517520
      
      
      Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
      Reviewed-by: default avatarAdenilson Cavalcanti <cavalcantii@chromium.org>
      Reviewed-by: default avatarChris Blume <cblume@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#823845}
      GitOrigin-RevId: 962cbbe81708214ff8e14e2bc8a07271cb15f1b9
      e84c9a3f
  2. Sep 24, 2020
  3. Sep 10, 2020
  4. Sep 08, 2020
    • Hans Wennborg's avatar
      [zlib] Set hash_bits to at least 15 when using CRC hashing on ARM · 898c6c0d
      Hans Wennborg authored
      Otherwise a bad match can be chosen by longest_match, since it assumes
      that match[2] and scan[2] are equal when the hashes and the other bytes
      match. That assumption doesn't hold when using CRC hashing and a low
      number of hash bits (which can be set by via the 'memLevel' parameter).
      
      For example, the two hex byte sequences 2a 14 14 14 and 2a 14 db 14
      have the same lower 9 bits CRC, and only differ in the third byte. This
      could cause longest_match to consider them as matching.
      
      This was already handled for x86; do the same for ARM and add a test.
      
      Bug: 1113596
      Change-Id: I251150594264f401e4d8bc6e91b44b39998ab029
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2392457
      
      
      Reviewed-by: default avatarChris Blume <cblume@chromium.org>
      Reviewed-by: default avatarAdenilson Cavalcanti <cavalcantii@chromium.org>
      Commit-Queue: Chris Blume <cblume@chromium.org>
      Auto-Submit: Hans Wennborg <hans@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#805076}
      GitOrigin-RevId: 3fc5c74f812cda92f34897ed811694eaeb4f7654
      898c6c0d
  5. Apr 23, 2020
  6. Apr 22, 2020
  7. Jan 23, 2020
  8. Jan 08, 2020
  9. Dec 21, 2019
  10. Dec 12, 2019
  11. Dec 04, 2019
    • Chris Blume's avatar
      Remove use of inline ASM in insert_string_sse · f262c1b3
      Chris Blume authored
      It seems that some years ago clang@Windows didn't have the
      proper intrinsic required, which prompted the use of inline
      ASM.
      
      It has a side effect in that it will allow compilation of the
      optimized function within the same compilation unit while using regular
      compiler flags (i.e. 'crc32' instruction on x86 requires some special
      compiler flags).
      
      Main issue is that inline ASM is blocked on dependencies (e.g. 'base')
      that will be linked to NaCl.
      
      The main idea here is to allow the whole Chromium code base to use the
      highly optimized checksums in zlib (e.g. crc32 and Adler-32), exported
      through an interface (i.e. base::Crc32()).
      
      This patch fixes this issue by removing the use of inline ASM.
      
      The workaround is to use clang/gcc 'target attributes' to instruct the
      backend to use different code generation options for the optimized
      function, see:
      https://clang.llvm.org/docs/AttributeReference.html#target
      
      NOTE: While testing on my personal Windows PC, VS2019 including
      smmintrin.h was insufficient. I needed to explicitly include either
      immintrin.h or nmmintrin.h. I expected I would need that, but it seems
      to be working with just smmintrin.h.
      
      Bug: 902789
      Change-Id: Id692fb839e20b26f9ba8b45538e652d5b140cd36
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1941688
      
      
      Commit-Queue: Chris Blume <cblume@chromium.org>
      Reviewed-by: default avatarAdenilson Cavalcanti <cavalcantii@chromium.org>
      Cr-Original-Commit-Position: refs/heads/master@{#721425}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: 1cebcd57bc3d09c39783395e6b173ff1f358a91b
      f262c1b3
  12. Nov 26, 2019
    • Chris Blume's avatar
      Revert "Remove use of inline ASM in insert_string_sse" · e77e1c06
      Chris Blume authored
      This reverts commit ea6b9281bbf3ca08ccef8f5266f88de6f56c5ff6.
      
      Reason for revert: It turns out the V8 team needs the MSVC build. :)
      
      I tried installing the Clang compiler as part of Visual Studio 2017 and 2019 but neither of them became options in the toolchain. I'll need to spend more time figuring out how to get Clang on Windows.
      
      Original change's description:
      > Remove use of inline ASM in insert_string_sse
      > 
      > It seems that some years ago clang@Windows didn't have the
      > proper intrinsic required, which prompted the use of inline
      > ASM.
      > 
      > It has a side effect in that it will allow compilation of the
      > optimized function within the same compilation unit while using regular
      > compiler flags (i.e. 'crc32' instruction on x86 requires some special
      > compiler flags).
      > 
      > Main issue is that inline ASM is blocked on dependencies (e.g. 'base')
      > that will be linked to NaCl.
      > 
      > The main idea here is to allow the whole Chromium code base to use the
      > highly optimized checksums in zlib (e.g. crc32 and Adler-32), exported
      > through an interface (i.e. base::Crc32()).
      > 
      > This patch fixes this issue by removing the use of inline ASM.
      > 
      > The workaround is to use clang/gcc 'target attributes' to instruct the
      > backend to use different code generation options for the optimized
      > function, see:
      > https://clang.llvm.org/docs/AttributeReference.html#target
      > 
      > Bug: 902789
      > Change-Id: I0d139268aefb8335310c0e3f6533006be9af6470
      > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1931272
      
      
      > Reviewed-by: default avatarAdenilson Cavalcanti <cavalcantii@chromium.org>
      > Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#718788}
      
      TBR=cavalcantii@chromium.org,cblume@chromium.org,mtklein@chromium.org,adenilson.cavalcanti@arm.com
      
      Change-Id: I6b3fcce10197121b548300855710e99f7048f1ae
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: 902789
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1936189
      
      
      Reviewed-by: default avatarChris Blume <cblume@chromium.org>
      Commit-Queue: Chris Blume <cblume@chromium.org>
      Cr-Original-Commit-Position: refs/heads/master@{#719105}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: 80c2a793b4ba20d9638fbdd030a1687dc26242a3
      e77e1c06
  13. Nov 25, 2019
    • Adenilson Cavalcanti's avatar
      Remove use of inline ASM in insert_string_sse · ae16db55
      Adenilson Cavalcanti authored
      It seems that some years ago clang@Windows didn't have the
      proper intrinsic required, which prompted the use of inline
      ASM.
      
      It has a side effect in that it will allow compilation of the
      optimized function within the same compilation unit while using regular
      compiler flags (i.e. 'crc32' instruction on x86 requires some special
      compiler flags).
      
      Main issue is that inline ASM is blocked on dependencies (e.g. 'base')
      that will be linked to NaCl.
      
      The main idea here is to allow the whole Chromium code base to use the
      highly optimized checksums in zlib (e.g. crc32 and Adler-32), exported
      through an interface (i.e. base::Crc32()).
      
      This patch fixes this issue by removing the use of inline ASM.
      
      The workaround is to use clang/gcc 'target attributes' to instruct the
      backend to use different code generation options for the optimized
      function, see:
      https://clang.llvm.org/docs/AttributeReference.html#target
      
      Bug: 902789
      Change-Id: I0d139268aefb8335310c0e3f6533006be9af6470
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1931272
      
      
      Reviewed-by: default avatarAdenilson Cavalcanti <cavalcantii@chromium.org>
      Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
      Cr-Original-Commit-Position: refs/heads/master@{#718788}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: ea6b9281bbf3ca08ccef8f5266f88de6f56c5ff6
      ae16db55
  14. Nov 21, 2019
    • Adenilson Cavalcanti's avatar
      Fix performance issue in RAW mode · 7c4128a1
      Adenilson Cavalcanti authored
      While investigating the use of RAW mode, I noticed that it was *slower*
      for compression than GZIP or ZLIB wrapper formats, which didn't make
      sense (i.e. we don't calculate a data integrity check using RAW mode).
      
      It turns out that the code was falling back to the portable implementation
      of insert_string(), instead of using the optimized version that rely on 'crc32w'
      as a hash function.
      
      The reason is that CPU features detection is not triggered while using
      RAW mode (i.e. we never call crc32() with a NULL buffer).
      
      This patch fixes this issue ensuring that RAW mode is going to be faster
      for both compression/decompression than either ZLIB or GZIP formats.
      
      Bug: 833361
      Change-Id: I285297f67ffc0114700ed03c2186ad21aab8b40e
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1929634
      
      
      Reviewed-by: default avatarChris Blume <cblume@chromium.org>
      Reviewed-by: default avatarAdenilson Cavalcanti <cavalcantii@chromium.org>
      Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
      Cr-Original-Commit-Position: refs/heads/master@{#717877}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: 171a0a69eb5d70f8a9f44000e26bc7dc65f1fd97
      7c4128a1
  15. Aug 08, 2019
  16. Dec 07, 2018
  17. Aug 17, 2018
  18. Aug 15, 2018
  19. Aug 07, 2018
  20. Jan 11, 2018
    • Daniel Bratell's avatar
      Avoid exporting read_buf renaming from zlib · 2eb38892
      Daniel Bratell authored
      zlib.h includes a macro that renames read_buf->Cr_z_read_buf. Since
      read_buf is a common name in other parts of the code, it causes
      some random confusion depending on whether zlib.h has been
      included or not.
      
      The renaming macro is a side effect of the 0001-simd.patch that
      exposes an internal read_buf method to other files in zlib. This
      patch renames read_buf as it is exposed so that it has the less
      common name deflate_read_buf.
      
      Bug: 799448
      Change-Id: Icdc4eba973891dfd28d82017415048eded62d577
      Reviewed-on: https://chromium-review.googlesource.com/852257
      
      
      Commit-Queue: Daniel Bratell <bratell@opera.com>
      Reviewed-by: default avatarChris Blume <cblume@chromium.org>
      Cr-Original-Commit-Position: refs/heads/master@{#528512}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: 2c709d38a1c6f812da205c03f5448fe4ac5679f3
      2eb38892
  21. Nov 30, 2017
    • Boris Sazonov's avatar
      Revert "Using ARMv8 CRC32 specific instruction" · 0f473a1d
      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: default avatarChris 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: default avatarChris Blume <cblume@chromium.org>
      Reviewed-by: default avatarBoris 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
      0f473a1d
    • Adenilson Cavalcanti's avatar
      Using ARMv8 CRC32 specific instruction · d7601c23
      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: default avatarChris 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
      d7601c23
  22. Feb 15, 2017
    • mark's avatar
      Update zlib to 1.2.11 · 13dc246a
      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
      13dc246a
  23. Feb 02, 2017
  24. Jun 23, 2016
    • jiadong.zhu's avatar
      Update Zlib to version 1.2.8 · 6c142166
      jiadong.zhu authored
      merge the latest open source zlib into chromium external projects
      Version 1.2.8 fixes a very rare bug in decompression. All users are encouraged to upgrade immediately. Version 1.2.8 also has these improvements:
      - Add new inflateGetDictionary() function
      - Fix bug where gzopen() immediately followed by gzclose() would write an empty file instead of an empty gzip stream.
      - Fix bug in gzclose() when gzwrite() runs out of memory Version 1.2.7 has many portability improvements over 1.2.6, and has these enhancements:
      - Fix bug in gzclose_w() when gzwrite() fails to allocate memory
      - Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen()
      - Add gzopen_w() in Windows for wide character path names
      - Fix type mismatch between get_crc_table() and crc_table Version 1.2.6 has many changes over 1.2.5, including these improvements:
      - gzread() can now read a file that is being written concurrently
      - gzgetc() is now a macro for increased speed
      - Added a 'T' option to gzopen() for transparent writing (no compression)
      - Added deflatePending() to return the amount of pending output
      - Allow deflateSetDictionary() and inflateSetDictionary() at any time in raw mode
      - deflatePrime() can now insert bits in the middle of the stream
      - ./configure now creates a configure.log file with all of the results
      - Added a ./configure --solo option to compile zlib with no dependency on any libraries
      - Fixed a problem with large file support macros
      - Fixed a bug in contrib/puff
      - Many portability improvements
      
      BUG=610615 R=gavinp@chromium.org
      
      Review-Url: https://codereview.chromium.org/2084863002
      Cr-Original-Commit-Position: refs/heads/master@{#401538}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: ca1c569cff20aa43a42816791744d847c7d788de
      6c142166
  25. Jun 20, 2016
    • jmadill's avatar
      Revert of Update Zlib to version 1.2.8 (patchset #10 id:220001 of... · bf2aebea
      jmadill authored
      Revert of Update Zlib to version 1.2.8 (patchset #10 id:220001 of https://codereview.chromium.org/1955383002/ )
      
      Reason for revert:
      Broke the Windows Debug GPU FYI builder:
      
      https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Win%20Builder%20%28dbg%29/builds/41421
      
      fx_zlib.gzlib.obj : error LNK2005: _gzopen_w already defined in zlib.gzlib.obj
      
      initial\chrome.dll : fatal error LNK1169: one or more multiply defined symbols found
      
      Possibly because they use shared components with a GYP build.
      
      Original issue's description:
      > Update Zlib to version 1.2.8
      >
      > merge the latest open source zlib into chromium external projects
      >
      >  Version 1.2.8 fixes a very rare bug in decompression. All users are encouraged to upgrade immediately. Version 1.2.8 also has these improvements:
      >     - Add new inflateGetDictionary() function
      >     - Fix bug where gzopen() immediately followed by gzclose() would write an empty file instead of an empty gzip stream.
      >     - Fix bug in gzclose() when gzwrite() runs out of memory
      >     Version 1.2.7 has many portability improvements over 1.2.6, and has these enhancements:
      >     - Fix bug in gzclose_w() when gzwrite() fails to allocate memory
      >     - Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen()
      >     - Add gzopen_w() in Windows for wide character path names
      >     - Fix type mismatch between get_crc_table() and crc_table
      >     Version 1.2.6 has many changes over 1.2.5, including these improvements:
      >     - gzread() can now read a file that is being written concurrently
      >     - gzgetc() is now a macro for increased speed
      >     - Added a 'T' option to gzopen() for transparent writing (no compression)
      >     - Added deflatePending() to return the amount of pending output
      >     - Allow deflateSetDictionary() and inflateSetDictionary() at any time in raw mode
      >     - deflatePrime() can now insert bits in the middle of the stream
      >     - ./configure now creates a configure.log file with all of the results
      >     - Added a ./configure --solo option to compile zlib with no dependency on any libraries
      >     - Fixed a problem with large file support macros
      >     - Fixed a bug in contrib/puff
      >     - Many portability improvements
      >
      > BUG=610615
      > R=agl@chromium.org
      > R=gavinp@chromium.org
      >
      > Committed: https://crrev.com/a50849ae9ba1b2fad47905db521463b3bf085883
      > Cr-Commit-Position: refs/heads/master@{#400647}
      
      TBR=agl@chromium.org,gavinp@chromium.org,khasim.mohammed@linaro.org,jiadong.zhu@linaro.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=610615
      
      Review-Url: https://codereview.chromium.org/2079313002
      Cr-Original-Commit-Position: refs/heads/master@{#400670}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: 43770253ccc0425c4edde966e56b3e68955cc4d3
      bf2aebea
    • jiadong.zhu's avatar
      Update Zlib to version 1.2.8 · 90f7dad7
      jiadong.zhu authored
      merge the latest open source zlib into chromium external projects
      
       Version 1.2.8 fixes a very rare bug in decompression. All users are encouraged to upgrade immediately. Version 1.2.8 also has these improvements:
          - Add new inflateGetDictionary() function
          - Fix bug where gzopen() immediately followed by gzclose() would write an empty file instead of an empty gzip stream.
          - Fix bug in gzclose() when gzwrite() runs out of memory
          Version 1.2.7 has many portability improvements over 1.2.6, and has these enhancements:
          - Fix bug in gzclose_w() when gzwrite() fails to allocate memory
          - Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen()
          - Add gzopen_w() in Windows for wide character path names
          - Fix type mismatch between get_crc_table() and crc_table
          Version 1.2.6 has many changes over 1.2.5, including these improvements:
          - gzread() can now read a file that is being written concurrently
          - gzgetc() is now a macro for increased speed
          - Added a 'T' option to gzopen() for transparent writing (no compression)
          - Added deflatePending() to return the amount of pending output
          - Allow deflateSetDictionary() and inflateSetDictionary() at any time in raw mode
          - deflatePrime() can now insert bits in the middle of the stream
          - ./configure now creates a configure.log file with all of the results
          - Added a ./configure --solo option to compile zlib with no dependency on any libraries
          - Fixed a problem with large file support macros
          - Fixed a bug in contrib/puff
          - Many portability improvements
      
      BUG=610615
      R=agl@chromium.org
      R=gavinp@chromium.org
      
      Review-Url: https://codereview.chromium.org/1955383002
      Cr-Original-Commit-Position: refs/heads/master@{#400647}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: a50849ae9ba1b2fad47905db521463b3bf085883
      90f7dad7
  26. Nov 05, 2014
    • robert.bradford's avatar
      Reland "Integrate SIMD optimisations for zlib" · 10dd686e
      robert.bradford authored
      This version uses a "pthread_once" implementation, using Windows
      synchronisation primitives, imported from tcmalloc.
      
      Previous CLs:
      https://codereview.chromium.org/677713002/
      https://codereview.chromium.org/552123005
      
      This version of the CL also runs fine on Windows Server 2003.
      
      These optimisations have been published on zlib mailing list and at
      https://github.com/jtkukunas/zlib/
      
      This change merges the following optimisation patches:
      - "For x86, add CPUID check."
      - "Adds SSE2 optimized hash shifting to fill_window."
      - "add SSE4.2 optimized hash function"
      - "add PCLMULQDQ optimized CRC folding"
      
      From Jim Kukunas <james.t.kukunas@linux.intel.com>; and adapts them to the
      current zlib version in Chromium.
      
      The optimisations are enabled at runtime if all the necessary CPU features are
      present. As the optimisations require extra cflags to enable the compiler to
      use the instructions the optimisations are held in their own static library
      with a stub implementation to allow linking on other platforms.
      
      TEST=net_unittests(GZipUnitTest) passes, Chrome functions and performance
      improvement seen on RoboHornet benchmark on Linux Desktop
      BUG=401517
      
      Review URL: https://codereview.chromium.org/678423002
      
      Cr-Original-Commit-Position: refs/heads/master@{#302799}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: 02a95e3084f979084fa8586e1718a6e6dd4c22da
      10dd686e
  27. Oct 24, 2014
    • qyearsley's avatar
      Revert of Reland "Integrate SIMD optimisations for zlib" (patchset #2 id:40001... · 32301181
      qyearsley authored
      Revert of Reland "Integrate SIMD optimisations for zlib" (patchset #2 id:40001 of https://codereview.chromium.org/677713002/)
      
      Reason for revert:
      Speculatively reverting because XP Tests (1) is having failures.
      
      https://build.chromium.org/p/chromium.win/builders/XP%20Tests%20(1)
      
      Original issue's description:
      > Reland "Integrate SIMD optimisations for zlib"
      >
      > This reland adds an MSan suppression entry to work around gaps in MSan's
      > support for some of the intrinsics this patch uses. This version also inlines
      > the insert_string_sse function as it uses inline assembly and therefore does
      > not need to be in the static library.
      >
      > Original CL: https://codereview.chromium.org/552123005
      >
      > These optimisations have been published on zlib mailing list and at
      > https://github.com/jtkukunas/zlib/
      >
      > This change merges the following optimisation patches:
      > - "For x86, add CPUID check."
      > - "Adds SSE2 optimized hash shifting to fill_window."
      > - "add SSE4.2 optimized hash function"
      > - "add PCLMULQDQ optimized CRC folding"
      >
      > From Jim Kukunas <james.t.kukunas@linux.intel.com>; and adapts them to the
      > current zlib version in Chromium.
      >
      > The optimisations are enabled at runtime if all the necessary CPU features are
      > present. As the optimisations require extra cflags to enable the compiler to
      > use the instructions the optimisations are held in their own static library
      > with a stub implementation to allow linking on other platforms.
      >
      > TEST=net_unittests(GZipUnitTest) passes, Chrome functions and performance
      > improvement seen on RoboHornet benchmark on Linux Desktop
      > BUG=401517
      >
      > Committed: https://crrev.com/a5022d5eab6f77889aceed6ab0ccaf44a657ffc4
      > Cr-Commit-Position: refs/heads/master@{#301162}
      
      TBR=agl@chromium.org,hans@chromium.org,robert.bradford@intel.com
      NOTREECHECKS=true
      NOTRY=true
      BUG=401517
      
      Review URL: https://codereview.chromium.org/665203006
      
      Cr-Original-Commit-Position: refs/heads/master@{#301221}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: 5d38e0bd32f9a7e4766b877711c710df986d74ed
      32301181
    • robert.bradford's avatar
      Reland "Integrate SIMD optimisations for zlib" · a8515195
      robert.bradford authored
      This reland adds an MSan suppression entry to work around gaps in MSan's
      support for some of the intrinsics this patch uses. This version also inlines
      the insert_string_sse function as it uses inline assembly and therefore does
      not need to be in the static library.
      
      Original CL: https://codereview.chromium.org/552123005
      
      These optimisations have been published on zlib mailing list and at
      https://github.com/jtkukunas/zlib/
      
      This change merges the following optimisation patches:
      - "For x86, add CPUID check."
      - "Adds SSE2 optimized hash shifting to fill_window."
      - "add SSE4.2 optimized hash function"
      - "add PCLMULQDQ optimized CRC folding"
      
      From Jim Kukunas <james.t.kukunas@linux.intel.com>; and adapts them to the
      current zlib version in Chromium.
      
      The optimisations are enabled at runtime if all the necessary CPU features are
      present. As the optimisations require extra cflags to enable the compiler to
      use the instructions the optimisations are held in their own static library
      with a stub implementation to allow linking on other platforms.
      
      TEST=net_unittests(GZipUnitTest) passes, Chrome functions and performance
      improvement seen on RoboHornet benchmark on Linux Desktop
      BUG=401517
      
      Review URL: https://codereview.chromium.org/677713002
      
      Cr-Original-Commit-Position: refs/heads/master@{#301162}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: a5022d5eab6f77889aceed6ab0ccaf44a657ffc4
      a8515195
  28. Oct 23, 2014
    • robert.bradford's avatar
      Revert of Integrate SIMD optimisations for zlib (patchset #14 id:280001 of... · 23dbc912
      robert.bradford authored
      Revert of Integrate SIMD optimisations for zlib (patchset #14 id:280001 of https://codereview.chromium.org/552123005/)
      
      Reason for revert:
      Strong candidate for: multiple Linux MSan test failures with:
      
      SUMMARY: MemorySanitizer: use-of-uninitialized-value ??:0 ??
      
      Including: CompressionUtilsTest.GzipCompression
      
      Original issue's description:
      > Integrate SIMD optimisations for zlib
      >
      > These optimisations have been published on zlib mailing list and at
      > https://github.com/jtkukunas/zlib/
      >
      > This change merges the following optimisation patches:
      > - "For x86, add CPUID check."
      > - "Adds SSE2 optimized hash shifting to fill_window."
      > - "add SSE4.2 optimized hash function"
      > - "add PCLMULQDQ optimized CRC folding"
      >
      > From Jim Kukunas <james.t.kukunas@linux.intel.com> and adapts them to the
      > current zlib version in Chromium.
      >
      > The optimisations are enabled at runtime if all the necessary CPU features are
      > present. As the optimisations require extra cflags to enable the compiler to
      > use the instructions the optimisations are held in their own static library
      > with a stub implementation to allow linking on other platforms.
      >
      > TEST=net_unittests(GZipUnitTest) passes, Chrome functions and performance
      > improvement seen on RoboHornet benchmark on Linux Desktop
      > BUG=401517
      >
      > Committed: https://crrev.com/e045ec106de29562ae94eafccde49a7b73848471
      > Cr-Commit-Position: refs/heads/master@{#300866}
      
      TBR=agl@chromium.org,nathan.d.ciobanu@intel.com
      NOTREECHECKS=true
      NOTRY=true
      BUG=401517
      
      Review URL: https://codereview.chromium.org/671163003
      
      Cr-Original-Commit-Position: refs/heads/master@{#300889}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: ca54b3014721cdc27e4a17dd2c82fe5811fa39cc
      23dbc912
    • robert.bradford's avatar
      Integrate SIMD optimisations for zlib · 02acec91
      robert.bradford authored
      These optimisations have been published on zlib mailing list and at
      https://github.com/jtkukunas/zlib/
      
      This change merges the following optimisation patches:
      - "For x86, add CPUID check."
      - "Adds SSE2 optimized hash shifting to fill_window."
      - "add SSE4.2 optimized hash function"
      - "add PCLMULQDQ optimized CRC folding"
      
      From Jim Kukunas <james.t.kukunas@linux.intel.com> and adapts them to the
      current zlib version in Chromium.
      
      The optimisations are enabled at runtime if all the necessary CPU features are
      present. As the optimisations require extra cflags to enable the compiler to
      use the instructions the optimisations are held in their own static library
      with a stub implementation to allow linking on other platforms.
      
      TEST=net_unittests(GZipUnitTest) passes, Chrome functions and performance
      improvement seen on RoboHornet benchmark on Linux Desktop
      BUG=401517
      
      Review URL: https://codereview.chromium.org/552123005
      
      Cr-Original-Commit-Position: refs/heads/master@{#300866}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: e045ec106de29562ae94eafccde49a7b73848471
      02acec91
  29. Sep 21, 2012
  30. Aug 15, 2012
  31. Aug 14, 2012
  32. May 11, 2012
  33. Jan 31, 2012
Loading