llvm-project/libcxx
Eric Fiselier ef915d3ef4 Improve performance of constructing filesystem::path from strings.
This patch fixes a performance bug when constructing or appending to a path
from a string or c-string. Previously we called 'push_back' to append every
single character. This caused multiple re-allocation and copies when at most
one reallocation is necessary. The new behavior is to simply call
`string::append` so it can correctly handle reallocation.

For large strings this change is a ~4x improvement. This also makes our path
faster to construct than libstdc++'s.

llvm-svn: 285530
2016-10-30 23:53:50 +00:00
..
benchmarks Improve performance of constructing filesystem::path from strings. 2016-10-30 23:53:50 +00:00
cmake [cmake] Allow testing against installed LLVM with no sources 2016-10-19 12:34:17 +00:00
docs Add start of filesystem benchmarks 2016-10-30 22:53:00 +00:00
include Improve performance of constructing filesystem::path from strings. 2016-10-30 23:53:50 +00:00
lib Revert addition of __libcpp_library_version 2016-10-28 22:37:24 +00:00
src Improve performance of constructing filesystem::path from strings. 2016-10-30 23:53:50 +00:00
test Rewrite std::filesystem::path iterators and parser 2016-10-30 23:30:38 +00:00
utils Sort ABI lists by name so that changes don't generate big diffs 2016-10-14 05:04:00 +00:00
www Implement constexpr support for reverse_iterator. Reviewed as https://reviews.llvm.org/D25534 2016-10-19 15:12:50 +00:00
.arcconfig Upgrade arcconfig to use https 2016-07-18 02:02:49 +00:00
.gitignore Implement N4606 optional 2016-10-12 07:46:20 +00:00
CMakeLists.txt Add start of filesystem benchmarks 2016-10-30 22:53:00 +00:00
CREDITS.TXT Add entry to CREDITS.TXT for propagate_const 2016-06-19 19:36:28 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:39:53 +00:00
TODO.TXT Remove out of date items in TODO.txt 2016-09-27 01:28:47 +00:00