Exception handling docs: Clarify how the llvm.eh.* intrinsics are used
authorMark Seaborn <mseaborn@chromium.org>
Fri, 28 Mar 2014 17:08:57 +0000 (17:08 +0000)
committerMark Seaborn <mseaborn@chromium.org>
Fri, 28 Mar 2014 17:08:57 +0000 (17:08 +0000)
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

index 6a05eea5dac45e3a8f1ae44b6943b72ee523a0c7..64edca786ab56b556b37ffaa8ac72935f6fcf6a8 100644 (file)
@@ -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