This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Optimizing of explicit temporary storage
Mark Mitchell <mark@codesourcery.com> writes:
> Florian Weimer wrote:
>
> >* Mark Mitchell:
> >
> >
> >>I don't think any compiler has ever attempted to turn:
> >>
> >> free (malloc (16));
> >>
> >>into a no-op, which would be a simpler case.
> >>
> >
> >There are scheme compilers that turn heap allocation into stack
> >allocation if they can prove that the object does not escape.
> >Java code would benefit from this optimization, too.
> >
> Yes, but that's rather a different situation due to the nature of Scheme.
>
> In C, even given just:
>
> (void) malloc(16);
>
> it would be surprising to most programmers to optimize away the call
> because malloc *does* have side-effects on real systems. For example,
> on UNIX, it is likely to call sbrk, which result in observable changes
> in the process state.
Well, yes, but
int x[65536];
also results in observable changes in the process state, and we don't
hesitate to optimise it away.