[all-commits] [llvm/llvm-project] e8f618: [libcxx] adds size-based `__split_buffer` represen...
Christopher Di Bella via All-commits
all-commits at lists.llvm.org
Fri Sep 12 06:33:31 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: e8f61801c6237e56b3d69190af7a7acfdcede1e8
https://github.com/llvm/llvm-project/commit/e8f61801c6237e56b3d69190af7a7acfdcede1e8
Author: Christopher Di Bella <cjdb at google.com>
Date: 2025-09-12 (Fri, 12 Sep 2025)
Changed paths:
M libcxx/include/__split_buffer
M libcxx/include/__vector/vector.h
M libcxx/include/deque
M libcxx/test/libcxx/type_traits/is_replaceable.compile.pass.cpp
M libcxx/test/libcxx/type_traits/is_trivially_relocatable.compile.pass.cpp
M lldb/examples/synthetic/libcxx.py
Log Message:
-----------
[libcxx] adds size-based `__split_buffer` representation to unstable ABI (#139632)
**tl;dr** We can significantly improve the runtime performance of
`std::vector` by changing its representation from three pointers to one
pointer and two integers. This document explains the details of this
change, along with the justifications for making it. See the [RFC] for
more information.
`vector` depends on `__split_buffer` for inserting elements. Changing
`__split_buffer` to match `vector`'s representation simplifies the
model, as it eliminates the need to convert between two different
representations of a contiguous buffer in the same configuration of
libc++.
[RFC]: https://discourse.llvm.org/t/adding-a-size-based-vector-to-libc-s-unstable-abi/86306
---------
Co-authored-by: Jorge Gorbe Moya <jgorbe at google.com>
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list