Skip to content
  1. Jul 11, 2009
  2. Jul 10, 2009
  3. Jul 09, 2009
  4. Jul 08, 2009
  5. Jul 07, 2009
  6. Jul 06, 2009
  7. Jul 04, 2009
  8. Jul 03, 2009
  9. Jul 01, 2009
  10. Jun 30, 2009
  11. Jun 28, 2009
  12. Jun 27, 2009
    • Dan Gohman's avatar
      Teach LoopSimplify how to merge multiple loop exits into a single exit, · c8ca4965
      Dan Gohman authored
      when one of them can be converted to a trivial icmp and conditional
      branch.
      
      This addresses what is essentially a phase ordering problem.
      SimplifyCFG knows how to do this transformation, but it doesn't do so
      if the primary block has any instructions in it other than an icmp and
      a branch. In the given testcase, the block contains other instructions,
      however they are loop-invariant and can be hoisted. SimplifyCFG doesn't
      have LoopInfo though, so it can't hoist them. And, it's important that
      the blocks be merged before LoopRotation, as it doesn't support
      multiple-exit loops.
      
      llvm-svn: 74396
      c8ca4965
    • Devang Patel's avatar
      Remove unused routines. · 0f2eb5b9
      Devang Patel authored
      llvm-svn: 74351
      0f2eb5b9
  13. Jun 26, 2009
  14. Jun 16, 2009
  15. Jun 15, 2009
  16. Jun 05, 2009
  17. May 30, 2009
  18. May 23, 2009
  19. May 19, 2009
    • Dan Gohman's avatar
      Teach SCEVExpander to expand arithmetic involving pointers into GEP · 2649491f
      Dan Gohman authored
      instructions. It attempts to create high-level multi-operand GEPs,
      though in cases where this isn't possible it falls back to casting
      the pointer to i8* and emitting a GEP with that. Using GEP instructions
      instead of ptrtoint+arithmetic+inttoptr helps pointer analyses that
      don't use ScalarEvolution, such as BasicAliasAnalysis.
      
      Also, make the AddrModeMatcher more aggressive in handling GEPs.
      Previously it assumed that operand 0 of a GEP would require a register
      in almost all cases. It now does extra checking and can do more
      matching if operand 0 of the GEP is foldable. This fixes a problem
      that was exposed by SCEVExpander using GEPs.
      
      llvm-svn: 72093
      2649491f
  20. May 14, 2009
  21. May 13, 2009
  22. May 09, 2009
  23. May 08, 2009
  24. May 06, 2009
  25. May 05, 2009
    • Dan Gohman's avatar
      Re-apply 70645, converting ScalarEvolution to use · 48f82222
      Dan Gohman authored
      CallbackVH, with fixes. allUsesReplacedWith need to
      walk the def-use chains and invalidate all users of a
      value that is replaced. SCEVs of users need to be
      recalcualted even if the new value is equivalent. Also,
      make forgetLoopPHIs walk def-use chains, since any
      SCEV that depends on a PHI should be recalculated when
      more information about that PHI becomes available.
      
      llvm-svn: 70927
      48f82222
  26. May 04, 2009
  27. May 03, 2009
  28. May 02, 2009
    • Dan Gohman's avatar
      Convert ScalarEvolution to use CallbackVH for its internal map. This · e9a38d16
      Dan Gohman authored
      makes ScalarEvolution::deleteValueFromRecords, and it's code that
      subtly needed to be called before ReplaceAllUsesWith, unnecessary.
      
      It also makes ValueDeletionListener unnecessary.
      
      llvm-svn: 70645
      e9a38d16
    • Dan Gohman's avatar
      Previously, RecursivelyDeleteDeadInstructions provided an option · ff089955
      Dan Gohman authored
      of returning a list of pointers to Values that are deleted. This was
      unsafe, because the pointers in the list are, by nature of what
      RecursivelyDeleteDeadInstructions does, always dangling. Replace this
      with a simple callback mechanism. This may eventually be removed if
      all clients can reasonably be expected to use CallbackVH.
      
      Use this to factor out the dead-phi-cycle-elimination code from LSR
      utility function, and generalize it to use the
      RecursivelyDeleteTriviallyDeadInstructions utility function.
      
      This makes LSR more aggressive about eliminating dead PHI cycles;
      adjust tests to either be less trivial or to simply expect fewer
      instructions.
      
      llvm-svn: 70636
      ff089955
  29. Apr 22, 2009
Loading