Skip to content
  1. Mar 10, 2010
    • Dan Gohman's avatar
      Fix a comment. · b7e0b874
      Dan Gohman authored
      llvm-svn: 98122
      b7e0b874
    • Jakob Stoklund Olesen's avatar
      Try to keep the cached inliner costs around for a bit longer for big functions. · b495cad7
      Jakob Stoklund Olesen authored
      The Caller cost info would be reset everytime a callee was inlined. If the
      caller has lots of calls and there is some mutual recursion going on, the
      caller cost info could be calculated many times.
      
      This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
      small function calls.
      
      This is a more conservative version of r98089 that doesn't break the clang
      test CodeGenCXX/temp-order.cpp. That test relies on rather extreme inlining
      for constant folding.
      
      llvm-svn: 98099
      b495cad7
  2. Mar 09, 2010
  3. Mar 08, 2010
  4. Mar 06, 2010
  5. Mar 05, 2010
  6. Mar 03, 2010
    • Dan Gohman's avatar
      Make SCEVExpander and LSR more aggressive about hoisting expressions out · 29707de4
      Dan Gohman authored
      of loops.
      
      llvm-svn: 97642
      29707de4
    • Bill Wendling's avatar
      This test case: · af13d829
      Bill Wendling authored
      long test(long x) { return (x & 123124) | 3; }
      
      Currently compiles to:
      
      _test:
              orl     $3, %edi
              movq    %rdi, %rax
              andq    $123127, %rax
              ret
      
      This is because instruction and DAG combiners canonicalize
      
        (or (and x, C), D) -> (and (or, D), (C | D))
      
      However, this is only profitable if (C & D) != 0. It gets in the way of the
      3-addressification because the input bits are known to be zero.
      
      llvm-svn: 97616
      af13d829
  7. Mar 02, 2010
  8. Mar 01, 2010
  9. Feb 28, 2010
  10. Feb 27, 2010
  11. Feb 26, 2010
Loading