Skip to content
  1. Feb 19, 2010
  2. Feb 18, 2010
  3. Feb 16, 2010
  4. Feb 12, 2010
  5. Feb 10, 2010
  6. Jan 21, 2010
    • 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
  7. Jan 05, 2010
  8. Dec 18, 2009
  9. Nov 05, 2009
  10. Oct 31, 2009
  11. Oct 27, 2009
  12. Sep 27, 2009
  13. Sep 02, 2009
  14. Aug 25, 2009
  15. Aug 23, 2009
  16. Aug 17, 2009
  17. Aug 13, 2009
  18. Jul 31, 2009
  19. Jul 26, 2009
  20. Jul 25, 2009
  21. Jul 22, 2009
  22. Jul 16, 2009
  23. Jul 15, 2009
  24. Jul 14, 2009
  25. Jul 10, 2009
  26. Jul 07, 2009
  27. Jul 03, 2009
  28. Jul 02, 2009
  29. Jun 27, 2009
    • Dan Gohman's avatar
      When a value is used multiple times within a single PHI, instructions · fe174b69
      Dan Gohman authored
      inserted to replace that value must dominate all of of the basic
      blocks associated with the uses of the value in the PHI, not just
      one of them.
      
      llvm-svn: 74376
      fe174b69
    • Dan Gohman's avatar
      Incorporate the insertion point into the key of SCEVExpander's CSE map. · daafbe61
      Dan Gohman authored
      This helps it avoid reusing an instruction that doesn't dominate all
      of the users, in cases where the original instruction was inserted
      before all of the users were known.  This may result in redundant
      expansions of sub-expressions that depend on loop-unpredictable values
      in some cases, however this isn't very common, and it primarily impacts
      IndVarSimplify, so GVN can be expected to clean these up.
      
      This eliminates the need for IndVarSimplify's FixUsesBeforeDefs,
      which fixes several bugs.
      
      llvm-svn: 74352
      daafbe61
  30. Jun 24, 2009
    • Dan Gohman's avatar
      When inserting code into a loop preheader, insert it before the · 929fa7b0
      Dan Gohman authored
      terminator, instead of after the last phi. This fixes a bug
      exposed by ScalarEvolution analyzing more kinds of loops.
      This fixes PR4436.
      
      llvm-svn: 74072
      929fa7b0
    • Dan Gohman's avatar
      Extend ScalarEvolution's multiple-exit support to compute exact · f19aeec3
      Dan Gohman authored
      trip counts in more cases.
      
      Generalize ScalarEvolution's isLoopGuardedByCond code to recognize
      And and Or conditions, splitting the code out into an
      isNecessaryCond helper function so that it can evaluate Ands and Ors
      recursively, and make SCEVExpander be much more aggressive about
      hoisting instructions out of loops.
      
      test/CodeGen/X86/pr3495.ll has an additional instruction now, but
      it appears to be due to an arbitrary register allocation difference.
      
      llvm-svn: 74048
      f19aeec3
  31. Jun 23, 2009
  32. Jun 22, 2009
  33. Jun 15, 2009
  34. Jun 13, 2009
    • Dan Gohman's avatar
      Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical · 426901aa
      Dan Gohman authored
      induction variable when the addrec to be expanded does not require
      a wider type. This eliminates the need for IndVarSimplify to
      micro-manage SCEV expansions, because SCEVExpander now
      automatically expands them in the form that IndVarSimplify considers
      to be canonical. (LSR still micro-manages its SCEV expansions,
      because it's optimizing for the target, rather than for
      other optimizations.)
      
      Also, this uses the new getAnyExtendExpr, which has more clever
      expression simplification logic than the IndVarSimplify code it
      replaces, and this cleans up some ugly expansions in code such as
      the included masked-iv.ll testcase.
      
      llvm-svn: 73294
      426901aa
Loading