summaryrefslogtreecommitdiff
path: root/docs/ExceptionHandling.rst
diff options
context:
space:
mode:
authorMark Seaborn <mseaborn@chromium.org>2014-03-28 17:08:57 +0000
committerMark Seaborn <mseaborn@chromium.org>2014-03-28 17:08:57 +0000
commite2591680b4dd3cc04c3d4c9c6ef657352ccf4405 (patch)
treec23835b4e4ac3c2edfb0e6f407944df377b74b69 /docs/ExceptionHandling.rst
parentb91f51161fd2f71dd16e7aa4e508bb8db889c905 (diff)
downloadllvm-e2591680b4dd3cc04c3d4c9c6ef657352ccf4405.tar.gz
llvm-e2591680b4dd3cc04c3d4c9c6ef657352ccf4405.tar.bz2
llvm-e2591680b4dd3cc04c3d4c9c6ef657352ccf4405.tar.xz
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
Diffstat (limited to 'docs/ExceptionHandling.rst')
-rw-r--r--docs/ExceptionHandling.rst17
1 files changed, 13 insertions, 4 deletions
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