My commit message got jumbled (on my side).  In the correct order this time:

On Jul 5, 2010, at 6:34 PM, John McCall wrote:
> Reimplement how clang generates IR for exceptions.  Instead of creating new
> invoke destinations which sequentially chain to the previous destination,
> push a more semantic representation of *why* we need the cleanup/catch/filter
> behavior, then collect that information into a single landing pad upon 
> request.
> 
> Also reorganizes how normal cleanups (i.e. cleanups triggered by 
> non-exceptional
> control flow) are generated, since it's actually fairly closely tied in with
> the former.  Remove the need to track which cleanup scope a block is 
> associated
> with.
> 
> Document a lot of previously poorly-understood (by me, at least) behavior.
> 
> The new framework implements the Horrible Hack (tm), which requires every
> landing pad to have a catch-all so that inlining will work.  Clang no longer
> requires the Horrible Hack just to make exceptions flow correctly within
> a function, however.  The HH is an unfortunate requirement of LLVM's EH IR.
> 
> Validated by nightly-test runs on x86 and x86-64 darwin, including after
> self-host.  Hopefully these results hold up on different platforms.  
> 
> I tried to keep the GNU ObjC runtime happy, but it's hard for me to test.

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to