On Mon, 21 Sep 2015, Daniel Gutson wrote:

This is derived from https://gcc.gnu.org/ml/gcc-help/2015-03/msg00091.html

Currently, gcc provides an optimization that transforms a call to
malloc and a call to memset into a call to calloc.
This is fine except when it takes place within the calloc() function
implementation itself, causing a recursive call.
Two alternatives have been proposed: -fno-malloc-builtin and disable
optimizations in calloc().
I think the former is suboptimal since it affects all the code just
because of the implementation of one function (calloc()),
whereas the latter is suboptimal too since it disables the
optimizations in the whole function (calloc too).
I think of two alternatives: either make -fno-calloc-builtin to
disable the optimization, or make the optimization aware of the
function context where it is operating and prevent it to do the
transformation if the function is calloc().

Please help me to find the best alternative so we can implent it.

You may want to read this PR for more context

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888#c27

--
Marc Glisse

Reply via email to