move some code around so that Verifier.cpp can get access to the intrinsic info table.
[oota-llvm.git] / docs / ExceptionHandling.html
index 06cb2cf81978c16961662a003723409f581ede8e..ae0fa513ccdfd63b3952031ef585a1ac0c6177dd 100644 (file)
@@ -6,7 +6,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <meta name="description"
         content="Exception Handling in LLVM.">
-  <link rel="stylesheet" href="llvm.css" type="text/css">
+  <link rel="stylesheet" href="_static/llvm.css" type="text/css">
 </head>
 
 <body>
@@ -38,7 +38,6 @@
        <li><a href="#llvm_eh_sjlj_longjmp"><tt>llvm.eh.sjlj.longjmp</tt></a></li>
        <li><a href="#llvm_eh_sjlj_lsda"><tt>llvm.eh.sjlj.lsda</tt></a></li>
        <li><a href="#llvm_eh_sjlj_callsite"><tt>llvm.eh.sjlj.callsite</tt></a></li>
-       <li><a href="#llvm_eh_sjlj_dispatchsetup"><tt>llvm.eh.sjlj.dispatchsetup</tt></a></li>
   </ol></li>
   <li><a href="#asm">Asm Table Formats</a>
   <ol>
@@ -50,7 +49,7 @@
 </tr></table>
 
 <div class="doc_author">
-  <p>Written by <a href="mailto:jlaskey@mac.com">Jim Laskey</a></p>
+  <p>Written by the <a href="http://llvm.org/">LLVM Team</a></p>
 </div>
 
 
    and <i>filter</i> clauses. The exception is tested against the clauses
    sequentially from first to last. The selector value is a positive number if
    the exception matched a type info, a negative number if it matched a filter,
-   and zero if it matched to a cleanup. If nothing is matched, the behavior of
+   and zero if it matched a cleanup. If nothing is matched, the behavior of
    the program is <a href="#restrictions">undefined</a>. If a type info matched,
    then the selector value is the index of the type info in the exception table,
    which can be obtained using the
    determine the index for a given type info. If the catch fails to match the
    selector then control is passed on to the next catch.</p>
 
-<p><b>Note:</b> Since the landing pad will not be used if there is no match in
-   the list of type info on the call to the <tt>landingpad</tt> instruction,
-   then neither the last catch nor <i>catch all</i> need to perform the check
-   against the selector.</p>
-
 <p>Finally, the entry and exit of catch code is bracketed with calls to
    <tt>__cxa_begin_catch</tt> and <tt>__cxa_end_catch</tt>.</p>
 
 <div>
 
 <p>The unwinder delegates the decision of whether to stop in a call frame to
-   that call frame's language-specific personality function. Not all personality
-   functions guarantee that they will stop to perform cleanups. For example, the
-   GNU C++ personality function doesn't do so unless the exception is actually
-   caught somewhere further up the stack. When using this personality to
-   implement EH for a language that guarantees that cleanups will always be run
-   (e.g. Ada), be sure to indicate a catch-all in the
-   <a href="LangRef.html#i_landingpad"><tt>landingpad</tt> instruction</a>
-   rather than just cleanups.</p>
+   that call frame's language-specific personality function. Not all unwinders
+   guarantee that they will stop to perform cleanups. For example, the GNU C++
+   unwinder doesn't do so unless the exception is actually caught somewhere
+   further up the stack.</p>
 
 <p>In order for inlining to behave correctly, landing pads must be prepared to
    handle selector results that they did not originally advertise. Suppose that
 
 </div>
 
-<!-- ======================================================================= -->
-<h4>
-  <a name="llvm_eh_sjlj_dispatchsetup">llvm.eh.sjlj.dispatchsetup</a>
-</h4>
-
-<div>
-
-<pre>
-  void @llvm.eh.sjlj.dispatchsetup(i32 %dispatch_value)
-</pre>
-
-<p>For SJLJ based exception handling, the <tt>llvm.eh.sjlj.dispatchsetup</tt>
-   intrinsic is used by targets to do any unwind edge setup they need. By
-   default, no action is taken.</p>
-
-</div>
-
 </div>
 
 <!-- ======================================================================= -->
   <a href="http://validator.w3.org/check/referer"><img
   src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
 
-  <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
   Last modified: $Date$
 </address>