This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Bug in local spilling code


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]