Skip to content
  1. Sep 20, 2011
    • Bill Wendling's avatar
      Update the EH doc to reflect the new EH model. · 01161845
      Bill Wendling authored
      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.
      
      llvm-svn: 140128
      01161845
  2. May 28, 2011
    • John McCall's avatar
      Implement and document the llvm.eh.resume intrinsic, which is · 046c47e9
      John McCall authored
      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.
      
      llvm-svn: 132253
      046c47e9
  3. Apr 23, 2011
  4. Apr 19, 2011
  5. Apr 15, 2011
  6. Apr 09, 2011
  7. Dec 10, 2010
  8. Oct 20, 2010
  9. May 28, 2010
  10. May 26, 2010
  11. May 07, 2010
    • mike-m's avatar
      Revert r103213. It broke several sections of live website. · f375e9a0
      mike-m authored
      llvm-svn: 103219
      f375e9a0
    • mike-m's avatar
      Overhauled llvm/clang docs builds. Closes PR6613. · e08af303
      mike-m authored
      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.
      
      llvm-svn: 103213
      e08af303
  12. Jan 28, 2010
  13. Oct 14, 2009
    • Duncan Sands's avatar
      I don't see any point in having both eh.selector.i32 and eh.selector.i64, · 8e6ccb65
      Duncan Sands authored
      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).
      
      llvm-svn: 84106
      8e6ccb65
  14. Sep 11, 2009
  15. Sep 09, 2009
  16. Aug 22, 2009
  17. Aug 17, 2009
  18. Aug 15, 2009
  19. Aug 11, 2009
    • Jim Grosbach's avatar
      SjLj based exception handling unwinding support. This patch is nasty, brutish · 693e36a3
      Jim Grosbach authored
      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.
      
      llvm-svn: 78625
      693e36a3
  20. Aug 05, 2009
  21. May 14, 2009
  22. Dec 29, 2008
  23. Dec 11, 2008
  24. Sep 22, 2007
  25. Sep 07, 2007
  26. Aug 27, 2007
    • Duncan Sands's avatar
      There is an impedance matching problem between LLVM and · ef5a6542
      Duncan Sands authored
      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).
      
      llvm-svn: 41484
      ef5a6542
  27. Jul 04, 2007
  28. Apr 16, 2007
  29. Apr 14, 2007
  30. Mar 30, 2007
  31. Mar 14, 2007
Loading