aboutsummaryrefslogtreecommitdiff
path: root/docs/ExceptionHandling.html
AgeCommit message (Collapse)Author
2012-06-27Sphinxify the exception handling doc.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159254 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-19[docs] Update HTML pages to refer to CSS in a way that works locally and ↵Daniel Dunbar
with Sphinx. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155153 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27llvm/docs/*.html: Fix markups.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153508 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28Remove dead llvm.eh.sjlj.dispatchsetup intrinsic.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145263 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27fix some out-of-date attribution.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145197 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-27Remove incorrect passage.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140631 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-27Remove some not-really-correct wording.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140600 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-26Fix grammar.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140564 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-26Remove dead table entry.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140563 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-26Some minor (and more involved) cleanups. No real context changes.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140561 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20Remove some missed references to dead intrinsics.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140129 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20Update the EH doc to reflect the new EH model.Bill Wendling
This basically involved removing references to llvm.eh.exception, llvm.eh.selector, and llvm.eh.resume and replacing them with references to the landingpad and resume instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140128 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Implement and document the llvm.eh.resume intrinsic, which isJohn McCall
transformed by the inliner into a branch to the enclosing landing pad (when inlined through an invoke). If not so optimized, it is lowered DWARF EH preparation into a call to _Unwind_Resume (or _Unwind_SjLj_Resume as appropriate). Its chief advantage is that it takes both the exception value and the selector value as arguments, meaning that there is zero effort in recovering these; however, the frontend is required to pass these down, which is not actually particularly difficult. Also document the behavior of landing pads a bit better, and make it clearer that it's okay that personality functions don't always land at landing pads. This is just a fact of life. Don't write optimizations that rely on pushing things over an unwind edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132253 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-23docs: Introduce cascading style <div> and <p> continued on <h[2-5]>.NAKAMURA Takumi
<h2>Section Example</h2> <div> <!-- h2+div is applied --> <p>Section preamble.</p> <h3>Subsection Example</h3> <p> <!-- h3+p is applied --> Subsection body </p> <!-- End of section body --> </div> FIXME: Care H5 better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130040 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18docs: Use <Hn> as Heading elements instead of <DIV class="doc_foo">.NAKAMURA Takumi
H1 ... doc_title H2 ... doc_section H3 ... doc_subsection H4 ... doc_subsubsection git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129736 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15Fix a ton of comment typos found by codespell. Patch byChris Lattner
Luis Felipe Strano Moraes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-09docs: Canonicalize URLs.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129181 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-09Fix the prototype for the llvm.eh.selector intrinsic.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121425 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19Add a pre-dispatch SjLj EH hook on the unwind edge for targets to do anyJim Grosbach
setup they require. Use this for ARM/Darwin to rematerialize the base pointer from the frame pointer when required. rdar://8564268 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116879 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Fix whitespace to be more consistent with AsmPrinter's style.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104962 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-26Add entry for llvm.eh.sjlj.longjmp. PR4999.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104703 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Revert r103213. It broke several sections of live website.mike-m
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103219 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-06Overhauled llvm/clang docs builds. Closes PR6613.mike-m
NOTE: 2nd part changeset for cfe trunk to follow. *** PRE-PATCH ISSUES ADDRESSED - clang api docs fail build from objdir - clang/llvm api docs collide in install PREFIX/ - clang/llvm main docs collide in install - clang/llvm main docs have full of hard coded destination assumptions and make use of absolute root in static html files; namely CommandGuide tools hard codes a website destination for cross references and some html cross references assume website root paths *** IMPROVEMENTS - bumped Doxygen from 1.4.x -> 1.6.3 - splits llvm/clang docs into 'main' and 'api' (doxygen) build trees - provide consistent, reliable doc builds for both main+api docs - support buid vs. install vs. website intentions - support objdir builds - document targets with 'make help' - correct clean and uninstall operations - use recursive dir delete only where absolutely necessary - added call function fn.RMRF which safeguards against botched 'rm -rf'; if any target (or any variable is evaluated) which attempts to remove any dirs which match a hard-coded 'safelist', a verbose error will be printed and make will error-stop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103213 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-28Update of 94055 to track the IR level call site information via an intrinsic.Jim Grosbach
This allows code gen and the exception table writer to cooperate to make sure landing pads are associated with the correct invoke locations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94726 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-14I don't see any point in having both eh.selector.i32 and eh.selector.i64,Duncan Sands
so get rid of eh.selector.i64 and rename eh.selector.i32 to eh.selector. Likewise for eh.typeid.for. This aligns us with gcc, which always uses a 32 bit value for the selector on all platforms. My understanding is that the register allocator used to assert if the selector intrinsic size didn't match the pointer size, and this was the reason for introducing the two variants. However my testing shows that this is no longer the case (I fixed some bugs in selector lowering yesterday, and some more today in the fastisel path; these might have caused the original problems). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84106 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-10Fix validation errors.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81466 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-10Fix validation errors.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81465 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09Correct __cxa_end_catch documentation to reflect that it doesn't take any ↵Eric Christopher
arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81307 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22Add basic information about SJLJ EHJim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79714 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17Remove a bit more cruft from the sjlj moving to a backend pass.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79272 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15Fix validation errors.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79131 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15Fix validation errors.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79130 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15Reformatting and some cleanup.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79088 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11SjLj based exception handling unwinding support. This patch is nasty, brutishJim Grosbach
and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-05Documentation: fix HTML validation errors.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78196 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-14clean up line-wrappingJim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71771 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-14Update the names of the exception handling sjlj instrinsics toJim Grosbach
llvm.eh.sjlj.* for better clarity as to their purpose and scope. Add a description of llvm.eh.sjlj.setjmp to ExceptionHandling.html. (llvm.eh.sjlj.longjmp documentation coming when that implementation is added). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71758 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-29Clarify a bit. Based on feedback by Talin.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61470 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-11Global replace of yellow W3C "valid HTML/CSS" icons with blue ones.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60880 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-22Validation fixesBill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42232 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-07Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is ↵Anton Korobeynikov
needed, because they just "mark" register liveins and we let frontend solve type issue, not lowering code :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41763 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-27There is an impedance matching problem between LLVM andDuncan Sands
gcc exception handling: if an exception unwinds through an invoke, then execution must branch to the invoke's unwind target. We previously tried to enforce this by appending a cleanup action to every selector, however this does not always work correctly due to an optimization in the C++ unwinding runtime: if only cleanups would be run while unwinding an exception, then the program just terminates without actually executing the cleanups, as invoke semantics would require. I was hoping this wouldn't be a problem, but in fact it turns out to be the cause of all the remaining failures in the LLVM testsuite (these also fail with -enable-correct-eh-support, so turning on -enable-eh didn't make things worse!). Instead we need to append a full-blown catch-all to the end of each selector. The correct way of doing this depends on the personality function, i.e. it is language dependent, so can only be done by gcc. Thus this patch which generalizes the eh.selector intrinsic so that it can handle all possible kinds of action table entries (before it didn't accomodate cleanups): now 0 indicates a cleanup, and filters have to be specified using the number of type infos plus one rather than the number of type infos. Related gcc patches will cause Ada to pass a cleanup (0) to force the selector to always fire, while C++ will use a C++ catch-all (null). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41484 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-04Extend eh.selector to support both catches and filters.Duncan Sands
Drop the eh.filter intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37875 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16Fix typos.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36124 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-14Correct typo.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35989 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-30Various hopefully correct easy fixes.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35506 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-14First draft of exception handling doc.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35100 91177308-0d34-0410-b5e6-96231b3b80d8