llvm-capstone/libcxx
Eric Fiselier d63dd874ec Substantially reduce instantiations and debug size of std::function
std::function uses a standard allocator to manage its memory, however
standard allocators are templates and using them correctly requires
a stupid amount of instantiations. This leads to a substantial increase
in debug info and object sizes.

This patch addresses the issue by dropping the allocator when possible
and using raw new and delete to get memory.

This change decreases the object file size for the test func.wrap.func.con/F.pass.cpp by 33% and the final binary by 29% (when compiled with -g -ggnu-pubnames -gpubnames).

It also roughly halfs the number of entries in the pubnames and pubtype
sections.

llvm-svn: 362865
2019-06-08 01:31:19 +00:00
..
benchmarks
cmake
docs
fuzzing
include Substantially reduce instantiations and debug size of std::function 2019-06-08 01:31:19 +00:00
lib
src Revert "Speedup to_string and to_wstring for integers using stack buffer and SSO." 2019-06-06 07:51:39 +00:00
test Fix some incorrect std::function tests 2019-06-08 00:45:45 +00:00
utils [libcxx] Use libtool when merging archives on Apple platforms 2019-06-02 01:14:31 +00:00
www Update issue statuses. Reviewed as https://reviews.llvm.org/D62932 2019-06-05 21:52:19 +00:00
.arcconfig
.clang-format
.gitignore
appveyor-reqs-install.cmd
appveyor.yml
CMakeLists.txt
CREDITS.TXT
LICENSE.TXT
NOTES.TXT
TODO.TXT