Optimizing of explicit temporary storage

Geoffrey Keating geoffk@geoffk.org
Wed Oct 13 02:27:00 GMT 2004


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.



More information about the Gcc mailing list