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
llvm-svn: 205017
diff --git a/llvm/docs/ExceptionHandling.rst b/llvm/docs/ExceptionHandling.rst
index 6a05eea..64edca7 100644
--- a/llvm/docs/ExceptionHandling.rst
+++ b/llvm/docs/ExceptionHandling.rst
@@ -327,10 +327,19 @@
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 @@
.. _llvm.eh.sjlj.longjmp:
``llvm.eh.sjlj.longjmp``
-------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: llvm
@@ -365,7 +374,7 @@
destination address.
``llvm.eh.sjlj.lsda``
----------------------
+~~~~~~~~~~~~~~~~~~~~~
.. code-block:: llvm
@@ -377,7 +386,7 @@
function context for use by the runtime.
``llvm.eh.sjlj.callsite``
--------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: llvm