Bug in local spilling code

Bernd Schmidt crux@pool.informatik.rwth-aachen.de
Thu Oct 29 15:16:00 GMT 1998


On Thu, 29 Oct 1998, Richard Henderson wrote:

> On Wed, Oct 28, 1998 at 10:48:09AM +0100, Bernd Schmidt wrote:
> > WIth this patch, the actual nonlocal goto performs better, but the setup
> > overhead in the function containing the nonlocal label is increased.
> > Functions that only contain one or two nonlocal labels should benefit from
> > this change; this is less likely for functions that have more such labels.
> 
> We can reduce that by not tucking those labels into memory.  That also
> gives us the oppurtunity to turn them into direct jumps on those machines
> that can jump "arbitrarily" far.

The problem is that the handler which needs to be called can change during
the execution of the function that has the nonlocal label.  See
stmt.c:expand_end_bindings, it changes the handler slot for every block
that has cleanups and/or a stack level.
For functions that have neither, we could optimize this, but we generate rtl
too early to know whether we are going to need the handler addresses in
memory.

Bernd




More information about the Gcc-patches mailing list