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
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.