On 5/13/19 10:49 AM, Jakub Jelinek wrote:
On Mon, May 13, 2019 at 10:36:00AM -0600, Martin Sebor wrote:
On 5/11/19 5:33 PM, Marc Glisse wrote:
Hello,

this patch lets gcc know that if a pointer existed before the call to
malloc, the result of malloc cannot alias it. This is a bit ad hoc and
fragile. A small improvement would be, when the 2 statements are in the
same bb but in the wrong order, to check if there is any statement in
between that might prevent from reordering them. But that's more
complicated, and the patch as it is already does help.

I.e., given the description of attribute malloc:

   the pointer P returned by the function cannot alias any other
   pointer valid when the function returns, and moreover no pointers
   to valid objects occur in any storage addressed by P.

doesn't the same guarantee hold for other functions declared with
the attribute (so that the same optimization could be applied to
them as well)?

Doesn't realloc have also the malloc attribute, but the return value can
alias preexisting pointers (if no reallocation occurs, just the allocation
is extended)?

Realloc doesn't have the malloc attribute.

Martin

Reply via email to