3 ms·
The compiler can optimize memcpy with a known size into a small number of move instructions so they are identical to copying stack values. Try playing with mem
by kccqzy 4y ago
The compiler can optimize memcpy with a known size into a small number of move instructions so they are identical to copying stack values.
Try playing with memcpy on Godbolt and you'll find that the compiler will compile the memcpy to a single mov instruction when the size is small, and some movdqu/movups when the size is slightly large, and only a function call when the size is huge.
> memcpy is usually used to copy heap memory
memcpy is often used in low-level serialization / deserialization code since you can't just cast a buffer pointer to a uint32_t pointer and dereference that; the solution is memcpy between variables that are often both on the stack.