Skip to content
  1. Jun 08, 2007
  2. Jun 07, 2007
  3. Jun 06, 2007
  4. Jun 05, 2007
  5. Jun 04, 2007
  6. Jun 02, 2007
    • Duncan Sands's avatar
      The semantics of invoke require that we always jump to the unwind block · f708f73a
      Duncan Sands authored
      (landing pad) when an exception unwinds through the call.  This doesn't
      quite match the way the dwarf unwinder works: by default it only jumps to
      the landing pad if the catch or filter specification matches, and otherwise
      it keeps on unwinding.  There are two ways of specifying to the unwinder
      that it should "always" (more on why there are quotes here later) jump to
      the landing pad: follow the specification by a 0 typeid, or follow it by
      the typeid for the NULL typeinfo.  GCC does the first, and this patch makes
      LLVM do the same as gcc.  However there is a problem: the unwinder performs
      optimizations based on C++ semantics (it only expects destructors to be
      run if the 0 typeid fires - known as "cleanups"), meaning it assumes that no
      exceptions will be raised and that the raised exception will be reraised
      at the end of the cleanup code.  So if someone writes their own LLVM code
      using the exception intrinsics they will get a nasty surprise if they don't
      follow these rules.  The other possibility of using the typeid corresponding
      to NULL (catch-all) causes the unwinder to make no assumptions, so this is
      probably what we should use in the long-run.  However since we are still
      having trouble getting exception handling working properly, for the moment
      it seems best to closely imitate GCC.
      
      llvm-svn: 37399
      f708f73a
    • Duncan Sands's avatar
      Integrate exception filter support and exception catch support. This · c063f5f3
      Duncan Sands authored
      simplifies the code in DwarfWriter, allows for multiple filters and
      makes it trivial to specify filters accompanied by cleanups or catch-all
      specifications (see next patch).  What a deal!  Patch blessed by Anton.
      
      llvm-svn: 37398
      c063f5f3
    • Zhou Sheng's avatar
      Make LowerCTPOP() support arbitrary bitwidth integer type. · 0a0ae932
      Zhou Sheng authored
      llvm-svn: 37397
      0a0ae932
    • Dale Johannesen's avatar
      6e7cdce7
    • Dale Johannesen's avatar
      9746e3a2
    • Dale Johannesen's avatar
      Implement smarter algorithm for choosing which blocks to tail-merge. · 3c0a1376
      Dale Johannesen authored
      See test/CodeGen/X86/test-pic-jtbl.ll for a case where it works well;
      shaves another 10K off our favorite benchmark.  I was hesitant about
      this because of compile speed, but seems to do OK on a bootstrap.
      
      llvm-svn: 37392
      3c0a1376
  7. Jun 01, 2007
Loading