avoiding recursive calls of calloc due to optimization
Marc Glisse
marc.glisse@inria.fr
Mon Sep 21 18:33:00 GMT 2015
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
More information about the Gcc
mailing list