llvm-project/libcxx
Aditya Kumar 38bc3df8a3 [locale] Avoid copy of __atoms when char_type is char
The function num_get<_CharT>::stage2_int_prep makes unnecessary copy of src
into atoms when char_type is char. This can be avoided by creating
a switch on type and just returning __src when char_type is char.

Added the test case to demonstrate performance improvement.
In order to avoid ABI incompatibilities, the changes are guarded
with a macro _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET

Differential Revision: https://reviews.llvm.org/D30268
Reviewed by: EricWF

llvm-svn: 305427
2017-06-14 23:17:45 +00:00
..
benchmarks [locale] Avoid copy of __atoms when char_type is char 2017-06-14 23:17:45 +00:00
cmake Correct typo: LIBCXXABI_BUILTINS_LIBRARY -> LIBCXX_BUILTINS_LIBRARY 2017-05-25 22:43:42 +00:00
docs Fix misspelling of environment throughout libc++ 2017-05-09 23:47:20 +00:00
include [locale] Avoid copy of __atoms when char_type is char 2017-06-14 23:17:45 +00:00
lib libcxx: fix bootstrapping for mingw-w64 2017-05-25 22:37:15 +00:00
src Fix Libc++ build with MinGW64 2017-05-31 22:14:05 +00:00
test Add some const_casts in places where we were implicitly casting away constness. No functional change, but now they're explicit 2017-06-14 20:00:36 +00:00
utils Define -DNOMINMAX when running the tests on Windows 2017-05-31 23:27:25 +00:00
www Mark LWG 2904 as complete. 2017-06-07 10:27:17 +00:00
.arcconfig Upgrade arcconfig to use https 2016-07-18 02:02:49 +00:00
.clang-format Make clang-format use C++03 syntax 2017-04-15 02:45:43 +00:00
.gitignore Implement N4606 optional 2016-10-12 07:46:20 +00:00
CMakeLists.txt Add <experimental/coroutine> 2017-05-25 04:36:24 +00:00
CREDITS.TXT Updated email address in `CREDITS.txt`. 2017-03-06 20:46:55 +00:00
LICENSE.TXT Update year to 2017 2017-01-03 11:20:43 +00:00
NOTES.TXT Update doc and various cleanup 2016-12-23 20:00:13 +00:00
TODO.TXT Add list of filesystem NB comments to TODO.TXT so they can be tracked separately 2017-03-06 21:23:36 +00:00
appveyor-reqs-install.cmd Upgrade Clang version used by appveyor 2017-06-01 01:00:59 +00:00
appveyor.yml Rename Appveyor install helper script. 2017-05-10 02:43:02 +00:00