From e2591680b4dd3cc04c3d4c9c6ef657352ccf4405 Mon Sep 17 00:00:00 2001 From: Mark Seaborn Date: Fri, 28 Mar 2014 17:08:57 +0000 Subject: Exception handling docs: Clarify how the llvm.eh.* intrinsics are used The non-SJLJ and SJLJ intrinsics are generated by the frontend and backend respectively. Differential Revision: http://llvm-reviews.chandlerc.com/D3010 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205017 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ExceptionHandling.rst | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'docs/ExceptionHandling.rst') diff --git a/docs/ExceptionHandling.rst b/docs/ExceptionHandling.rst index 6a05eea5da..64edca786a 100644 --- a/docs/ExceptionHandling.rst +++ b/docs/ExceptionHandling.rst @@ -327,10 +327,19 @@ This intrinsic returns the type info index in the exception table of the current function. This value can be used to compare against the result of ``landingpad`` instruction. The single argument is a reference to a type info. +Uses of this intrinsic are generated by the C++ front-end. + +SJLJ Intrinsics +--------------- + +The ``llvm.eh.sjlj`` intrinsics are used internally within LLVM's +backend. Uses of them are generated by the backend's +``SjLjEHPrepare`` pass. + .. _llvm.eh.sjlj.setjmp: ``llvm.eh.sjlj.setjmp`` ------------------------ +~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: llvm @@ -352,7 +361,7 @@ available for use in a target-specific manner. .. _llvm.eh.sjlj.longjmp: ``llvm.eh.sjlj.longjmp`` ------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: llvm @@ -365,7 +374,7 @@ pointer are restored from the buffer, then control is transferred to the destination address. ``llvm.eh.sjlj.lsda`` ---------------------- +~~~~~~~~~~~~~~~~~~~~~ .. code-block:: llvm @@ -377,7 +386,7 @@ function. The SJLJ front-end code stores this address in the exception handling function context for use by the runtime. ``llvm.eh.sjlj.callsite`` -------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: llvm -- cgit v1.2.3