This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: calloc = malloc + memset
- From: Andi Kleen <andi at firstfloor dot org>
- To: Marc Glisse <marc dot glisse at inria dot fr>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 23 Jun 2014 11:17:47 -0700
- Subject: Re: calloc = malloc + memset
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot DEB dot 2 dot 02 dot 1402282337290 dot 27023 at stedding dot saclay dot inria dot fr>
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