| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Add missing #includes PiperOrigin-RevId: 969879114 Change-Id: I123e6aa5a881ccade35efc314722636ee8a13d6a | 1 个月前 | |
Export of internal Abseil changes -- 77e2a9c277721f23a8df983c1efc6ed97c167964 by Derek Mauro <dmauro@google.com>: Simplify an internal piece of CityHash to remove the conflicting definition of uint128 PiperOrigin-RevId: 342906008 -- 593dbb6d5fd32cc5d31e3ba1eda02e8ddeaeaaf6 by Gennadiy Rozental <rogeeff@google.com>: Skip retired flags in GetAllFlags output. This is a bug fix. We should not have released this interface producing retired flags. There should be no observable difference for the users who should not care about retired flags. PiperOrigin-RevId: 342889378 -- bb77e07abff4dbd0a9c97eb85ee85cb39b84d04a by Abseil Team <absl-team@google.com>: Extract `find_first_not_full` outside of the raw_hash_set. This function is used in the following scenarios: 0. [relatively hot] insert, when actual new element is added. 1. [relatively cold] resize (explicit or on capacity grow) 2. [relatively cold] copy constructor 3. [cold] rehash on insert/erase (aka cache) use cases Resize typically mitigated by `reserve` in performance critical cases. Rehashing happen relatively rare, when hash table become polluted with deleted slots. We keep `find_first_not_full` in header, so that compiler still can inline it, when necessary (most notably in insert use case). This reduce binary size since only one copy of this function will be present in the binary for all tables where the function is not inlined (at least in one case). PiperOrigin-RevId: 342736300 GitOrigin-RevId: 77e2a9c277721f23a8df983c1efc6ed97c167964 Change-Id: I3fe9d054c66049bb598ea35c45fc800b1cdaa9b6 | 5 年前 | |
Fix and reorder some #includes Some of these direct dependencies were previously indirect/transitive dependencies. They previously worked -- and continue to work -- as they only required header inclusions. They should be mentioned in CMakeLists.txt, which we can handle in a separate commit. PiperOrigin-RevId: 977974961 Change-Id: Iac66449258d7c8c74e6813c72943550e83bff099 | 30 天前 | |
Make ABSL_ATTRIBUTE_ALWAYS_INLINE and ABSL_ATTRIBUTE_NOINLINE work on MSVC The attribute works unconditionally on _MSC_VER >= 1937, and under /std:c++latest (post-C++17) on _MSC_VER >= 1927. PiperOrigin-RevId: 994626183 Change-Id: Ice38136caf1a4ba8ef98be73c19442a776b3efae | 2 天前 | |
Simplify absl::hash_internal::is_uniquely_represented now that we have std::has_unique_object_representations, which we didn't have back when Abseil needed to support C++14. Also migrate FitsIn64Bits to only allow power-of-2-sized values, since unaligned loads use this trait. PiperOrigin-RevId: 989844631 Change-Id: I0b8e7660197d3f8a6e551ce49214b59021ddca9f | 10 天前 | |
Add missing #includes PiperOrigin-RevId: 969879114 Change-Id: I123e6aa5a881ccade35efc314722636ee8a13d6a | 1 个月前 | |
Specialize long strings hash for ARM to benefit from AES instruction differences. ``` name CYCLES/op CYCLES/op vs base BM_HASHING_Combine_contiguous_Fleet_hot 540.0m ± 2% 507.0m ± 2% -6.11% (p=0.002 n=6) BM_HASHING_Combine_contiguous_Fleet_cold 2.124 ± 12% 2.027 ± 3% -4.54% (p=0.041 n=6) ``` ASM diff 1. 33-64: -4 cycles https://godbolt.org/z/nEYEKP4M3 2. 65+: -6 cycles https://godbolt.org/z/xsnjh678c 3. -104 bytes of binary size: https://godbolt.org/z/j8absY8M8 PiperOrigin-RevId: 866058683 Change-Id: I7d2f13532ce4fd2bec0382af0ba116967d5aa063 | 7 个月前 | |
Add missing #includes PiperOrigin-RevId: 969879114 Change-Id: I123e6aa5a881ccade35efc314722636ee8a13d6a | 1 个月前 | |
Fix and reorder some #includes Some of these direct dependencies were previously indirect/transitive dependencies. They previously worked -- and continue to work -- as they only required header inclusions. They should be mentioned in CMakeLists.txt, which we can handle in a separate commit. PiperOrigin-RevId: 977974961 Change-Id: Iac66449258d7c8c74e6813c72943550e83bff099 | 30 天前 | |
Use weaker mixing for absl::Hash for types that mix their sizes. When a container or a string is mixed, size is only supplementary data. We are still mixing size to avoid hash expansion to be a suffix of one another. Mixing is done by addition `size + Seed()`. `+ Seed()` is needed to make an empty string to change the hash state. We assume that `Seed()` is already loaded to some register. Addition would modify low bits that will be spread with data mixing later. We considered the following optimization. Mix the size at the beginning in order to improve the dependency graph. Mixing would happen in parallel with reading strings data. It's not feasible because absl::Hash API requires that hash expansions can't be suffixes of each other. ``` name old CYCLES/op new CYCLES/op delta BM_latency_AbslHash_String3 27.2 ± 0% 21.5 ± 0% -21.08% (p=0.000 n=52+52) BM_latency_AbslHash_String5 28.1 ± 8% 22.3 ±11% -20.70% (p=0.000 n=57+57) BM_latency_AbslHash_String9 27.7 ± 9% 22.2 ±17% -19.77% (p=0.000 n=56+57) BM_latency_AbslHash_String17 25.9 ± 5% 21.2 ±23% -18.02% (p=0.000 n=57+54) BM_latency_AbslHash_String33 28.0 ± 5% 22.5 ± 4% -19.69% (p=0.000 n=54+54) BM_latency_AbslHash_String65 37.9 ± 8% 32.2 ±10% -15.19% (p=0.000 n=52+53) BM_latency_AbslHash_String257 57.1 ± 8% 52.0 ±10% -8.88% (p=0.000 n=52+54) ``` PiperOrigin-RevId: 750151406 Change-Id: I2245bad4906960d9236bea671738a218a85eb1af | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 5 年前 | ||
| 30 天前 | ||
| 2 天前 | ||
| 10 天前 | ||
| 1 个月前 | ||
| 7 个月前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 1 年前 |