Skip to content
  1. 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
  2. Jun 26, 2009
  3. Jun 25, 2009
  4. Jun 24, 2009
  5. Jun 23, 2009
  6. Jun 22, 2009
  7. Jun 20, 2009
  8. Jun 19, 2009
  9. Jun 18, 2009
  10. Jun 17, 2009
  11. Jun 16, 2009
  12. Jun 15, 2009
  13. 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