llvm-capstone/libcxx
Eric Fiselier a53534a9f6 [libc++] Add __default_init_tag to basic_string constructors
This removes unneeded zero initialization of string data.

For example, given the below code:

void Init(void *mem) {
    new (mem) std::string("Hello World");
}

Assembly before:

Init(void*):
        xorps   xmm0, xmm0
        movups  xmmword ptr [rdi], xmm0
        mov     qword ptr [rdi + 16], 0
        mov     byte ptr [rdi], 22
        movabs  rax, 8022916924116329800
        mov     qword ptr [rdi + 1], rax
        mov     dword ptr [rdi + 8], 1684828783
        mov     byte ptr [rdi + 12], 0
        ret

Assembly after:

Init():
        mov     byte ptr [rdi], 22
        movabs  rax, 8022916924116329800
        mov     qword ptr [rdi + 1], rax
        mov     dword ptr [rdi + 8], 1684828783
        mov     byte ptr [rdi + 12], 0
        ret

Patch by Martijn Vels (mvels@google.com)
Reviewed as https://reviews.llvm.org/D70621
2019-12-16 19:04:09 -05:00
..
benchmarks [libcxx][NFC] Strip trailing whitespace, fix typo. 2019-10-23 11:49:43 -07:00
cmake [libcxx{,abi}] Don't link libpthread and libdl on Fuchsia 2019-12-06 11:15:15 -08:00
docs Update the docs for building libc++. 2019-11-18 12:14:13 -08:00
fuzzing [libc++] Tolerate NaN returning random distributions for now 2019-12-12 17:11:13 -05:00
include [libc++] Add __default_init_tag to basic_string constructors 2019-12-16 19:04:09 -05:00
lib [libc++] Add missing revision number in ABI changelog 2019-10-03 16:50:05 +00:00
src [libcxx{,abi}] Emit deplibs only when detected by CMake 2019-12-02 22:19:20 +01:00
test [libc++] Rework compressed pair constructors. 2019-12-16 18:38:58 -05:00
utils [libc++] Cleanup and enable multiple warnings. 2019-12-12 21:09:08 -05:00
www [libc++] [P0920] [P1661] Update status page. 2019-11-15 00:12:34 +01:00
.arcconfig
.clang-format
.gitignore
appveyor-reqs-install.cmd
appveyor.yml
CMakeLists.txt [libc++] Require C++14 in all cases. 2019-12-11 20:26:30 -05:00
CREDITS.TXT [libcxx] Add Sergej Jaskiewicz to CREDITS.txt 2019-11-21 12:06:10 +03:00
LICENSE.TXT
NOTES.TXT
TODO.TXT