Skip to content
  1. Jul 01, 2009
  2. Jun 30, 2009
  3. Jun 28, 2009
  4. 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
    • Dan Gohman's avatar
      More minor code simplifications. · 8918b481
      Dan Gohman authored
      llvm-svn: 74395
      8918b481
    • 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
    • Devang Patel's avatar
      Remove unused routines. · 0f2eb5b9
      Devang Patel authored
      llvm-svn: 74351
      0f2eb5b9
  5. Jun 26, 2009
  6. Jun 25, 2009
  7. Jun 24, 2009
  8. Jun 23, 2009
  9. Jun 22, 2009
  10. Jun 20, 2009
  11. Jun 19, 2009
  12. Jun 18, 2009
  13. Jun 17, 2009
    • Dale Johannesen's avatar
      This fixes a bug introduced in 72661, which can · 81b6463e
      Dale Johannesen authored
      move loads back past a check that the load address
      is valid, see new testcase.  The test that went
      in with 72661 has exactly this case, except that
      the conditional it's moving past is checking
      something else; I've settled for changing that
      test to reference a global, not a pointer.  It
      may be possible to scan all the tests you pass and
      make sure none of them are checking any component
      of the address, but it's not trivial and I'm not
      trying to do that here.
      
      llvm-svn: 73632
      81b6463e
    • Torok Edwin's avatar
      Add debug message about non-local loads being clobbered. · ba93ea76
      Torok Edwin authored
      llvm-svn: 73625
      ba93ea76
Loading