This project is mirrored from Pull mirroring updated .
  1. 26 Oct, 2021 1 commit
  2. 25 Oct, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 46d939a9
      Abseil Team authored
      30bbe72e8c32d8680bbe6c8473a884d485e9f684 by Laramie Leavitt <>:
      Convert randen golden test to use byte arrays.
      PiperOrigin-RevId: 404948438
      4690d9ebd2c518708ad155e913b2140ebdf01234 by Laramie Leavitt <>:
      Add golden tests for internal::ExplicitSeedSeeq against stable std:: random URBGs.
      PiperOrigin-RevId: 404912608
      52e9b24276ee3a21cc8a026f9d152ef8ced7f507 by Derek Mauro <>:
      Internal change
      PiperOrigin-RevId: 404861043
      9e966a2a680970fd27d927cc6420e333b1378b1e by Abseil Team <>:
      Roll back import of CCTZ from GitHub.
      PiperOrigin-RevId: 404343587
      9c4eedec00105b8288c0b91d96434aea08b8e3c3 by Abseil Team <>:
      Import of CCTZ from GitHub.
      PiperOrigin-RevId: 404314597
      f171375fd7bec35cc34815be8faf5e000828b7bb by Abseil Team <>:
      Internal change
      PiperOrigin-RevId: 404098156
      GitOrigin-RevId: 30bbe72e8c32d8680bbe6c8473a884d485e9f684
      Change-Id: Ic7b5a3c0659e321e2f642800930a8de014253e2a
  3. 21 Oct, 2021 1 commit
  4. 18 Oct, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · a2f52e11
      Abseil Team authored
      b008f3aaab60f1f0eb5987b50336543cca7151be by Martijn Vels <>:
      Enable Cord Btree as the default Cord implementation.
      The Cord Btree implementation has been extensively tested by google. This changes makes the Cord Btree implementation the default implementation. This change should have no impact on current use cases and does not effect any public API or behavior.
      PiperOrigin-RevId: 403966449
      3d82052b5819d1244942c59d5cb4e51d75ada287 by Derek Mauro <>:
      Add missing CMake alias for gmock_main.
      Remove unused variable ABSL_TEST_COMMON_LIBRARIES
      Fixes #709
      Fixes #1043
      PiperOrigin-RevId: 403950358
      86695f6d06915b56d807303c37ee81487998cd58 by Abseil Team <>:
      FunctionRef is cheaper to construct than a std::function, and the argument is only used during the call, so this is safe. This has the added advantage of allowing the caller to provide a non-movable callable, which can't be converted to a std::function.
  5. 15 Oct, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 7e446075
      Abseil Team authored
      58affd6378c47993f5408f7b8a8863fa5bcc2c47 by Derek Mauro <>:
      Internal change
      PiperOrigin-RevId: 403120541
      27dc5d5f87bca6254585cca69058c14e0a2f3ce6 by Chris Kennelly <>:
      Prefetch while hashing.
      While we may not need to access the cacheline *ctrl_ is on once we've computed the hash, we can begin to resolve the TLB required for the hashtable's heap allocation simultaneously with computing the hash value for the key.
      PiperOrigin-RevId: 402954725
      GitOrigin-RevId: 58affd6378c47993f5408f7b8a8863fa5bcc2c47
      Change-Id: Id04297de823ad5c5a867c46065fa3a9ef0ada3dd
  6. 14 Oct, 2021 1 commit
  7. 12 Oct, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · d6f40f4e
      Abseil Team authored
      566c422ef23a01a71ca7a02d15a3f23ab5135f47 by Abseil Team <>:
      Fix a bug in the right shift of negative numbers for the no_intrinsic code path
      If the right shift was greater than or equal to 64 bits the the most significant 64 bit would always be initialized to zero. The code now initializes the most significant int64 to all ones if the architecture does arithmetic rights shifts and the number was negative.
      PiperOrigin-RevId: 402407698
      GitOrigin-RevId: 566c422ef23a01a71ca7a02d15a3f23ab5135f47
      Change-Id: I01c57a87a91a2c89f62bb952661e3a5dcdca6234
  8. 11 Oct, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 084aa074
      Abseil Team authored
      42dc250867db8816381a38596e00a3b27b7dbc37 by Gennadiy Rozental <>:
      Import of CCTZ from GitHub.
      PiperOrigin-RevId: 401863616
      GitOrigin-RevId: 42dc250867db8816381a38596e00a3b27b7dbc37
      Change-Id: Ia1f100293e0c0845de76d986a170b5ca8d15f1a3
  9. 08 Oct, 2021 2 commits
  10. 07 Oct, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · a59b4daa
      Abseil Team authored
      17141711ee419daa597a9f31e73721f80143e55a by Gennadiy Rozental <>:
      Import of CCTZ from GitHub.
      PiperOrigin-RevId: 401384949
      ac48584a7b16e8a12e26d49deb6cddec584a20b5 by Derek Mauro <>:
      Internal change
      PiperOrigin-RevId: 401337785
      8a51bb7c962845e0707240c5ba12c1b80f6fbbe9 by Derek Mauro <>:
      Internal change
      PiperOrigin-RevId: 401047691
      8e18024510869247f3c04c7807c93709eca2322a by Chris Kennelly <>:
      Note that SpinLock does not guarantee priorities for wakeups.
      PiperOrigin-RevId: 400999238
      75bc09b5f95fbb74b74d14c370bfb80011e8fb7f by Derek Mauro <>:
      Add visibility restrictions to some internal targets
      PiperOrigin-RevId: 400718253
      1de5061016bc42cd7be009c9725ed2343ce12e3d by Abseil Team <>:
      Make it clear that operator<< can also be used in place of ToString when logging absl::Status.
      PiperOrigin-RevId: 400248269
  11. 06 Oct, 2021 1 commit
  12. 05 Oct, 2021 1 commit
  13. 30 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 4167eab0
      Abseil Team authored
      506fa3e10b3d8399ad937c32ecea26d1ad4e62bb by Abseil Team <>:
      Disable ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE when GCC < 8.2.0 is used with libc++
      PiperOrigin-RevId: 399707056
      656b7c7cee87f46a4bc7953618796f82da08e62c by Derek Mauro <>:
      Remove the MSVC flag implementation from flag.h to help clarify that
      methods on absl::Flag<T> are not part of the public API
      PiperOrigin-RevId: 399584678
      a92a9bc156303bc663b84c4b704891ec8f67e333 by Abseil Team <>:
      Get rid of MemcpyIfAllowed while continuing to suppress erroneous warnings
      PiperOrigin-RevId: 399468864
      5f9a66895f707ba001fb51b88c0c6025f8c872a3 by Abseil Team <>:
      Use feature testing to check for availability of invoke_result.
      Feature testing should be available by C++20, which removes invoke_result.
      PiperOrigin-RevId: 399447373
      946c0a502b4499dbfcabf1ab93ddde0048288fb4 by CJ Johnson <>:
      Add rvalue-reference qualifier to the Commit method on ConstructionTransaction
      PiperOrigin-RevId: 399442206
      726a4d036eff49aeb6fd0ca2b1775699b6844395 by Greg Falcon <>:
      Internal change
      PiperOrigin-RevId: 399441870
      1df6d3f659b88dbac13c3d8e13db23bb3844ece2 by Abseil Team <>:
      Clang-format whitespace changes
      PiperOrigin-RevId: 399281271
      4a828cde95a07421d699ebac775b37810624214f by Derek Mauro <>:
      Internal change
      PiperOrigin-RevId: 399234071
      e520c72b34ba2f98668c889139001f8276243d31 by Greg Falcon <>:
      Import of CCTZ from GitHub.
      PiperOrigin-RevId: 399233662
      GitOrigin-RevId: 506fa3e10b3d8399ad937c32ecea26d1ad4e62bb
      Change-Id: I92b9176d2387c08eb167f9268efa78b55b8e09c2
  14. 27 Sep, 2021 2 commits
    • Martin Blais's avatar
    • Abseil Team's avatar
      Export of internal Abseil changes · b1b63f7a
      Abseil Team authored
      d6f0dab708b123a5e24b98da1de0b11e36a7a86e by Evan Brown <>:
      In STLStringResizeUninitializedAmortized, use basic_string::__append_default_init for amortized growth rather than conditionally adding reserve in STLStringReserveAmortized. This way, we can avoid extra branches, e.g. in basic_string::__shrink_or_extend.
      PiperOrigin-RevId: 398761382
      GitOrigin-RevId: d6f0dab708b123a5e24b98da1de0b11e36a7a86e
      Change-Id: Ib2d99411c95d61300519c32b885ce586b410c3bf
  15. 23 Sep, 2021 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · 1ce4ceca
      Abseil Team authored
      1801102e11205861bc063e067e9fd4754b625c5a by Derek Mauro <>:
      Internal change
      PiperOrigin-RevId: 398562681
      485008445725d4013f60f4b2876f84b6b47932ec by Jorg Brown <>:
      Replace calls to std::isinf with comparison against max().
      PiperOrigin-RevId: 398534255
      9b99d074d39ad677cf92f99549d22bb73f504f8f by Saleem Abdulrasool <>:
      debugging: add support for non-glibc targets for debugging
      This relaxes the ELF mem_image handling and subsequently enables the VDSO
      support for non-glibc targets.  The primary need for the restriction was the
      use of the `__GLIBC_PREREQ` macro.  If it is undefined, assume that the glibc
      pre-requisite is unavailable.  This allows building the debugging_internal
      target on musl targets.
      PiperOrigin-RevId: 398499050
      3cc3630ef2226ae1981a944573f0f9c27a527ebf by Abseil Team <>:
      Replace usages of `auto` with proper typedefs.
      PiperOrigin-RevId: 398479551
      GitOrigin-RevId: 1801102e11205861bc063e067e9fd4754b625c5a
      Change-Id: Ib13e8612d1b263b9c1ae7f56a9f394b24c3add2e
    • Milad Fa's avatar
      Initial support for AIX (#1021) · f3a42743
      Milad Fa authored
      * Init support of AIX
      * make sysinfo change AIX specific
      * Relocate TBF
      * Add comments for .csect psudo op.
  16. 22 Sep, 2021 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · 020619c4
      Abseil Team authored
      336f161ad8cb2cc3e1a6bbcbbb8c5b692ee59789 by Derek Mauro <>:
      Internal change
      PiperOrigin-RevId: 398308807
      80d512823d17561a45feca81f37713a91a175349 by Abseil Team <>:
      Internal change.
      PiperOrigin-RevId: 398257218
      f1f9792000355eb1d0c11b17800048491662a218 by Abseil Team <>:
      Fix documentation for btree_multi{map,set}::merge to match behavior for elements with equivalent keys.
      PiperOrigin-RevId: 398071060
      8a9a302aebf2419e83f0c7dc5a63c33d26b807a3 by James Y Knight <>:
      Silence -Wunused-value warning newly emitted by ToT Clang.
      The value is being intentionally ignored, as the purpose of the call is only to eliminate this overload via SFINAE when `GenT{}` is not constant evaluable.
      PiperOrigin-RevId: 397861294
      GitOrigin-RevId: 336f161ad8cb2cc3e1a6bbcbbb8c5b692ee59789
      Change-Id: I946e1d22619f92ce6a424c8c13a20a50b39ed463
    • Markus Dreseler's avatar
  17. 20 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 29f8307d
      Abseil Team authored
      d56207f5535c3aad1624e33d20777ea6e66f51a7 by Abseil Team <>:
      Internal change
      PiperOrigin-RevId: 397830482
      7f7ff3e88e0d3cd61d63da477b2a08e61a1aeea2 by Evan Brown <>:
      Update implementation details comment in raw_hash_set to include information about the heap allocation's layout.
      PiperOrigin-RevId: 397786239
      fde783b12a79ae8d587d1027bc8736dff6844897 by Abseil Team <>:
      Add comments on #endif to make nesting clearer
      PiperOrigin-RevId: 397684219
      GitOrigin-RevId: d56207f5535c3aad1624e33d20777ea6e66f51a7
      Change-Id: I43dc2b5c982f1ef2b21f82b6133c49c428baf223
  18. 17 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · de715111
      Abseil Team authored
      3794fe8db7a8e5a17945a8d6e198cde1db1fed7d by Chris Kennelly <>:
      Record maximum reserve or rehash argument in hashtable statistics.
      This makes it possible to identify containers that are large because of reserve
      calls or ones that could have an opportunity for more precise capacity sizing.
      PiperOrigin-RevId: 396851064
      c3d247c08acfd45d8e19cfd8e6e841e16e38e23d by Abseil Team <>:
      Remove extra semi-colon
      PiperOrigin-RevId: 396823800
      GitOrigin-RevId: 3794fe8db7a8e5a17945a8d6e198cde1db1fed7d
      Change-Id: I9f26407c2dc6b3dff04f6f3e249571dd8ab288c3
  19. 15 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 2f25e6ea
      Abseil Team authored
      a7924266cefd1c175142545996c967fb18b6144f by Abseil Team <>:
      Document the performance advantages of the `ToInt64*()` family of functions.
      PiperOrigin-RevId: 396736253
      77aa845d3aa4c56a48b899ce5a5ffcf9b81991b3 by Matt Kulukundis <>:
      tiny cleanup: remove redundant `public:`
      PiperOrigin-RevId: 396615677
      b837e3de0ebd99e4c4f692a80a5d7ece3e829d18 by Martijn Vels <>:
      Make btree growth factor identical to concat code
      The btree code is using a more aggressive growth rate on Cord::Append than the Concat version. To minimize impact on migration and existing tests using empirical assumptions on growth, this change makes the btree use the same rate as Concat logic.
      PiperOrigin-RevId: 396595109
      e958c06b6ab52e389caa7b3e43d83f924367e79c by Martijn Vels <>:
      Change CordRepBtree::Dump to include capacity of flats
      PiperOrigin-RevId: 396591195
      GitOrigin-RevId: a7924266cefd1c175142545996c967fb18b6144f
      Change-Id: Ia38c09ba9891364b0727509dec4776eb6aadf984
  20. 13 Sep, 2021 2 commits
  21. 10 Sep, 2021 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · cfbf5bf9
      Abseil Team authored
      77e710b0ced5792a328e88bcb938a41484bf4cdc by Saleem Abdulrasool <>:
      absl: add an implementation for UnscaledCycleClock on RISCV
      Add an implementation for UnscaledCycleClock on RISC-V targets.
      PiperOrigin-RevId: 395982312
      84430fce6760c488ca36401cd530f44268ac710d by Martijn Vels <>:
      Harden CordRepBtreeReader against reading up to or beyond EOF
      This change hardens the reader to Next() calls on EOF situations. It changes the 'consumed()' property inside CordRepBtreeReader into a 'remaining()' property which is easier to understand and use than the 'consumed()' property QED the function documentation and use in
      This change also adds the CharIterator test to the CordTest fixture enabling them to be run with btree cords.
      PiperOrigin-RevId: 395971732
      6557e628f2613169da8f693189223acb30e07833 by Martijn Vels <>:
      Add AdvanceAndRead() test addressing the edge case surfaced in b/197776822
      This adds a test explicitly exercising all possible AdvanceAndRead() calls on CharIterator. As per the linked bug, a partial or full small read ending exactly at the end of the last edge of a btree cord results in an attempt to read beyond that last edge and subsequent failure. We will fix the bug and enable these tests for btree in a subsequent change.
      PiperOrigin-RevId: 395958317
      GitOrigin-RevId: 77e710b0ced5792a328e88bcb938a41484bf4cdc
      Change-Id: Ie6e21ce36980515165af7cf046cf199ecbe0ddb0
    • Abseil Team's avatar
      Export of internal Abseil changes · c22c032a
      Abseil Team authored
      4fd27d1c0fda72a8772f2779714c327b18ae657b by Derek Mauro <>:
      Adds missing documentation for btree's lower_bound and upper_bound methods
      PiperOrigin-RevId: 395777262
      GitOrigin-RevId: 4fd27d1c0fda72a8772f2779714c327b18ae657b
      Change-Id: Ife2f9149bcf30523be93ee9d8919c7085a9d3a29
  22. 07 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 8c800bb0
      Abseil Team authored
      6eac0cc7bca997ee95afd4ec485077ae8fd99333 by Abseil Team <>:
      Add comment not to use `ABSL_ATTRIBUTE_PACKED` with `std::atomic`.
      PiperOrigin-RevId: 395231460
      GitOrigin-RevId: 6eac0cc7bca997ee95afd4ec485077ae8fd99333
      Change-Id: Ib4e83bed0f313724b309b6278e9e24a6e5fe9b2c
  23. 03 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 6039dd95
      Abseil Team authored
      7507caf944f8eb98e55730e60e77f9060c572788 by Derek Mauro <>:
      Remove RunningOnValgrind() and ValgrindSlowdown() from dynamic_annotations.h
      These are defined by some sanitizer implementations and possibly Valgrind.
      Abseil decided to define them when the implementation was unavailable so
      that they could be unconditionally called, but we now consider this a mistake.
      Other libraries, including Python, have copied this method, leading to
      multiple definitions when these libraries are used together.
      In the unlikely case that code is using Abseil's definition, it
      is recommended that the call be guarded instead:
      #if __has_feature(thread_sanitizer)
      extern "C" int RunningOnValgrind();
      if (RunningOnValgrind()) ...
      Fixes #1011
      PiperOrigin-RevId: 394501460
      GitOrigin-RevId: 7507caf944f8eb98e55730e60e77f9060c572788
      Change-Id: I5ddaf9a590c857d645461352a0f6fbccbb3d5584
  24. 01 Sep, 2021 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · 4bb9e39c
      Abseil Team authored
      f73e17cb24f7878933fc100bd9bfc39fce190b64 by Derek Mauro <>:
      Internal change
      PiperOrigin-RevId: 394306402
      3d3eeffa4e37f63aa50fec1b90858043b40fe377 by Abseil Team <>:
      Release a few more absl::Cord unit tests that were accidentally omitted from the OSS release before.
      PiperOrigin-RevId: 394016464
      8a77a8eb93d021aadd8fdf43e219bf35328001ad by CJ Johnson <>:
      Fix typo in identifier
      PiperOrigin-RevId: 394000560
      d87206c7c8e045b03d74b91e47ef3db0eb47a17b by Derek Mauro <>:
      Fix typo: RandenHwAes
      PiperOrigin-RevId: 393879427
      980a3402eea77b0c77fb20dd124203002ff791ba by Derek Mauro <>:
      to allow projects to detect if an LTS version is being used.
      Fixes #1006
      PiperOrigin-RevId: 393807178
      aecc7ed34de718c64733dab76621eacb5af9af5f by CJ Johnson <>:
      Change `alloc` to `allocator` to match the fact that other identifiers are full words
      PiperOrigin-RevId: 393794869
      ad754bbcf7b78f5d51ed5f39193ac3159429b2b4 by Derek Mauro <>:
      Remove self-include of cord_rep_btree.h
      PiperOrigin-RevId: 393792085
      f8e937a0d8fe26400560754f3596e3c21bb6d0d7 by Abseil Team <>:
      Fix trivial typo in comment.
      PiperOrigin-RevId: 393770527
      7a58ca5d708038d222c6a2b6ff5076b4ceffd370 by Tomas Dzetkulic <>:
      Update Cord::AppendArray resize policy.
      PiperOrigin-RevId: 393362184
      316050d171190d9d6312cadf88b1cc2db2d1caa7 by Abseil Team <>:
      Add a new top level profiling/ directory to the Abseil library
      PiperOrigin-RevId: 393358109
      0dbb8e10f7fa4a7ac74e12b178e936a67b266c51 by CJ Johnson <>:
      Switch to the more common enable_if pattern of ` = 0` in InlinedVector
      PiperOrigin-RevId: 393301549
      136d3068ce33b50ac820e8bd01395a7164d5181f by Abseil Team <>:
      Clean up typedefs in internal/inlined_vector.h
      PiperOrigin-RevId: 393181754
      GitOrigin-RevId: f73e17cb24f7878933fc100bd9bfc39fce190b64
      Change-Id: I0c4cd4d71d97bd1bf651701b6302ea3d9ac59b66
    • Oleg Fatkhiev's avatar
      Add -Wno-unknown-warning-option to ABSL_LLVM_FLAGS to disable warnings on... · 665ac5b4
      Oleg Fatkhiev authored
      Add -Wno-unknown-warning-option to ABSL_LLVM_FLAGS to disable warnings on unknown warning flags. (#1008)
  25. 26 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 637722af
      Abseil Team authored
      e1c30aa6d6bb25987916d3ec39245c6d4a2a93ea by Derek Mauro <>:
      Only build the non-stub implementation of RandenHwAes when
      accelerated AES can be detected by compiler-set flags.
      This removes the case where the full RandenHwAes is built when
      This also removes the case where ARM crypto is enabled through
      the crypto directive. This directive doesn't appear to reliably
      work when used with arm_neon.h. As far as I can tell, the crypto
      directive is only meant to work with crypto instructions in
      handwritten asm. For this to work with arm_neon.h, it appears
      several hacks are needed, including overriding some compiler-set
      PiperOrigin-RevId: 392948948
      GitOrigin-RevId: e1c30aa6d6bb25987916d3ec39245c6d4a2a93ea
      Change-Id: Ie97e26f0204c8a86f72d2f38a59181f1ef578418
  26. 25 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 095dfc24
      Abseil Team authored
      5d05c54a619a969da5b4b7f66a2af2d969dc7920 by Abseil Team <>:
      Save not needed copies of the predicate in raw_hash_set's EraseIf.
      PiperOrigin-RevId: 392706073
      61ee9b808cd3c81dd10a600c8de5428d6a43cfeb by Abseil Team <>:
      Save unnecessary copies of the iterator in raw_hash_set's EraseIf.
      PiperOrigin-RevId: 392668288
      GitOrigin-RevId: 5d05c54a619a969da5b4b7f66a2af2d969dc7920
      Change-Id: I180dab2706841ce56f27cf6eabdad1106ebdcf73
  27. 24 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 9134967d
      Abseil Team authored
      2aa219620f39aa490fa989f5d92e1bd3e52a46c5 by Abseil Team <>:
      Add lifetime annotations to FunctionRef.
      PiperOrigin-RevId: 392131866
      GitOrigin-RevId: 2aa219620f39aa490fa989f5d92e1bd3e52a46c5
      Change-Id: I295b808986857e46a565e047db25a951dd7ce0e3
  28. 20 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · f39e6ad4
      Abseil Team authored
      82011e44e917fb70fa00078f0bad7f787580bd8e by Abseil Team <>:
      Add lifetime annotations to status methods that return references.
      PiperOrigin-RevId: 391907063
      GitOrigin-RevId: 82011e44e917fb70fa00078f0bad7f787580bd8e
      Change-Id: Icb2cafbf5eb1201b3bdb56a17263073e22b642e7
  29. 19 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · a05366d8
      Abseil Team authored
      04cb3b22497190170aa5b774e98080c5de2ba60b by Abseil Team <>:
      Alternative bit mixer for LowLevelHash on ARM
      LowLevelHash's bit-mixer is inefficient on ARM because it calculates a 128-bit product of two 64-bit numbers. On ARM, this requires a sequence of two instructions with a high combined latency and poor throughput. This change provides alternative bit-mixing code for ARM that uses only 64-bit arithmetic (multiplication, xor, and left-shifts) and speeds things up considerably.
      The bit-mixing code for ARM was inspired by by Woothash[1] and xxh3[1]. Once I landed on a sequence of operations that provided good mixing, I used a test harness to search for the combination of shift / rotate factors that provided the best mixing, as indicated by SMHasher hash quality tests. The new mixing code passes 13 out of 15 of the hash quality test suites in SMHasher, with the two failures being in the noise range: e.g. 1 collision vs. zero expected in a keyset of ~8m keys.
      PiperOrigin-RevId: 391833008
      17a4de1f9d623155c75b19285d414cd55a487cd6 by Saleem Abdulrasool <>:
      debugging: add support for unwinding on RISCV Linux
      This adds partial support for unwinding the RISCV call stack.  It is largely
      duplicated from the AArch64 support with alterations for the ELF RISCV psABI.
      This covers RISCV64 and RISCV32, though not the ILP32E calling convention.
      PiperOrigin-RevId: 391818522
      32c93e449327b2cea32b32f6365e84b420fe1ed3 by Gennadiy Rozental <>:
      New storage for types smaller than 8 bytes.
      Also adding new read interface for types smaller than or rqual to 8 bytes to avoid passing the pointer.
      PiperOrigin-RevId: 391726822
      e987ac08a7787801cbfc7d7c96649e97fa8cff1a by Abseil Team <>:
      Extern template `find_first_non_full` to reduce linkage size for TU with single not inlined function.
      PiperOrigin-RevId: 391718862
      73af9bfcb5bf045089133e18bbd20eb5bb699172 by Gennadiy Rozental <>:
      Make most non-mutable most int128 methods and friend free functions constexpr.
      Some functions are implemented offline (at least in some configurations) and can't be made constexpr. Mutable methods can't be made constexpr until we drop c++11 support.
      Fixes #978
      PiperOrigin-RevId: 391706535
      GitOrigin-RevId: 04cb3b22497190170aa5b774e98080c5de2ba60b
      Change-Id: If051fad5ff004e2e82fa53618fc04a6fe3d2d4be
  30. 18 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 189d55a5
      Abseil Team authored
      84bcdcd9497d1ec989f50c8dee93f656507c7bd6 by Abseil Team <>:
      Reduce length of the `flat_hash_map<std::string, V>` type name in order to reduce binary bloat.
      PiperOrigin-RevId: 391560997
      5f49bd435e066989851dc045c7786ef400413f66 by Greg Falcon <>:
      Claim a bit from the Cord refcount for future use.
      Also rename the increasingly-inaccurately named "Refcount" class to "RefcountAndFlags".
      In optimized builds, this adds an extra mask instruction to decrement and test operations, but no new branches.  Future flags can be added at no extra cost.  Each additional flag will of course reduce the range of our refcount, but even with the bit added, we still support refcounts of 500 million.
      PiperOrigin-RevId: 391557567
      GitOrigin-RevId: 84bcdcd9497d1ec989f50c8dee93f656507c7bd6
      Change-Id: I051823bf5a9a42d4fa9200e39563ab585ecab331
  31. 17 Aug, 2021 2 commits
  32. 13 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 8910297b
      Abseil Team authored
      3a9b4e8e5ecba532db5cc4ac12d12660307ce9fb by Derek Mauro <>:
      Use the Bazel @platforms repository for platform constraints
      Fixes #1000
      PiperOrigin-RevId: 390644226
      b34e4d2f8a86b54bd483ec4c9c3dd781ad2d8b68 by Abseil Team <>:
      debugging: add some handling for RISC-V
      The RISC-V architecture uses a downward growing stack and can host Linux using
      ELF files.  Adjust a few sites accordingly to indicate how to handle the RISC-V
      PiperOrigin-RevId: 390631894
      5fa3a0961bf3dd0799c048956a0128f7b8113f1e by Samuel Benzaquen <>:
      Rename the buffer hash function to LowLevelHash.
      Although it started as wyhash, it will depart from it so it does not make sense
      to keep the name.
      PiperOrigin-RevId: 390483506
      2e7867a2301d58ad4cd5abcaa5fd6f0db973ae7b by Abseil Team <>:
      This is an internal change.
      PiperOrigin-RevId: 390349746
      GitOrigin-RevId: 3a9b4e8e5ecba532db5cc4ac12d12660307ce9fb