X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FExceptionHandling.rst;h=64edca786ab56b556b37ffaa8ac72935f6fcf6a8;hb=3bc8b4b38b32ecf6c012c5168e57f422ab428863;hp=43aa1aea470175c58bbb3df7f1b5890b3874f925;hpb=95e97303108b97189311455ec29e389727010b2e;p=oota-llvm.git diff --git a/docs/ExceptionHandling.rst b/docs/ExceptionHandling.rst index 43aa1aea470..64edca786ab 100644 --- a/docs/ExceptionHandling.rst +++ b/docs/ExceptionHandling.rst @@ -142,7 +142,7 @@ continuation points: #. where to continue if the call raises an exception, either by a throw or the unwinding of a throw -The term used to define a the place where an ``invoke`` continues after an +The term used to define the place where an ``invoke`` continues after an exception is called a *landing pad*. LLVM landing pads are conceptually alternative function entry points where an exception structure reference and a type info index are passed in as arguments. The landing pad saves the exception @@ -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