Skip to content
  1. Apr 22, 2008
    • Chris Lattner's avatar
      remove dead code. · 8fb13cbe
      Chris Lattner authored
      llvm-svn: 50080
      8fb13cbe
    • Chris Lattner's avatar
      optimize "p != gep p, ..." better. This allows us to compile · c3a43935
      Chris Lattner authored
      getelementptr-seteq.ll into:
      
      define i1 @test(i64 %X, %S* %P) {
      	%C = icmp eq i64 %X, -1		; <i1> [#uses=1]
      	ret i1 %C
      }
      
      instead of:
      
      define i1 @test(i64 %X, %S* %P) {
      	%A.idx.mask = and i64 %X, 4611686018427387903		; <i64> [#uses=1]
      	%C = icmp eq i64 %A.idx.mask, 4611686018427387903		; <i1> [#uses=1]
      	ret i1 %C
      }
      
      And fixes the second half of PR2235.  This speeds up the insertion sort
      case by 45%, from 1.12s to 0.77s.  In practice, this will significantly
      speed up for loops structured like:
      
      for (double *P = Base + N; P != Base; --P)
        ...
      
      Which happens frequently for C++ iterators.
      
      llvm-svn: 50079
      c3a43935
    • Chris Lattner's avatar
      more fallout from Nicholas' asmprinter patch. · ff834c0c
      Chris Lattner authored
      llvm-svn: 50078
      ff834c0c
    • Dan Gohman's avatar
      Implement an x86-64 ABI detail of passing structs by hidden first · f166d2d0
      Dan Gohman authored
      argument. The x86-64 ABI requires the incoming value of %rdi to
      be copied to %rax on exit from a function that is returning a
      large C struct.
      
      Also, add a README-X86-64 entry detailing the missed optimization
      opportunity and proposing an alternative approach.
      
      llvm-svn: 50075
      f166d2d0
  2. Apr 21, 2008
  3. Apr 20, 2008
Loading