[LLVMdev] RFC: Exception Handling Rewrite
Andrew Trick
atrick at apple.com
Fri Aug 5 11:06:21 PDT 2011
On Aug 5, 2011, at 10:57 AM, Peter Lawrence wrote:
> However it seems that if a landingpad-block has multiple predecessors (often the case,
> multiple InvokeInst in the main body of a try-statement all go to the same landingpad-
> block), then you cannot move the LandingpadInst in order to break a critical edge unless
> you do it for _all_ landingpad-block predecessor edges simultaneously, but that seems
> to be a messy conclusion (being forced to split other edges that don't need to be split).
>
>
> my first guess is that all the nuances of whether it ever makes sense and/or is even
> logically possible to split a critical landingpad-edge won't be discovered except by
> painful trial-and-error, and that it might be best to at first disallow it until proven doable
> by someone working in an isolated branch -- although proving it works may be difficult,
> since so little code actually uses exceptions (only TableGen in llvm ?).
Peter,
I think this will be done lazily to avoid excessive splitting as in:
Call1 -> LP
Call2 -> LP
Call3 -> LP
=> split Call1
Call1 -> LP-split -> LP-remainder
Call2 -> LP-split-merge -> LP-remainder
Call3 -> LP-split-merge -> LP-remainder
But John will know best.
-Andy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110805/d164804f/attachment.html>
More information about the llvm-dev
mailing list