Skip to content
  1. Nov 14, 2010
  2. Nov 12, 2010
    • Duncan Sands's avatar
      Have GVN simplify instructions as it goes. For example, consider · 246b71c5
      Duncan Sands authored
      "%z = %x and %y".  If GVN can prove that %y equals %x, then it turns
      this into "%z = %x and %x".  With the new code, %z will be replaced
      with %x everywhere (and then deleted).  Previously %z would be value
      numbered too, which is a waste of time.  Also, while a clever value
      numbering algorithm would give %z the same value number as %x, our
      current one doesn't do so (at least I don't think it does).  The new
      logic has an essentially equivalent effect to what you would get if
      %z was given the same value number as %x, i.e. it should make value
      numbering smarter.  While there, get hold of target data once at the
      start rather than a gazillion times all over the place.
      
      llvm-svn: 118923
      246b71c5
    • Dan Gohman's avatar
      Enhance DSE to handle the case where a free call makes more than · d4b7fff2
      Dan Gohman authored
      one store dead. This is especially noticeable in
      SingleSource/Benchmarks/Shootout/objinst.
      
      llvm-svn: 118875
      d4b7fff2
  3. Nov 11, 2010
  4. Nov 10, 2010
  5. Nov 09, 2010
  6. Oct 29, 2010
    • Owen Anderson's avatar
      Give up on doing in-line instruction simplification during correlated value... · 374e1464
      Owen Anderson authored
      Give up on doing in-line instruction simplification during correlated value propagation.  Instruction simplification
      needs to be guaranteed never to be run on an unreachable block.  However, earlier block simplifications may have
      changed the CFG to make block that were reachable when we began our iteration unreachable by the time we try to
      simplify them. (Note that this also means that our depth-first iterators were potentially being invalidated).
      
      This should not have a large impact on code quality, since later runs of instcombine should pick up these simplifications.
      Fixes PR8506.
      
      llvm-svn: 117709
      374e1464
    • John Thompson's avatar
      Inline asm multiple alternative constraints development phase 2 - improved... · e8360b71
      John Thompson authored
      Inline asm multiple alternative constraints development phase 2 - improved basic logic, added initial platform support.
      
      llvm-svn: 117667
      e8360b71
  7. Oct 20, 2010
  8. Oct 19, 2010
  9. Oct 18, 2010
  10. Oct 16, 2010
  11. Oct 13, 2010
  12. Oct 12, 2010
  13. Oct 08, 2010
  14. Oct 07, 2010
  15. Oct 01, 2010
    • Owen Anderson's avatar
      Now that the profitable bits of EnableFullLoadPRE have been enabled by... · 13a642da
      Owen Anderson authored
      Now that the profitable bits of EnableFullLoadPRE have been enabled by default, rip out the remainder.
      Anyone interested in more general PRE would be better served by implementing it separately, to get real
      anticipation calculation, etc.
      
      llvm-svn: 115337
      13a642da
    • Eric Christopher's avatar
      Fix the other half of the alignment changing issue by making sure that the · 3ad2f3a2
      Eric Christopher authored
      memcpy alignment is the minimum of the incoming alignments.
      
      Fixes PR 8266.
      
      llvm-svn: 115305
      3ad2f3a2
    • Dale Johannesen's avatar
      Massive rewrite of MMX: · dd224d23
      Dale Johannesen authored
      The x86_mmx type is used for MMX intrinsics, parameters and
      return values where these use MMX registers, and is also
      supported in load, store, and bitcast.
      
      Only the above operations generate MMX instructions, and optimizations
      do not operate on or produce MMX intrinsics. 
      
      MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into
      smaller pieces.  Optimizations may occur on these forms and the
      result casted back to x86_mmx, provided the result feeds into a
      previous existing x86_mmx operation.
      
      The point of all this is prevent optimizations from introducing
      MMX operations, which is unsafe due to the EMMS problem.
      
      llvm-svn: 115243
      dd224d23
  16. Sep 30, 2010
Loading