llvm-project/libcxx
Volodymyr Sapsai fb0e1908d4 [libcxx] Optimize vectors construction of trivial types from an iterator range with const-ness mismatch.
We already have a specialization that will use memcpy for construction
of trivial types from an iterator range like

    std::vector<int>(int *, int *);

But if we have const-ness mismatch like

    std::vector<int>(const int *, const int *);

we would use a slow path that copies each element individually. This change
enables the optimal specialization for const-ness mismatch. Fixes PR37574.

Contributions to the patch are made by Arthur O'Dwyer, Louis Dionne.

rdar://problem/40485845

Reviewers: mclow.lists, EricWF, ldionne, scanon

Reviewed By: ldionne

Subscribers: christof, ldionne, howard.hinnant, cfe-commits

Differential Revision: https://reviews.llvm.org/D48342

llvm-svn: 350583
2019-01-08 00:03:16 +00:00
..
benchmarks [libcxx] Speeding up partition_point/lower_bound/upper_bound 2018-12-17 16:04:39 +00:00
cmake [CMake] Passthrough CFLAGS when checking the compiler-rt path 2018-11-14 00:09:26 +00:00
docs [libcxx] Support building hermetic static library 2019-01-06 06:14:31 +00:00
fuzzing Fix the test for partition_copy so it is not ridiculously slow. Also, detab. 2018-11-04 17:57:25 +00:00
include [libcxx] Optimize vectors construction of trivial types from an iterator range with const-ness mismatch. 2019-01-08 00:03:16 +00:00
lib [libcxx] Support building hermetic static library 2019-01-06 06:14:31 +00:00
src Implement LWG 3096: path::lexically_relative is confused by trailing slashes 2018-12-21 04:25:40 +00:00
test [libcxx] Optimize vectors construction of trivial types from an iterator range with const-ness mismatch. 2019-01-08 00:03:16 +00:00
utils Revert "D56064: More tolerance for flaky tests in libc++ on NetBSD" 2019-01-05 20:11:54 +00:00
www Implement LWG 3096: path::lexically_relative is confused by trailing slashes 2018-12-21 04:25:40 +00:00
.arcconfig [libcxx] Set up .arcconfig to point to new Diffusion CXX repository 2017-12-04 17:55:28 +00:00
.clang-format Make clang-format use C++03 syntax 2017-04-15 02:45:43 +00:00
.gitignore
CMakeLists.txt [libcxx] Support building hermetic static library 2019-01-06 06:14:31 +00:00
CREDITS.TXT Try again, this time with the correct address 2017-12-29 19:26:53 +00:00
LICENSE.TXT
NOTES.TXT Reland "Use custom command and target to install libc++ headers" 2018-06-12 03:10:02 +00:00
TODO.TXT
appveyor-reqs-install.cmd Update LLVM version used on Appveyor bot, remove MSVC 2015 bot 2018-10-30 21:23:31 +00:00
appveyor.yml Update LLVM version used on Appveyor bot, remove MSVC 2015 bot 2018-10-30 21:23:31 +00:00