[LLVMdev] RFC: Replace __cxa_begin_catch/__cxa_end_catch with intrinsics

John McCall
2015-02-03T03:23:40Z

> On Feb 2, 2015, at 5:39 PM, Kaylor, Andrew <andrew.kaylor at
intel.com> wrote:
> Hi John,
>
> Thanks for the feedback.
>
> I'm fine not using the proposed intrinsics everywhere.  It just seemed
to me like a reasonable step since the back end is already taking a fair bit of
action based on the personality function.  Also, if I do introduce the
intrinsics for one target/personality function it seems like it may be a source
of confusion when other targets don't use them.  I suppose that is easily
enough solved with proper documentation though.  Perhaps I can even drop a
"win" in the name somewhere.

Well, don’t make them deliberately unportable. :)  The g++ personality doesn’t
use subfunction extraction, but at some point I’d like to switch to a
personality which does, mostly in the interests of code size.  I would just
encourage you to design these intrinsics specifically around the problems of
personality-directed subfunction extraction, and understand that you’re going to
end up hardcoding a lot of Windows-specific behavior whether you mean to or not.
We can figure out how to make them more general when we have multiple
personalities that need subfunction extraction.

> To be clear, are you OK with introducing these intrinsics for
WinEH+__CxxFrameHandler3 personality function use?

Yes.

John.