On Mon, 19 Mar 2012, Steven Bosscher wrote:

> On Mon, Mar 19, 2012 at 4:41 PM, Richard Guenther <rguent...@suse.de> wrote:
> > Comments?
> 
> What does rtl_eh do for no-SJLJ exceptions?

Quoting from except.c

'Then, via finish_eh_generation, we generate the real landing pads
   to which the runtime will actually transfer control.  These new
   landing pads perform whatever bookkeeping is needed by the target
   backend in order to resume execution within the current function.
   Each of these new landing pads falls through into the post_landing_pad
   label which had been used within the CFG up to this point.  All
   exception edges within the CFG are redirected to the new landing pads.
   If the target uses setjmp to implement exceptions, the various extra
   calls into the runtime to register and unregister the current stack
   frame are emitted at this time.'

> Have you tested with SJLJ exceptions? (Can/should we move that code to 
> GIMPLE?)

No.  The only thing that changes is the time when we call 
fixup_tail_calls, otherwise the patch should be a no-op basically
hiding the inconsistent state during the piecewise RTL expansion
from the pass manager.

Richard.

Reply via email to