Skip to content
  1. Apr 14, 2008
  2. Apr 06, 2008
  3. Mar 19, 2008
  4. Jan 29, 2008
  5. Dec 29, 2007
  6. Dec 20, 2007
  7. Nov 17, 2007
  8. Oct 31, 2007
  9. Oct 30, 2007
  10. Oct 29, 2007
  11. Oct 27, 2007
    • Evan Cheng's avatar
      A number of LSR fixes: · 9dbe99dc
      Evan Cheng authored
      - ChangeCompareStride only reuse stride that is larger than current stride. It
        will let the general reuse mechanism to try to reuse a smaller stride.
      - Watch out for multiplication overflow in ChangeCompareStride.
      - Replace std::set with SmallPtrSet.
      
      llvm-svn: 43408
      9dbe99dc
  12. Oct 26, 2007
  13. Oct 25, 2007
  14. Oct 22, 2007
    • Dan Gohman's avatar
      Strength reduction improvements. · e0c3d9f3
      Dan Gohman authored
       - Avoid attempting stride-reuse in the case that there are users that
         aren't addresses. In that case, there will be places where the
         multiplications won't be folded away, so it's better to try to
         strength-reduce them.
      
       - Several SSE intrinsics have operands that strength-reduction can
         treat as addresses. The previous item makes this more visible, as
         any non-address use of an IV can inhibit stride-reuse.
      
       - Make ValidStride aware of whether there's likely to be a base
         register in the address computation. This prevents it from thinking
         that things like stride 9 are valid on x86 when the base register is
         already occupied.
      
      Also, XFAIL the 2007-08-10-LEA16Use32.ll test; the new logic to avoid
      stride-reuse elimintes the LEA in the loop, so the test is no longer
      testing what it was intended to test.
      
      llvm-svn: 43231
      e0c3d9f3
    • Dan Gohman's avatar
      Move the SCEV object factors from being static members of the individual · a37eaf2b
      Dan Gohman authored
      SCEV subclasses to being non-static member functions of the ScalarEvolution
      class.
      
      llvm-svn: 43224
      a37eaf2b
  15. Oct 02, 2007
  16. Aug 02, 2007
  17. Aug 01, 2007
  18. Jul 31, 2007
  19. Jun 19, 2007
    • Dan Gohman's avatar
      Rename ScalarEvolution::deleteInstructionFromRecords to · 32f53bbd
      Dan Gohman authored
      deleteValueFromRecords and loosen the types to all it to accept
      Value* instead of just Instruction*, since this is what
      ScalarEvolution uses internally anyway. This allows more flexibility
      for future uses.
      
      llvm-svn: 37657
      32f53bbd
  20. Jun 15, 2007
    • Dan Gohman's avatar
      Add a SCEV class and supporting code for sign-extend expressions. · cb9e09ad
      Dan Gohman authored
      This created an ambiguity for expandInTy to decide when to use
      sign-extension or zero-extension, but it turns out that most of its callers
      don't actually need a type conversion, now that LLVM types don't have
      explicit signedness. Drop expandInTy in favor of plain expand, and change
      the few places that actually need a type conversion to do it themselves.
      
      llvm-svn: 37591
      cb9e09ad
  21. Jun 07, 2007
  22. Jun 06, 2007
  23. May 19, 2007
    • Chris Lattner's avatar
      Handle negative strides much more optimally. This compiles X86/lsr-negative-stride.ll · e8bd53c3
      Chris Lattner authored
      into:
      
      _t:
              movl 8(%esp), %ecx
              movl 4(%esp), %eax
              cmpl %ecx, %eax
              je LBB1_3       #bb17
      LBB1_1: #bb
              cmpl %ecx, %eax
              jg LBB1_4       #cond_true
      LBB1_2: #cond_false
              subl %eax, %ecx
              cmpl %ecx, %eax
              jne LBB1_1      #bb
      LBB1_3: #bb17
              ret
      LBB1_4: #cond_true
              subl %ecx, %eax
              cmpl %ecx, %eax
              jne LBB1_1      #bb
              jmp LBB1_3      #bb17
      
      instead of:
      
      _t:
              subl $4, %esp
              movl %esi, (%esp)
              movl 12(%esp), %ecx
              movl 8(%esp), %eax
              cmpl %ecx, %eax
              je LBB1_4       #bb17
      LBB1_1: #bb.outer
              movl %ecx, %edx
              negl %edx
      LBB1_2: #bb
              cmpl %ecx, %eax
              jle LBB1_5      #cond_false
      LBB1_3: #cond_true
              addl %edx, %eax
              cmpl %ecx, %eax
              jne LBB1_2      #bb
      LBB1_4: #bb17
              movl (%esp), %esi
              addl $4, %esp
              ret
      LBB1_5: #cond_false
              movl %ecx, %edx
              subl %eax, %edx
              movl %eax, %esi
              addl %esi, %esi
              cmpl %ecx, %esi
              je LBB1_4       #bb17
      LBB1_6: #cond_false.bb.outer_crit_edge
              movl %edx, %ecx
              jmp LBB1_1      #bb.outer
      
      llvm-svn: 37252
      e8bd53c3
  24. May 12, 2007
  25. May 04, 2007
  26. May 03, 2007
  27. May 02, 2007
  28. May 01, 2007
  29. Apr 24, 2007
  30. Apr 15, 2007
Loading