Skip to content
  1. Dec 01, 2010
  2. Nov 30, 2010
  3. Nov 29, 2010
  4. Nov 27, 2010
  5. Nov 24, 2010
  6. Nov 23, 2010
  7. Nov 21, 2010
  8. Nov 20, 2010
  9. Nov 19, 2010
  10. Nov 18, 2010
    • Duncan Sands's avatar
      Factor code for testing whether replacing one value with another · aef146b8
      Duncan Sands authored
      preserves LCSSA form out of ScalarEvolution and into the LoopInfo
      class.  Use it to check that SimplifyInstruction simplifications
      are not breaking LCSSA form.  Fixes PR8622.
      
      llvm-svn: 119727
      aef146b8
    • Owen Anderson's avatar
      Completely rework the datastructure GVN uses to represent the value number to... · c21c100f
      Owen Anderson authored
      Completely rework the datastructure GVN uses to represent the value number to leader mapping.  Previously,
      this was a tree of hashtables, and a query recursed into the table for the immediate dominator ad infinitum
      if the initial lookup failed.  This led to really bad performance on tall, narrow CFGs.
      
      We can instead replace it with what is conceptually a multimap of value numbers to leaders (actually
      represented by a hashtable with a list of Value*'s as the value type), and then
      determine which leader from that set to use very cheaply thanks to the DFS numberings maintained by
      DominatorTree.  Because there are typically few duplicates of a given value, this scan tends to be
      quite fast.  Additionally, we use a custom linked list and BumpPtr allocation to avoid any unnecessary
      allocation in representing the value-side of the multimap.
      
      This change brings with it a 15% (!) improvement in the total running time of GVN on 403.gcc, which I
      think is pretty good considering that includes all the "real work" being done by MemDep as well.
      
      The one downside to this approach is that we can no longer use GVN to perform simple conditional progation,
      but that seems like an acceptable loss since we now have LVI and CorrelatedValuePropagation to pick up
      the slack.  If you see conditional propagation that's not happening, please file bugs against LVI or CVP.
      
      llvm-svn: 119714
      c21c100f
    • Chris Lattner's avatar
      slightly simplify code and substantially improve comment. Instead of · 1385dff8
      Chris Lattner authored
      saying "it would be bad", give an example of what is going on.
      
      llvm-svn: 119695
      1385dff8
    • Chris Lattner's avatar
      remove a pointless restriction from memcpyopt. It was · 731caac7
      Chris Lattner authored
      refusing to optimize two memcpy's like this:
      
      copy A <- B
      copy C <- A
      
      if it couldn't prove that noalias(B,C).  We can eliminate
      the copy by producing a memmove instead of memcpy.
      
      llvm-svn: 119694
      731caac7
Loading