diff options
| author | Jonathan Wakely <jwakely@redhat.com> | 2022-09-16 16:30:02 +0100 | 
|---|---|---|
| committer | Jonathan Wakely <jwakely@redhat.com> | 2022-11-08 17:35:15 +0000 | 
| commit | 9d549401ae8ab334c8cba1c1339dbd3c8e695685 (patch) | |
| tree | 871bdaa17e2c143edf9f663aa2d3d450e5ac2aa0 /gcc/doc/cppinternals/multiple-include-optimization.rst | |
| parent | 3f1519eef5cbdcea2f18445852f5482798e3936a (diff) | |
| download | gcc-9d549401ae8ab334c8cba1c1339dbd3c8e695685.zip gcc-9d549401ae8ab334c8cba1c1339dbd3c8e695685.tar.gz gcc-9d549401ae8ab334c8cba1c1339dbd3c8e695685.tar.bz2 | |
libstdc++: Add always_inline to most allocator functions
This reduces the abstraction penalty for allocator support in
unoptimized code. Constructing and using allocators in containers calls
many one-line (or completely empty) inline functions. Those can all be
inlined to reduce code size and function call overhead for -O0.
libstdc++-v3/ChangeLog:
	* include/bits/alloc_traits.h (allocator_traits): Add
	always_inline attribute to all member functions.
	(__do_alloc_on_copy, __alloc_on_copy, __do_alloc_on_move)
	(__alloc_on_move, __do_alloc_on_swap, __alloc_on_swap)
	(_Destroy(FwdIter, FwdIter, allocator<T>&)): : Add
	always_inline attribute.
	* include/bits/allocator.h (allocator): Add always_inline
	attribute to all member functions and equality operators.
	* include/bits/new_allocator.h (__new_allocator): Likewise.
	* include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits):
	Likewise.
Diffstat (limited to 'gcc/doc/cppinternals/multiple-include-optimization.rst')
0 files changed, 0 insertions, 0 deletions
