Когда __встроенный _memcpy заменен на memcpy из libc

В GCC есть версия функции C99/posix memcpy:__builtin_memcpy..

Иногда его можно заменить с помощью GCC на встроенную версию memcpy, а в других случаях он заменяется вызовом memcpy из libc. Например. было отмечено здесь:

Finally, on a compiler note, __builtin_memcpy can fall back to emitting a memcpy function call.

Какова логика в этом выборе? Одинакова ли логика в других компиляторах, совместимых с gcc -, таких как clang/llvm, компилятор Intel C++, PCC, suncc (oracle studio )?

Когда я должен предпочесть использование __встроенной _memcpy вместо простой memcpy?

16
задан osgx 31 July 2012 в 19:50
поделиться