[Lldb-commits] [libcxx] [lldb] [libcxx] adds size-based `__split_buffer` representation to unstable ABI (PR #139632)

Louis Dionne via lldb-commits lldb-commits at lists.llvm.org
Wed Jul 9 09:51:33 PDT 2025


================

----------------
ldionne wrote:

Actually, enabling the size-based vector doesn't technically require these changes to `__split_buffer` AFAICT, since we only ever use `__split_buffer` as an implementation detail, and the representation of `__split_buffer` has no impact on the representation of `std::vector` itself. IMO this leaves a few options:
1. We don't bother changing the representation of `__split_buffer`, since that's only relevant to optimizing `std::deque` and I'm not certain that's a goal you're trying to achieve.
2. We do change the representation of `__split_buffer`, but then that should be keyed on `_LIBCPP_ABI_SIZE_BASED_DEQUE` since, like I said above, the representation of `__split_buffer` only impacts the representation of `std::deque`.
3. We refactor `__split_buffer` to accept the layout argument like I suggested in my original comment and we use the desired layout from both `deque` and `vector`. That makes everything very explicit, but it's not clear to me that this is needed if our end goal is truly just to optimize the representation of `std::vector`.

I'm curious to hear your thoughts on this, especially about the need to change `__split_buffer` at all in order to change the representation of `std::vector`. I don't know why it didn't occur to me earlier.

https://github.com/llvm/llvm-project/pull/139632


More information about the lldb-commits mailing list