Skip to content
  1. Jan 21, 2010
    • Dan Gohman's avatar
      Prune the search for candidate formulae if the number of register · 29916e02
      Dan Gohman authored
      operands exceeds the number of registers used in the initial
      solution, as that wouldn't lead to a profitable solution anyway.
      
      llvm-svn: 94107
      29916e02
    • Dan Gohman's avatar
      Add a comment. · c903499f
      Dan Gohman authored
      llvm-svn: 94104
      c903499f
    • Dan Gohman's avatar
      Re-implement the main strength-reduction portion of LoopStrengthReduction. · 51ad99d2
      Dan Gohman authored
      This new version is much more aggressive about doing "full" reduction in
      cases where it reduces register pressure, and also more aggressive about
      rewriting induction variables to count down (or up) to zero when doing so
      reduces register pressure.
      
      It currently uses fairly simplistic algorithms for finding reuse
      opportunities, but it introduces a new framework allows it to combine
      multiple strategies at once to form hybrid solutions, instead of doing
      all full-reduction or all base+index.
      
      llvm-svn: 94061
      51ad99d2
  2. Jan 05, 2010
  3. Dec 23, 2009
    • David Greene's avatar
      · 2330f780
      David Greene authored
      Remove dump routine and the associated Debug.h from a header.  Patch up
      other files to compensate.
      
      llvm-svn: 92075
      2330f780
  4. Dec 18, 2009
  5. Dec 17, 2009
  6. Dec 15, 2009
  7. Dec 14, 2009
  8. Nov 17, 2009
  9. Nov 12, 2009
    • Evan Cheng's avatar
      - Teach LSR to avoid changing cmp iv stride if it will create an immediate that · 85a9f430
      Evan Cheng authored
        cannot be folded into target cmp instruction.
      - Avoid a phase ordering issue where early cmp optimization would prevent the
        later count-to-zero optimization.
      - Add missing checks which could cause LSR to reuse stride that does not have
        users.
      - Fix a bug in count-to-zero optimization code which failed to find the pre-inc
        iv's phi node.
      - Remove, tighten, loosen some incorrect checks disable valid transformations.
      - Quite a bit of code clean up.
      
      llvm-svn: 86969
      85a9f430
  10. Nov 11, 2009
  11. Nov 10, 2009
  12. Nov 06, 2009
  13. Nov 05, 2009
  14. Oct 26, 2009
    • Dan Gohman's avatar
      Make LSR's OptimizeShadowIV ignore induction variables with negative · d632f895
      Dan Gohman authored
      strides for now, because it doesn't handle them correctly. This fixes a
      miscompile of SingleSource/Benchmarks/Misc-C++/ray.
      
      This problem was usually hidden because indvars transforms such induction
      variables into negations of canonical induction variables.
      
      llvm-svn: 85118
      d632f895
  15. Oct 25, 2009
  16. Sep 27, 2009
  17. Sep 08, 2009
    • Dan Gohman's avatar
      Re-apply r80926, with fixes: keep the domtree informed of new blocks · 3ddbc242
      Dan Gohman authored
      that get created during loop unswitching, and fix SplitBlockPredecessors'
      LCSSA updating code to create new PHIs instead of trying to just move
      existing ones.
      
      Also, optimize Loop::verifyLoop, since it gets called a lot. Use
      searches on a sorted list of blocks instead of calling the "contains"
      function, as is done in other places in the Loop class, since "contains"
      does a linear search. Also, don't call verifyLoop from LoopSimplify or
      LCSSA, as the PassManager is already calling verifyLoop as part of
      LoopInfo's verifyAnalysis.
      
      llvm-svn: 81221
      3ddbc242
  18. Sep 06, 2009
  19. Sep 03, 2009
  20. Sep 02, 2009
  21. Aug 23, 2009
  22. Aug 13, 2009
  23. Aug 11, 2009
  24. Aug 05, 2009
Loading