Skip to content
  1. Apr 12, 2010
  2. Apr 11, 2010
  3. Apr 10, 2010
  4. Apr 09, 2010
  5. Apr 08, 2010
    • Dan Gohman's avatar
      When expanding expressions which are using post-inc mode for multiple loops, · 4506539d
      Dan Gohman authored
      ensure that the expansion is dominated by the increments of those loops.
      
      llvm-svn: 100748
      4506539d
    • Dan Gohman's avatar
      Generalize IVUsers to track arbitrary expressions rather than expressions · d006ab90
      Dan Gohman authored
      explicitly split into stride-and-offset pairs. Also, add the
      ability to track multiple post-increment loops on the same expression.
      
      This refines the concept of "normalizing" SCEV expressions used for
      to post-increment uses, and introduces a dedicated utility routine for
      normalizing and denormalizing expressions.
      
      This fixes the expansion of expressions which are post-increment users
      of more than one loop at a time. More broadly, this takes LSR another
      step closer to being able to reason about more than one loop at a time.
      
      llvm-svn: 100699
      d006ab90
  6. Apr 06, 2010
    • Gabor Greif's avatar
    • Chris Lattner's avatar
      fix a really nasty bug that Evan was tracking in SCCP. When resolving · adca6082
      Chris Lattner authored
      undefs in branches/switches, we have two cases: a branch on a literal
      undef or a branch on a symbolic value which is undef.  If we have a
      literal undef, the code was correct: forcing it to a constant is the
      right thing to do.
      
      If we have a branch on a symbolic value that is undef, we should force
      the symbolic value to a constant, which then makes the successor block
      live.  Forcing the condition of the branch to being a constant isn't 
      safe if later paths become live and the value becomes overdefined.  This
      is the case that 'forcedconstant' is designed to handle, so just use it.
      
      This fixes rdar://7765019 but there is no good testcase for this, the
      one I have is too insane to be useful in the future.
      
      llvm-svn: 100478
      adca6082
  7. Apr 05, 2010
  8. Apr 04, 2010
  9. Apr 03, 2010
  10. Apr 02, 2010
  11. Apr 01, 2010
  12. Mar 31, 2010
    • Dale Johannesen's avatar
      Fix a nasty dangling-pointer heisenbug that could · b67a6e66
      Dale Johannesen authored
      generate wrong code pretty much anywhere AFAICT.
      A case that hits the bug reproducibly is impossible,
      but the situation was like this:
      Addr = ...
      Store -> Addr
      Addr2 = GEP , 0, 0
      Store -> Addr2
      Handling the first store, the code changed replaced Addr
      with a sunkaddr and deleted Addr, but not its table
      entry.  Code in OptimizedBlock replaced Addr2 with a
      bitcast; if that happened to reuse the memory of Addr,
      the old table entry was erroneously found when handling
      the second store.
      
      llvm-svn: 100044
      b67a6e66
Loading