summaryrefslogtreecommitdiff
path: root/absl
Commit message (Collapse)AuthorAge
* Add missing #include options.h in optimization.h.Gravatar Abseil Team2023-08-30
| | | | | | | options.h was already included indirectly from config.h. This CL is just to include what you use. PiperOrigin-RevId: 561376910 Change-Id: I5b96b2aedc1e02eddc049f5bf0e6faa91799930d
* absl: fix a priority bug in CondVar wait morphingGravatar Abseil Team2023-08-29
| | | | | | | | | | | | | | Enqueue updates priority of the queued thread. It was assumed that the queued thread is the current thread. But it's not the case in CondVar wait morhping, where we requeue an existing CondVar waiter on the Mutex. As the result one thread can falsely get priority of another thread. Fix this by not updating priority in this case. And make the assumption explicit and checked. PiperOrigin-RevId: 561249402 Change-Id: I9476c047757090b893a88a2839b795b85fe220ad
* Enable non_temporal_store_memcpy for AMD Milan, Genoa, and Ryzen 3000Gravatar Abseil Team2023-08-29
| | | | | PiperOrigin-RevId: 561119886 Change-Id: Ia1483fdb237f4b211068c7ad1f780ab3e6b81eca
* Add CPU detection for AMD Genoa and Ryzen 3000Gravatar Abseil Team2023-08-29
| | | | | PiperOrigin-RevId: 561108037 Change-Id: Idff65e288384cb55ce69f789db2d9374ae781d3d
* Use fallback engine for as the non-temporal engine for unknown CPU typesGravatar Abseil Team2023-08-29
| | | | | | | | | Using the non-temporal AVX engine for unknown CPU types looks like a mistake to me, and the default built into the switch case is to use the fallback engine. I don't think this is causing issues now, but it might once we add ARM support. PiperOrigin-RevId: 561097994 Change-Id: I7f0edd447017c09acd49e4ea11476e32740d630a
* Import of CCTZ from GitHub.Gravatar Abseil Team2023-08-29
| | | | | PiperOrigin-RevId: 561095618 Change-Id: I1834e0155b05b9984145504d5925dc6fa8a3933b
* Make raw_hash_set::destroy_slots no longer public. It was never meant to be ↵Gravatar Evan Brown2023-08-29
| | | | | | | a public member of the API. PiperOrigin-RevId: 561061460 Change-Id: Ib804d3d3cf427ebfc9e622db9915287eb8045e26
* Remove the legacy thread annotation spellingsGravatar Derek Mauro2023-08-28
| | | | | | | | | | | | | | | | The legacy thread annotations were spellings that were not prefixed with ABSL_ and caused conflicts with other libraries. These spellings have been removed by default for a while, but could have been added back with the temporary compile flag -DABSL_LEGACY_THREAD_ANNOTATIONS. This change completely removes the legacy spellings. If you were relying on the legacy spellings, the fix is straightforward. Simply add the ABSL_ prefix. For example, GUARDED_BY() becomes ABSL_GUARDED_BY(). PiperOrigin-RevId: 560874026 Change-Id: Id072e67435472220ea4f43ccbf267028c13feba7
* Implement ABSL_ATTRIBUTE_PURE_FUNCTION and ABSL_ATTRIBUTE_CONST_FUNCTIONGravatar Derek Mauro2023-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | Pure functions have no effects except to return a value, and their return value depends only on the parameters and global variables. Functions of this kind can be subject to data flow analysis and might be eliminated. In practice, this means that repeated calls to the same function with the same arguments may be optimized away and only evaluated once. Const functions are similar to pure functions, but may not depend on global variables at all. It is an error not to use the result of a function with one of these attributes, since these functions have no other visible effects. Since some Abseil functions are tagged with these attributes, this is potentially a breaking change for code that doesn't use the result of these functions. For example, absl::Minutes() is tagged with ABSL_ATTRIBUTE_CONST_FUNCTION. If, for example, the result of absl::Minutes(n) is unused, some compilers with issue a warning or error. If this is the case, it is likely that there is a typo in the code, or the call can be removed. PiperOrigin-RevId: 560803581 Change-Id: Icd6f218be2cfb7226f8ab6b2d97cd960c0d3d72f
* Speed up `FastIntToBuffer`.Gravatar Abseil Team2023-08-25
| | | | | PiperOrigin-RevId: 560038034 Change-Id: I2c74d271b52faeefb6e8627d9830b2b53de64e73
* Delete the experimental conformance testing code.Gravatar Derek Mauro2023-08-23
| | | | | | | This project was never completed. PiperOrigin-RevId: 559492534 Change-Id: Ie4e9661e25731418979ad10669ac946e1c4d60c2
* Add absl::CharSet.Gravatar Abseil Team2023-08-23
| | | | | PiperOrigin-RevId: 559415517 Change-Id: I5bbc744bf00be2fd15ec7544b725d699e0d982fb
* kernel_timeout_test: Add Apple to the list of slow platforms becauseGravatar Derek Mauro2023-08-21
| | | | | | | it runs on non-dedicated Kokoro PiperOrigin-RevId: 558874605 Change-Id: Iba35f558ab8c967f98a3176af056e76341fb67c3
* PR #1520: Make use of C++20 feature test macros to bestow better compatibilityGravatar Yuriy Chernyshov2023-08-21
| | | | | | | | | | | | | Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1520 Fixes #1519 and removes the burden of manually feature testing all the platforms supported by absl. Merge 26bc4ee13a93edaeee2a21b5eff3569b806acc91 into 94b37802217a9c9bb182bd99d55096683ef45b2c Merging this change closes #1520 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1520 from georgthegreat:feature-test-macros 26bc4ee13a93edaeee2a21b5eff3569b806acc91 PiperOrigin-RevId: 558777775 Change-Id: Ie3e1f309761c67fa233a03e42762776cd93c69b4
* Check CRC cordrep child nodes for nullptr.Gravatar Martijn Vels2023-08-18
| | | | | | | Some time ago the invariant for CRC cordreps was relaxed to allow for nullptr values on empty cords with an explicit empty CRC value. The CordzInfo analysis never checked for nullptr values causing cord sampling to crash if the sampling happened to include a (very unlikely) empty Cord value. PiperOrigin-RevId: 558202613 Change-Id: Ib0e1eadd08047167e4df5d3035b36dca2c285a0d
* Fix instances where GTest::gtest(_main) should haveGravatar Derek Mauro2023-08-17
| | | | | | | | | been GTest::gmock(_main) in log #1515 PiperOrigin-RevId: 557942924 Change-Id: I117e7163de43455471fbfeed3cea3aebc3ac2d10
* Remove the has_element function and use FindElement instead.Gravatar Evan Brown2023-08-17
| | | | | PiperOrigin-RevId: 557920808 Change-Id: I1eb0ca1ea9e9de542321fbc23d82218c5d449fbf
* Fix typo hash_test.cc -> hash_instantiated_test.cc fromGravatar Derek Mauro2023-08-17
| | | | | | | | | | c154d20abce2f1ae6bd35bd774313e351493219b and add CMake dependency on gmock #1515 PiperOrigin-RevId: 557897123 Change-Id: I3f8bbcea1f4c293e073e1f77dbbf818ce2b167bd
* StrCat: do not use intermediate buffer when result fits in SSO.Gravatar Abseil Team2023-08-17
| | | | | PiperOrigin-RevId: 557811632 Change-Id: I370fa17d2fb82a1f1ca86f84529bae31b34b18e4
* Use Abseil's implementation of absl::rotl and absl::rotr for libc++Gravatar Derek Mauro2023-08-16
| | | | | | | | | | | | | prior to 18.0 to workaround libc++ having the wrong signature for these functions. Upstream issue: https://github.com/llvm/llvm-project/issues/64544 The preprocessor conditions were inverted for readability as the conditions became more complex. PiperOrigin-RevId: 557559472 Change-Id: Ibf7a2651e13a0d2a91846bc0d72ba3a44f56747b
* Implement `Cord::Find()` and `Cord::Contains()`Gravatar Abseil Team2023-08-16
| | | | | PiperOrigin-RevId: 557523229 Change-Id: I959c0b0b14a4a96bee396d4bc09b80328060287d
* Update an old comment that refers to obsolete types.Gravatar Evan Brown2023-08-15
| | | | | PiperOrigin-RevId: 557187112 Change-Id: I7c3e4be0ab5a7451173da7a0ded53a3d227bb093
* PR #1509: Allow building when targeting WASIGravatar Anuraag Agrawal2023-08-15
| | | | | | | | | | | | | Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1509 WASI is similar to emscripten, providing a syscall layer to WebAssembly focused on server side applications. There are some config knobs that are in place to allow building the repo for emscripten which also need to support wasi (as built with LLVM). Aside from that, there are still some features it supports less than escripten, for example related to signals, causing the build to be even more limited for it. Merge ec9fa081609687035005dfdafd312754f31c3fbb into 861e53c8f075c8c4d67bd4c82217c57239fc97cf Merging this change closes #1509 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1509 from anuraaga:wasi-sdk-build ec9fa081609687035005dfdafd312754f31c3fbb PiperOrigin-RevId: 557166498 Change-Id: Ic51149d8b092fd888c9a5c383275257fc8ff4232
* Benchmark FNMatch, and use the greedy algorithm with better time and space ↵Gravatar Andy Getzendanner2023-08-14
| | | | | | | complexity and no recursion (from 233 to 53.8 ns). PiperOrigin-RevId: 557032497 Change-Id: I7a92feb3d79fa3dc1b7aa5b1097e53a9dae17c81
* Always inline prefetches.Gravatar Hannah Lin2023-08-14
| | | | | PiperOrigin-RevId: 556914455 Change-Id: Ic0169e1099384eefe285e6d354e448eb5189e397
* An FNMatch helper for upcoming functionality.Gravatar Andy Getzendanner2023-08-14
| | | | | PiperOrigin-RevId: 556898736 Change-Id: Ic310bab090d6a92036034058520ed6641be86fbc
* Speed up kTotalMorePrecise mode of Cord::EstimatedMemoryUsage() by about 25% ↵Gravatar Abseil Team2023-08-14
| | | | | | | by avoiding a redundant map lookup. PiperOrigin-RevId: 556816759 Change-Id: I971e428bf12d91720df72a91cc0bdf0513b0c270
* Add missing includes in raw_hash_set.h.Gravatar Evan Brown2023-08-11
| | | | | PiperOrigin-RevId: 556065631 Change-Id: I7e69b1495946c42fab185a1bc23e9564bfbd5e41
* Include what you spellGravatar Dmitri Gribenko2023-08-11
| | | | | PiperOrigin-RevId: 555894810 Change-Id: I349c94e7c6e7ba1dbd817aa8e4340c1dada84654
* Fixed shared Windows build in Chrome when building MediaPipe.Gravatar Abseil Team2023-08-10
| | | | | | | The MediaPipe library calls absl::SleepFor() but that causes linker errors in Chrome's (non-production) shared library build because AbslInternalSleepFor isn't exported. PiperOrigin-RevId: 555699667 Change-Id: I95033857ec13ed72ff2a80001878b5e35bbeee91
* Add StdcppWaiter to the end of the list of waiter implementationsGravatar Derek Mauro2023-08-10
| | | | | | | | | Since ABSL_INTERNAL_HAVE_STDCPP_WAITER is defined on all systems it is effectively a fallback. I left the condition there in case we have to disable it on some platform in the future. PiperOrigin-RevId: 555629066 Change-Id: I76ca78c7f36d1d02dc4950a44c66903a2aaf2a52
* Add ATTRIBUTE_LIFETIME_BOUND to Cord iterator methodsGravatar Abseil Team2023-08-10
| | | | | PiperOrigin-RevId: 555515105 Change-Id: I00929a869880cddd932ed2a08adb8f762a582738
* Use the supported method for detecting RTTI in Clang:Gravatar Derek Mauro2023-08-10
| | | | | | | ABSL_HAVE_FEATURE(cxx_rtti) PiperOrigin-RevId: 555495363 Change-Id: I4f38bbffe1195ebdf26d7ed3bc92bc865dc8dd17
* Include what you spellGravatar Dmitri Gribenko2023-08-09
| | | | | PiperOrigin-RevId: 555205956 Change-Id: I935b95c29a8d5b69fe45cc0fe1aadb7106d31df3
* Eliminate redundant code branch in `StrAppend`.Gravatar Abseil Team2023-08-09
| | | | | PiperOrigin-RevId: 555080884 Change-Id: I3f83fbeea1352587cf46fed83861cd7fb75655b0
* Include what you spellGravatar Dmitri Gribenko2023-08-08
| | | | | PiperOrigin-RevId: 554936252 Change-Id: Idb2ffbbc11aa6c98414fdd1ec38873d4687ab5e7
* Fix warnings:Gravatar Dmitri Gribenko2023-08-08
| | | | | | | | * 'DoNotOptimize<T>' is deprecated: The const-ref version of this method can permit undesired compiler optimizations in benchmarks * missing #include <string> for 'std::string' PiperOrigin-RevId: 554936149 Change-Id: Iaf06cd9b9b0762e3a514b7e1cfe4a4fd6df24083
* Fix ClangTidy warningsGravatar Dmitri Gribenko2023-08-08
| | | | | | | | * converting integer literal to bool, use bool literal instead * use '= default' to define a trivial default constructor PiperOrigin-RevId: 554935854 Change-Id: If16a435664641df049b8810044b34a05ea2b4028
* Remove a doubled up "with"Gravatar Dmitri Gribenko2023-08-08
| | | | | PiperOrigin-RevId: 554934635 Change-Id: Ia666bc28ee8ee84c633f365312760996f0816ca7
* Add ATTRIBUTE_LIFETIME_BOUND to Cord::Flatten and TryFlatGravatar Abseil Team2023-08-08
| | | | | PiperOrigin-RevId: 554898945 Change-Id: Id19acf5af56b1e7877cd73ac8420cf8e1a841b64
* Include what you spellGravatar Dmitri Gribenko2023-08-08
| | | | | PiperOrigin-RevId: 554854436 Change-Id: Ifbac5ba447528ac696ac59eced95fd752aacf4f9
* Add missing include for <iomanip>Gravatar Derek Mauro2023-08-08
| | | | | PiperOrigin-RevId: 554817008 Change-Id: If18f5992e2a65ce2e3e3cf7e0732767676c4320c
* Remove the no-op full_validation flag in the implementation details of cord.ccGravatar Dmitri Gribenko2023-08-07
| | | | | PiperOrigin-RevId: 554552096 Change-Id: I0aa1bf705841c8bcee42bd33bc8d14bc15f2728b
* Remove a reference to the global string type, which does not exist as a ↵Gravatar Dmitri Gribenko2023-08-07
| | | | | | | separate type anymore PiperOrigin-RevId: 554462574 Change-Id: I749ae0308d76580a2264f35ee8df487da81e0f7b
* Release the `DFATAL` pseudo-LogSeverity levelGravatar Derek Mauro2023-08-04
| | | | | | | | | | `DFATAL` is defined as `FATAL` in debug mode, and as `ERROR` when `NDEBUG` is defined. Closes #1279 PiperOrigin-RevId: 553904244 Change-Id: Iaa207ee65b2a39b4b7f5da241208c3d39cd5da0e
* Import of CCTZ from GitHub.Gravatar Abseil Team2023-08-04
| | | | | PiperOrigin-RevId: 553878129 Change-Id: I054a5bd4c9011155c9fe03df0f07803ad7d2ade3
* Store infoz on the heap instead of inline and store it only when we are ↵Gravatar Evan Brown2023-08-04
| | | | | | | sampling the current allocation. PiperOrigin-RevId: 553847957 Change-Id: Idd131d0362bf36bd22d9bd20df54bd9ae50f0e28
* Optimize Swissmap Match on Arm.Gravatar Connal de Souza2023-08-04
| | | | | | | | | | | | | | | | | Currently we require only a single bit to be set in each abstract bit for iterable bitmasks. However, in most cases, where we have a single match, or no matches in a group, iteration is not needed. We move the masking to the iteration function instead of having it as a requirement for iterable Bitmask construction. This is 4-8% faster for Find and Insert operations. This can hurt performance if we need to iterate many times (there are many matches in the same Group), however this is unlikely, even if we assume the table is completely full. If there are 0 or 1 matches in a group, or the first match is the correct item we are looking for, we save 1 instruction/cycle (most cases) If there are 2 matches in a group, and the first is a false positive, this is neutral (< 3%) If there are more than 2 matches in a group and the first two are false positives, this can be slower by 1 cycle/instruction per additional iteration (< 0.1%) No change to x86. PiperOrigin-RevId: 553831814 Change-Id: I08620899847eaf0086da989d829a1029ea24173a
* Update the comment for capacity_ to mention recent experiments to compress ↵Gravatar Evan Brown2023-08-03
| | | | | | | the field and store it together with size_. PiperOrigin-RevId: 553499768 Change-Id: Ia6eec6d580475a2b76a2415bfb35bcc08131ae34
* Use a shared (reader) lock in absl_flags::WasPresentOnCommandLineGravatar Abseil Team2023-08-02
| | | | | PiperOrigin-RevId: 553209806 Change-Id: I6828c3a5df1981471bca7f2f6cb16dfd60e77a96