| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
PiperOrigin-RevId: 553878129
Change-Id: I054a5bd4c9011155c9fe03df0f07803ad7d2ade3
|
|
|
|
|
|
|
| |
sampling the current allocation.
PiperOrigin-RevId: 553847957
Change-Id: Idd131d0362bf36bd22d9bd20df54bd9ae50f0e28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
the field and store it together with size_.
PiperOrigin-RevId: 553499768
Change-Id: Ia6eec6d580475a2b76a2415bfb35bcc08131ae34
|
|
|
|
|
| |
PiperOrigin-RevId: 553209806
Change-Id: I6828c3a5df1981471bca7f2f6cb16dfd60e77a96
|
|
|
|
|
| |
PiperOrigin-RevId: 553158292
Change-Id: I28350321550accd72da2f9f6f5992af311fe4b00
|
|
|
|
|
|
|
| |
natively
PiperOrigin-RevId: 552940359
Change-Id: I925764757404c0c9f2a13ed729190d51f4ac46cf
|
|
|
|
|
|
|
| |
hex instead of dec
PiperOrigin-RevId: 552927211
Change-Id: I0375d60a9df4cdfc694fe8d3b3d790f80fc614a1
|
|
|
|
|
|
|
|
|
|
|
|
| |
Included are additional automated edits by clang-format on import.
Merge d74896699faacc4a1667603e52e72cbdc8006cf6 into 22091f4c0d6626b3ef40446ce3d4ccab19425ca3
Merging this change closes #1500
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1500 from ryandesign:MAP_ANONYMOUS d74896699faacc4a1667603e52e72cbdc8006cf6
PiperOrigin-RevId: 552922776
Change-Id: I96a0395cb5e7156d7c7a889491c5d0b4cf755819
|
|
|
|
|
|
|
| |
invalidated by rehashing
PiperOrigin-RevId: 552901078
Change-Id: I137d01fe87b1bbf591b400305f6f7919982fc1c9
|
|
|
|
|
| |
PiperOrigin-RevId: 552848883
Change-Id: Ibcf4b59e2ab671d8dd8fddcbc9d74d4c8cd3f0ff
|
|
|
|
|
|
|
|
|
|
| |
as well. Some empty cases can trigger this.
See also:
https://clang.llvm.org/docs/ControlFlowIntegrity.html#bad-cast-checking.
PiperOrigin-RevId: 552846765
Change-Id: I6adb3c0c73efec841ffe8fdac4342f641c68ddbe
|
|
|
|
|
| |
PiperOrigin-RevId: 552802740
Change-Id: I662da1b03bfffb7939b44ea3850566d3c209c6cc
|
|
|
|
|
| |
PiperOrigin-RevId: 552638642
Change-Id: I6b43289ca10ee9aecd6b848e78471863b22b01d1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1495
This fixes https://github.com/abseil/abseil-cpp/issues/1494
With CMake 3.24 we can also use `$<LINK_LIBRARY:FRAMEWORK,CoreFoundation>`
but abseil is still at CMake 3.10
The change has been tested here: https://github.com/daschuer/vcpkg/actions/runs/5670741925
Merge f3ff6bc01ff45970d2b803ca51421483b423b72b into c9c0fd5185067208e1cc4227d16122571762af39
Merging this change closes #1495
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1495 from daschuer:framework-link-fix f3ff6bc01ff45970d2b803ca51421483b423b72b
PiperOrigin-RevId: 552564485
Change-Id: I57b580e5795c54865576110e56220128d8b603b8
|
|
|
|
|
| |
PiperOrigin-RevId: 552520562
Change-Id: I5d311871afbc2906894c3b754a503a6abace8ceb
|
|
|
|
|
|
|
|
| |
the results of a bunch of accessors of CommonFields.
Motivation: this makes it easier to refactor CommonFields to be smaller.
PiperOrigin-RevId: 551616928
Change-Id: I3710443fb156537d716944584bea02f945559e99
|
|
|
|
|
|
|
|
|
|
| |
heap allocation path. The cast occurs before the memory is initialized.
See also:
https://clang.llvm.org/docs/ControlFlowIntegrity.html#bad-cast-checking.
PiperOrigin-RevId: 551542366
Change-Id: Id5834892c36a5cb8ec095bcfee3e9e31f20c48ae
|
|
|
|
|
| |
PiperOrigin-RevId: 551287955
Change-Id: Ic77831cec71f6ffe0a4e091baabe932b245269ea
|
|
|
|
|
|
|
| |
calling erase(begin(), end()) resets reserved growth.
PiperOrigin-RevId: 551248712
Change-Id: I34755c63e3ee40da4ba7047e0d24eec567d28173
|
|
|
|
|
|
|
|
|
|
|
|
| |
GetInlinedDataUninitialized() is removed. Just use GetInlinedData() in
all cases instead. GetInlinedData() is sometimes used to return
uninitialized memory. In these cases it is immediately constructed.
This is a followup to 511ad64. See also:
https://clang.llvm.org/docs/ControlFlowIntegrity.html#bad-cast-checking.
PiperOrigin-RevId: 551205766
Change-Id: I4ddb45e29a723ccf6fc7dc203e762f4ad559fc83
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a vtable
The code is getting the pointer, then constructing it on the next
line. Using reinterpret_cast on this pointer is legal according to
https://clang.llvm.org/docs/ControlFlowIntegrity.html#bad-cast-checking,
but it flags it anyway. The docs say it might be necessary for
`allocate()`-type APIs, and recommends adding them to an ignorelist.
Also note that std::addressof is removed. It is unnecessary since
inlined_data is a char-array.
PiperOrigin-RevId: 550972834
Change-Id: Ib224cec330bb6bcb770296de6c91881f404ef531
|
|
|
|
|
| |
PiperOrigin-RevId: 550964088
Change-Id: I54e4bff1cf72442c34e1668dbe8af9337eb0aa46
|
|
|
|
|
| |
PiperOrigin-RevId: 549965642
Change-Id: I708dd56a36d60cbc00564fa789e1cb1ef37f950a
|
|
|
|
|
|
|
|
| |
motivation is to avoid potentially expanding the table unnecessarily later.
Note: I prefer doing this as a special case in erase(iterator, iterator) rather than special casing erase(iterator) for size==1 because IIUC that changes the time complexity of erase(iterator) from O(1) to O(N) and in pathological cases, it could change loops from O(N) to O(N^2).
PiperOrigin-RevId: 549661855
Change-Id: I8603324260f51a98809db32f840ff09f25cf2481
|
|
|
|
|
|
|
| |
corresponding function in raw_hash_set.
PiperOrigin-RevId: 549379884
Change-Id: I305745dbea2c15821b2092441c9b4546fc7aabbe
|
|
|
|
|
|
|
| |
Verifies that values other than 0 are prepended with "0x", while 0 is printed as "0000".
PiperOrigin-RevId: 549108651
Change-Id: Ib0f87d42066c46f3a5d4b05ca5c9d7ac17be9b66
|
|
|
|
|
| |
PiperOrigin-RevId: 548794485
Change-Id: Ie82d5f8ad752518ef05b38144ca1e32b21c9def8
|
|
|
|
|
| |
PiperOrigin-RevId: 548709037
Change-Id: I6eb03553299265660aa0abc180ae0f197a416ba4
|
|
|
|
|
|
|
|
| |
Ensure that the CHECK expression and message are stripped when FATAL is below
ABSL_MIN_LOG_LEVEL.
PiperOrigin-RevId: 548157637
Change-Id: I4308ff7ff75aabebdd2dcefa2771cd7e77112817
|
|
|
|
|
| |
PiperOrigin-RevId: 547895328
Change-Id: If5da952604415fa6ed2402052f80add6c4b7dfb3
|
|
|
|
|
| |
PiperOrigin-RevId: 547850162
Change-Id: I43208c7fa1eaa2a7acfad5891b80c150ee58c65f
|
|
|
|
|
|
|
|
|
|
|
| |
depend on string_view without depending on all of
//absl/strings:strings
New code that uses string_view.h should depend on
//absl/strings:string_view (Bazel) or
absl::string_view (CMake) instead.
PiperOrigin-RevId: 547283268
Change-Id: I6006b19605ce377d12c462129dda14251d16e1c1
|
|
|
|
|
|
|
| |
are not intended to be read or set from C++ code.
PiperOrigin-RevId: 547264846
Change-Id: Idd0958f308ec74f907c22cce965fac2e06692e2c
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`memmatch()` is only used in `string_view.cc`, so move it there.
The moving of `memmatch()` to `string_view.cc` decouples `string_view`
from `memutil`, which will allow us to move `string_view` into its
own target in a followup.
The only other function that is used is `memcasecmp()`, so delete
all other functions.
PiperOrigin-RevId: 547238386
Change-Id: Id6fad47dd24191c8e8f26dd923fffa1007c8db4a
|
|
|
|
|
| |
PiperOrigin-RevId: 546914671
Change-Id: I6f0419103efdd8125e4027e7d5eec124ca604156
|
|
|
|
|
| |
PiperOrigin-RevId: 546897533
Change-Id: I3ad12f252c49e4672a64d00d0107111fdc5b6ac8
|
|
|
|
|
|
|
| |
The current spelling is inconsistent with standard casing rules: "nonnull" is a single word, not two.
PiperOrigin-RevId: 546034114
Change-Id: I04e5a204f4a74ebaa76031dd0b0874ca9cfa902c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't assume that function ptr == PC. Adds a redirection mechanism, GetPCFromFnPtr, and enables more test cases for Emscripten/Wasm.
On many (most?) platforms, the address of a function ptr is the same as its
Program Counter (PC) for the purpose of most things, including symbolization.
In Emscripten WebAssembly, the function ptr is just an index into a table of
functions. However, the name section maps function names to their literal
offsets into a Wasm binary. The WasmOffsetConverter is actually capable of both
indirections, so we can effectively go from function ptr to offset into the
binary (which is typically the "PC" for other Stack dumping things in Wasm,
including `emscripten_pc_get_function`).
More info: https://www.w3.org/TR/wasm-js-api-2/#exported-function-exotic-objects
Also fix Emscripten symbolize handling for `nullptr` now that we have tests for
that.
PiperOrigin-RevId: 546006678
Change-Id: I0d4015ca9035b004158451b36c933cad009184ba
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Xcode 14.3, Apple modified the OS versions which support these
three types to exclude iOS 11 and watchOS 4. Update abseil accordingly.
Those versions of the OS did _not_ actually support the types, and any
binaries which used these types, built with prior Xcode versions,
would've crashed on startup on an actual iOS 11 or watchOS 4 device
due to missing symbols. As of Xcode 14.3, using them is now, correctly,
a build failure.
This change also drops the conditionals for pre-Xcode 12.5, as that is
no longer a supported version.
PiperOrigin-RevId: 546005629
Change-Id: Ib0430307ac2ada4910f07c54cfd6e99db8ca1905
|
|
|
|
|
|
|
| |
fails.
PiperOrigin-RevId: 545683736
Change-Id: Ic0abec5037e160898e2f24de1b1489caff7d06fd
|
|
|
|
|
|
|
|
|
| |
Explain when kTrue may be useful.
Note that Mutex::Await/LockWhen with kTrue condition
and a timeout do not return when the timeout is reached.
PiperOrigin-RevId: 544846222
Change-Id: I7a14ae5a9314b2e500919f0c7b3a907d4d97c127
|
|
|
|
|
|
|
| |
easier to change how we store this information internally.
PiperOrigin-RevId: 544732832
Change-Id: I0c9a30f18edc71b3c7fffe94e2002ff6c52050f8
|
|
|
|
|
|
|
| |
to change how we store this information internally.
PiperOrigin-RevId: 544718317
Change-Id: I0ff3e4df7e810be9f7c5db4328995e172eb704a5
|
|
|
|
|
| |
PiperOrigin-RevId: 544677169
Change-Id: I98874c5c8d1c9a057958b63e2b3c4fdd5daccd39
|
|
|
|
|
|
|
| |
how we store this information internally.
PiperOrigin-RevId: 544667586
Change-Id: I9b1943ca71ea1c1f8699832422cd7bc095ac8b2d
|
|
|
|
|
| |
PiperOrigin-RevId: 544461113
Change-Id: Iafbd6daf2d03ae18a49ea449315ee7cd6a0e615e
|
|
|
|
|
| |
PiperOrigin-RevId: 544445872
Change-Id: Ic7d42dca3461babdf8a6dff4c73a1596e795ffb2
|
|
|
|
|
|
|
|
|
|
| |
The big-endian PowerPC ELF ABI (ppc64 in Debian) relies on function
descriptors mapped in a non-executable segment. Make sure that segment
is scanned during symbolization. Also correct bounds computation for
that segment.
PiperOrigin-RevId: 544440302
Change-Id: Ic05532aa35ae9efa127028318640ee7cdeeecc5f
|
|
|
|
|
| |
PiperOrigin-RevId: 544438364
Change-Id: I22d461f2d0aa8638a0e640eebecdc7e5e2b49ea3
|