1. 06 Dec, 2023 1 commit
  2. 05 Dec, 2023 5 commits
  3. 04 Dec, 2023 1 commit
    • Remove `absl::weak_equality` and `absl::strong_equality`. · a39d71a8
      The corresponding `std` types were removed before C++20 was finalized:
      https://wg21.link/P1959R0.
      
      They are unused. The language mechanisms and recommendations changed since they
      were originally proposed. In particular:
      
      * An explicitly defaulted `operator==` is defined in terms of memberwise
        `operator==` rather than sibling `operator<=>`.
      
      * An `operator!=` can be implicitly added to an overload set in terms of
        `operator==` rather than `operator<=>`.
      
      * A class which has equality but not ordering defined should provide
        `operator==` rather than `operator<=>`.
      
      PiperOrigin-RevId: 587834267
      Change-Id: I2c2513c13f3485b9edc6a345dca4a577d8e65167
      Marcin Kowalczyk committed
  4. 28 Nov, 2023 2 commits
  5. 27 Nov, 2023 1 commit
  6. 22 Nov, 2023 1 commit
  7. 20 Nov, 2023 1 commit
  8. 17 Nov, 2023 3 commits
  9. 16 Nov, 2023 3 commits
  10. 15 Nov, 2023 1 commit
    • Speed-up absl::Symbolize by ~6x via faster file reads. · aa146013
      absl::Symbolize does tons of tiny reads. Speed this up by switching
      from lseek+read to a pread, and by reading more data than requested
      into a buffer.
      
      A faster absl::Symbolize will be helpful in tests and when printing
      stack traces on /threadz etc.
      
      Results for absl::Symbolize benchmark that exercises uncached behavior
      of absl::Symbolize:
      
      ```
      name          old time/op  new time/op  delta
      BM_Symbolize  16.4ms ±12%   2.6ms ± 0%  -84.06%  (p=0.001 n=5+9)
      ```
      
      PiperOrigin-RevId: 582687566
      Change-Id: I44caf189d81867f3fd8c050a3100a4b9a8e744d7
      Abseil Team committed
  11. 14 Nov, 2023 4 commits
  12. 13 Nov, 2023 2 commits
  13. 09 Nov, 2023 1 commit
  14. 08 Nov, 2023 5 commits
  15. 07 Nov, 2023 2 commits
    • Properly handle signal stacks and frame-size calculations · bb7bbb12
      We can determine the signal stack, so use that information to
      make better decisions about when to calculate the frame size
      and when not to. This fixes a several tests where the memory
      layout had the signal stack and main stack in position that
      confused some of the greater-than/less-than comparisons.
      
      Also cleanup certain types to avoid more casting than necessary.
      
      PiperOrigin-RevId: 580221819
      Change-Id: I0365b03e7893741603dc66e6d36a069d0b7f5404
      Abseil Team committed
    • Add control()/slot() functions to iterator/const_iterator. · 116ee0fe
      This allows for avoiding e.g. it.inner_.slot_ on const iterators.
      
      Also, refactor HashtableDebugAccess::AllocatedByteSize to use regular iteration instead of looking directly at control/slot_array of the table in order to support small object optimization.
      
      PiperOrigin-RevId: 580194253
      Change-Id: I64cd69287834ee5c7a8daf867c532258806bfb7b
      Evan Brown committed
  16. 06 Nov, 2023 1 commit
  17. 03 Nov, 2023 1 commit
  18. 02 Nov, 2023 2 commits
  19. 01 Nov, 2023 1 commit
  20. 31 Oct, 2023 1 commit
    • Mutex: Remove destructor in release build · f3760b4d
      The Mutex destructor is needed only to clean up debug logging
      and invariant checking synch events. These are not supposed
      to be used in production, but the non-empty destructor has
      costs for production builds.
      
      Instead of removing synch events in destructor,
      drop all of them if we accumulated too many.
      For tests is should not matter (we maybe only consume
      a bit more memory). Production builds should be either unaffected
      (if don't use debug logging), or use periodic reset of all synch events.
      
      PiperOrigin-RevId: 578123259
      Change-Id: I0ec59183a5f63ea0a6b7fc50f0a77974e7f677be
      Dmitry Vyukov committed
  21. 30 Oct, 2023 1 commit
    • Optimize memcasecmp. Benchmarks shows slight improvement. · 6c8338c2
      We are also avoiding potential cache-misses, by avoiding load.
      
      name                         old speed            new speed            delta
      BM_Searchcase                3.09GB/s ±13%        3.20GB/s ±16%   +3.69%  (p=0.039 n=20+17)
      BM_SearchcaseMedium          1.08GB/s ± 7%        1.04GB/s ±14%     ~     (p=0.814 n=16+20)
      BM_SearchcasePathological     618kB/s ±13%         652kB/s ± 6%   +5.55%  (p=0.043 n=20+16)
      BM_Memcasematch              2.43GB/s ± 3%        2.45GB/s ± 3%     ~     (p=0.488 n=17+16)
      BM_MemcasematchMedium         230MB/s ± 8%         261MB/s ±14%  +13.77%  (p=0.000 n=16+20)
      BM_MemcasematchPathological   624kB/s ±14%         619kB/s ±14%     ~     (p=0.836 n=20+20)
      
      PiperOrigin-RevId: 577919033
      Change-Id: I31324e04b6a577c582ad630d171d3b41d826f1e4
      Ilya Tokar committed