calloc = malloc + memset
Andi Kleen
andi@firstfloor.org
Mon Jun 23 18:20:00 GMT 2014
Marc Glisse <marc.glisse@inria.fr> writes:
> Hello,
>
> this is a stage 1 patch, and I'll ping it then, but if you have
> comments now...
FWIW i believe the transformation will break a large variety of micro benchmarks.
calloc internally knows that memory fresh from the OS is zeroed.
But the memory may not be faulted in yet.
memset always faults in the memory.
So if you have some test like
buf = malloc(...)
memset(buf, ...)
start = get_time();
... do something with buf
end = get_time()
Now the times will be completely off because the measured times includes
the page faults.
-Andi
--
ak@linux.intel.com -- Speaking for myself only
More information about the Gcc-patches
mailing list