Skip to content
  1. Dec 25, 2007
    • Chris Lattner's avatar
      Don't break critical edges for single-bb loops, this helps with PR1877, though · ef1bbfc7
      Chris Lattner authored
      it is only a partial fix.  This change is noise for most programs, but
      speeds up Shootout-C++/matrix by 20%, Ptrdist/ks by 24%, smg2000 by 8%,
      hexxagon by 9%, bzip2 by 9% (not sure I trust this), ackerman by 13%, etc.
      
      OTOH, it slows down Shootout/fib2 by 40% (I'll update PR1877 with this info).
      
      llvm-svn: 45354
      ef1bbfc7
    • Gordon Henriksen's avatar
      GC poses hazards to the inliner. Consider: · b969c598
      Gordon Henriksen authored
          define void @f() {
                  ...
                  call i32 @g()
                  ...
          }
      
          define void @g() {
                  ...
          }
      
      The hazards are:
      
        - @f and @g have GC, but they differ GC. Inlining is invalid. This
          may never occur.
        - @f has no GC, but @g does. g's GC must be propagated to @f.
      
      The other scenarios are safe:
      
        - @f and @g have the same GC.
        - @f and @g have no GC.
        - @g has no GC.
      
      This patch adds inliner checks for the former two scenarios.
      
      llvm-svn: 45351
      b969c598
  2. Dec 24, 2007
  3. Dec 22, 2007
  4. Dec 21, 2007
    • Duncan Sands's avatar
      Make DAE not wipe out attributes on calls, and not drop · 6a7703ed
      Duncan Sands authored
      return attributes on the floor.  In the case of a call
      to a varargs function where the varargs arguments are
      being removed, any call attributes on those arguments
      need to be dropped.  I didn't do this because I plan to
      make it illegal to have such attributes (see next patch).
      With this change, compiling the gcc filter2 eh test at -O0
      and then running opt -std-compile-opts on it results in
      a correctly working program (compiling at -O1 or higher
      results in the test failing due to a problem with how we
      output eh info into the IR).
      
      llvm-svn: 45285
      6a7703ed
  5. Dec 20, 2007
  6. Dec 19, 2007
  7. Dec 18, 2007
  8. Dec 17, 2007
  9. Dec 16, 2007
    • Duncan Sands's avatar
      Revert this part of r45073 until the verifier is · 56ed4803
      Duncan Sands authored
      changed not to reject invoke of inline asm.
      
      llvm-svn: 45077
      56ed4803
    • Duncan Sands's avatar
      Make instcombine promote inline asm calls to 'nounwind' · 8e4847ee
      Duncan Sands authored
      calls.  Remove special casing of inline asm from the
      inliner.  There is a potential problem: the verifier
      rejects invokes of inline asm (not sure why).  If an
      asm call is not marked "nounwind" in some .ll, and
      instcombine is not run, but the inliner is run, then
      an illegal module will be created.  This is bad but
      I'm not sure what the best approach is.  I'm tempted
      to remove the check in the verifier...
      
      llvm-svn: 45073
      8e4847ee
  10. Dec 13, 2007
  11. Dec 12, 2007
  12. Dec 10, 2007
  13. Dec 08, 2007
  14. Dec 06, 2007
  15. Dec 03, 2007
Loading