Skip to content
Snippets Groups Projects
  1. Apr 20, 2020
  2. Apr 17, 2020
  3. Apr 15, 2020
  4. Apr 14, 2020
  5. Apr 08, 2020
    • Adenilson Cavalcanti's avatar
      Adding a utest for small payloads · 61bddccf
      Adenilson Cavalcanti authored
      One of the optimizations (i.e. chunk_copy) will perform vector stores on
      16 bytes chunks instead of the original 3 bytes scalar operations.
      
      It is interesting to validate its safety while operating with small
      payloads (i.e. data input smaller than a single load/store).
      
      Even though it is a corner case (i.e. the payload would be smaller than
      the wrapper used for the DEFLATE stream for GZIP), it is good to certify
      that the optimization works as expected.
      
      This will also add gtest as a dependency as the plan is to write some
      tests to stress the optimizations we ship.
      
      Bug: 1032721
      Change-Id: Ifc6a81879e3dba6a9c4b7cfde80e7207258b934c
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2128836
      
      
      Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org>
      Reviewed-by: default avatarChris Blume <cblume@chromium.org>
      Reviewed-by: default avatarVictor Costan <pwnall@chromium.org>
      Cr-Original-Commit-Position: refs/heads/master@{#757639}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: 272595ed5f469ee379e28dd5c40ef0230b6680a5
      61bddccf
  6. Apr 03, 2020
  7. Mar 16, 2020
  8. Feb 14, 2020
  9. Jan 28, 2020
  10. Jan 27, 2020
  11. Jan 24, 2020
  12. Jan 23, 2020
  13. Jan 14, 2020
  14. Jan 13, 2020
  15. Jan 08, 2020
  16. Dec 21, 2019
  17. Dec 12, 2019
  18. 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
  19. 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
  20. 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
  21. 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
  22. Nov 14, 2019
  23. Nov 08, 2019
  24. Nov 04, 2019
  25. Oct 24, 2019
  26. Oct 15, 2019
  27. Oct 01, 2019
  28. Sep 24, 2019
  29. Sep 10, 2019
  30. Aug 27, 2019
  31. Aug 23, 2019
    • Gabriel Charette's avatar
      Reland "[TaskEnvironment] Complete migration with header rename" · 4b23ce8b
      Gabriel Charette authored
      This is a reland of 18947083c7e75ec6d5e8c3b729515d83bde41c59
      
      The move_source_file.py script's formatting rules incorrectly
      formatted services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc
      after all. But we also can't rely 100% on git cl format (crbug.com/997063)
      so I ended up performing a git cl format && git add -up
      (+interactive addition of missing blank line after foo.h when included
      from top of foo.cc)
      
      Also added
      $ tools/git/move_source_file.py net/test/test_with_scoped_task_environment.h net/test/test_with_task_environment.h
      
      Original change's description:
      > [TaskEnvironment] Complete migration with header rename
      >
      > This is merely:
      >
      > $ tools/git/move_source_file.py base/test/scoped_task_environment.h base/test/task_environment.h
      > $ tools/git/move_source_file.py base/test/scoped_task_environment.cc base/test/task_environment.cc
      > $ tools/git/move_source_file.py base/test/scoped_task_environment_unittest.cc base/test/task_environment_unittest.cc
      > $ tools/git/move_source_file.py content/public/test/test_browser_thread_bundle.h content/public/test/browser_task_environment.h
      > $ tools/git/move_source_file.py content/public/test/test_browser_thread_bundle.cc content/public/test/browser_task_environment.cc
      > $ tools/git/move_source_file.py content/public/test/test_browser_thread_bundle_unittest.cc content/public/test/browser_task_environment_unittest.cc
      > $ tools/git/move_source_file.py ios/web/public/test/test_web_thread_bundle.h ios/web/public/test/web_task_environment.h
      > $ tools/git/move_source_file.py ios/web/test/test_web_thread_bundle.cc ios/web/test/web_task_environment.cc
      >
      > and a few manual renames in DEPS files missed by the script
      >
      > This CL uses --bypass-hooks to avoid having to git cl format because
      > many headers are being reordered by git cl format and it's too many to
      > figure out in a no-op CL which ones are okay with it.
      > windows.h for one should typically be first and another one of the
      > reorderings in PS3 even caused a compile failure:
      > https://chromium-review.googlesource.com/c/chromium/src/+/1764962/3/components/services/font/font_loader_unittest.cc
      >
      > TBR=dcheng@chromium.org
      >
      > Bug: 992483
      > Change-Id: I32a4afd43ef779393c95d9873c157be2d3da1dd1
      > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1764962
      
      
      > Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
      > Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
      > Commit-Queue: Gabriel Charette <gab@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#689778}
      
      TBR=dcheng@chromium.org
      
      Bug: 992483
      Change-Id: I6179dd1329a4d30bf5c65450ea893537f31e6f85
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1767658
      
      
      Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
      Commit-Queue: Gabriel Charette <gab@chromium.org>
      Cr-Original-Commit-Position: refs/heads/master@{#689794}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: c7108748948a6ab308f323d6e72c59d29c7e240a
      4b23ce8b
    • Gabriel Charette's avatar
      Revert "[TaskEnvironment] Complete migration with header rename" · 92f837f8
      Gabriel Charette authored
      This reverts commit 18947083c7e75ec6d5e8c3b729515d83bde41c59.
      
      Reason for revert: broke Win
      
      Original change's description:
      > [TaskEnvironment] Complete migration with header rename
      > 
      > This is merely:
      > 
      > $ tools/git/move_source_file.py base/test/scoped_task_environment.h base/test/task_environment.h
      > $ tools/git/move_source_file.py base/test/scoped_task_environment.cc base/test/task_environment.cc
      > $ tools/git/move_source_file.py base/test/scoped_task_environment_unittest.cc base/test/task_environment_unittest.cc
      > $ tools/git/move_source_file.py content/public/test/test_browser_thread_bundle.h content/public/test/browser_task_environment.h
      > $ tools/git/move_source_file.py content/public/test/test_browser_thread_bundle.cc content/public/test/browser_task_environment.cc
      > $ tools/git/move_source_file.py content/public/test/test_browser_thread_bundle_unittest.cc content/public/test/browser_task_environment_unittest.cc
      > $ tools/git/move_source_file.py ios/web/public/test/test_web_thread_bundle.h ios/web/public/test/web_task_environment.h
      > $ tools/git/move_source_file.py ios/web/test/test_web_thread_bundle.cc ios/web/test/web_task_environment.cc
      > 
      > and a few manual renames in DEPS files missed by the script
      > 
      > This CL uses --bypass-hooks to avoid having to git cl format because
      > many headers are being reordered by git cl format and it's too many to
      > figure out in a no-op CL which ones are okay with it.
      > windows.h for one should typically be first and another one of the
      > reorderings in PS3 even caused a compile failure:
      > https://chromium-review.googlesource.com/c/chromium/src/+/1764962/3/components/services/font/font_loader_unittest.cc
      > 
      > TBR=dcheng@chromium.org
      > 
      > Bug: 992483
      > Change-Id: I32a4afd43ef779393c95d9873c157be2d3da1dd1
      > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1764962
      
      
      > Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
      > Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
      > Commit-Queue: Gabriel Charette <gab@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#689778}
      
      TBR=dcheng@chromium.org,gab@chromium.org
      
      Change-Id: I9aa8ff558d1ff78cebe0c25e559c017578ad4f53
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: 992483
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1767657
      
      
      Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
      Commit-Queue: Gabriel Charette <gab@chromium.org>
      Cr-Original-Commit-Position: refs/heads/master@{#689780}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: b69fcd4f6e1b327f0e3e4570e93213d313d799f3
      92f837f8
    • Gabriel Charette's avatar
      [TaskEnvironment] Complete migration with header rename · 248ab058
      Gabriel Charette authored
      This is merely:
      
      $ tools/git/move_source_file.py base/test/scoped_task_environment.h base/test/task_environment.h
      $ tools/git/move_source_file.py base/test/scoped_task_environment.cc base/test/task_environment.cc
      $ tools/git/move_source_file.py base/test/scoped_task_environment_unittest.cc base/test/task_environment_unittest.cc
      $ tools/git/move_source_file.py content/public/test/test_browser_thread_bundle.h content/public/test/browser_task_environment.h
      $ tools/git/move_source_file.py content/public/test/test_browser_thread_bundle.cc content/public/test/browser_task_environment.cc
      $ tools/git/move_source_file.py content/public/test/test_browser_thread_bundle_unittest.cc content/public/test/browser_task_environment_unittest.cc
      $ tools/git/move_source_file.py ios/web/public/test/test_web_thread_bundle.h ios/web/public/test/web_task_environment.h
      $ tools/git/move_source_file.py ios/web/test/test_web_thread_bundle.cc ios/web/test/web_task_environment.cc
      
      and a few manual renames in DEPS files missed by the script
      
      This CL uses --bypass-hooks to avoid having to git cl format because
      many headers are being reordered by git cl format and it's too many to
      figure out in a no-op CL which ones are okay with it.
      windows.h for one should typically be first and another one of the
      reorderings in PS3 even caused a compile failure:
      https://chromium-review.googlesource.com/c/chromium/src/+/1764962/3/components/services/font/font_loader_unittest.cc
      
      TBR=dcheng@chromium.org
      
      Bug: 992483
      Change-Id: I32a4afd43ef779393c95d9873c157be2d3da1dd1
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1764962
      
      
      Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
      Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
      Commit-Queue: Gabriel Charette <gab@chromium.org>
      Cr-Original-Commit-Position: refs/heads/master@{#689778}
      Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
      Cr-Mirrored-Commit: 18947083c7e75ec6d5e8c3b729515d83bde41c59
      248ab058
  32. Aug 13, 2019
  33. Aug 12, 2019
Loading