summaryrefslogtreecommitdiff
path: root/docs/Passes.html
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-08-03 22:18:20 +0000
committerBill Wendling <isanbard@gmail.com>2011-08-03 22:18:20 +0000
commit2626dba9c5515d2e534c117bb16ceb03dd4d0930 (patch)
treebcb8a124d8e55520c15a83e34a9762d4f9b73fbb /docs/Passes.html
parent56cb3e3ccbc766086841d04fb8f136c7b4718dd5 (diff)
downloadllvm-2626dba9c5515d2e534c117bb16ceb03dd4d0930.tar.gz
llvm-2626dba9c5515d2e534c117bb16ceb03dd4d0930.tar.bz2
llvm-2626dba9c5515d2e534c117bb16ceb03dd4d0930.tar.xz
Remove the LowerSetJmp pass. It wasn't used effectively by any of the targets.
This is some of my original LLVM code. *wipes tear* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136821 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/Passes.html')
-rw-r--r--docs/Passes.html30
1 files changed, 0 insertions, 30 deletions
diff --git a/docs/Passes.html b/docs/Passes.html
index b7f70b91cb..9393410a36 100644
--- a/docs/Passes.html
+++ b/docs/Passes.html
@@ -161,7 +161,6 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if !
<tr><td><a href="#loop-unswitch">-loop-unswitch</a></td><td>Unswitch loops</td></tr>
<tr><td><a href="#loweratomic">-loweratomic</a></td><td>Lower atomic intrinsics to non-atomic form</td></tr>
<tr><td><a href="#lowerinvoke">-lowerinvoke</a></td><td>Lower invoke and unwind, for unwindless code generators</td></tr>
-<tr><td><a href="#lowersetjmp">-lowersetjmp</a></td><td>Lower Set Jump</td></tr>
<tr><td><a href="#lowerswitch">-lowerswitch</a></td><td>Lower SwitchInst's to branches</td></tr>
<tr><td><a href="#mem2reg">-mem2reg</a></td><td>Promote Memory to Register</td></tr>
<tr><td><a href="#memcpyopt">-memcpyopt</a></td><td>MemCpy Optimization</td></tr>
@@ -1478,35 +1477,6 @@ if (X &lt; 3) {</pre>
<!-------------------------------------------------------------------------- -->
<h3>
- <a name="lowersetjmp">-lowersetjmp: Lower Set Jump</a>
-</h3>
-<div>
- <p>
- Lowers <tt>setjmp</tt> and <tt>longjmp</tt> to use the LLVM invoke and unwind
- instructions as necessary.
- </p>
-
- <p>
- Lowering of <tt>longjmp</tt> is fairly trivial. We replace the call with a
- call to the LLVM library function <tt>__llvm_sjljeh_throw_longjmp()</tt>.
- This unwinds the stack for us calling all of the destructors for
- objects allocated on the stack.
- </p>
-
- <p>
- At a <tt>setjmp</tt> call, the basic block is split and the <tt>setjmp</tt>
- removed. The calls in a function that have a <tt>setjmp</tt> are converted to
- invoke where the except part checks to see if it's a <tt>longjmp</tt>
- exception and, if so, if it's handled in the function. If it is, then it gets
- the value returned by the <tt>longjmp</tt> and goes to where the basic block
- was split. <tt>invoke</tt> instructions are handled in a similar fashion with
- the original except block being executed if it isn't a <tt>longjmp</tt>
- except that is handled by that function.
- </p>
-</div>
-
-<!-------------------------------------------------------------------------- -->
-<h3>
<a name="lowerswitch">-lowerswitch: Lower SwitchInst's to branches</a>
</h3>
<div>