Skip to content
  1. Dec 19, 2012
    • Paul Redmond's avatar
      Transform (x&C)>V into (x&C)!=0 where possible · 5917f4c7
      Paul Redmond authored
      When the least bit of C is greater than V, (x&C) must be greater than V
      if it is not zero, so the comparison can be simplified.
      
      Although this was suggested in Target/X86/README.txt, it benefits any
      architecture with a directly testable form of AND.
      
      Patch by Kevin Schoedel
      
      llvm-svn: 170576
      5917f4c7
  2. Mar 30, 2012
  3. Jan 07, 2012
  4. Dec 24, 2011
  5. Oct 11, 2011
    • Lang Hames's avatar
      Add a natural stack alignment field to TargetData, and prevent InstCombine from · de7ab801
      Lang Hames authored
      promoting allocas to preferred alignments that exceed the natural
      alignment. This avoids some potentially expensive dynamic stack realignments.
      
      The natural stack alignment is set in target data strings via the "S<size>"
      option. Size is in bits and must be a multiple of 8. The natural stack alignment
      defaults to "unspecified" (represented by a zero value), and the "unspecified"
      value does not prevent any alignment promotions. Target maintainers that care
      about avoiding promotions should explicitly add the "S<size>" option to their
      target data strings.
      
      llvm-svn: 141599
      de7ab801
  6. Oct 10, 2011
  7. Jul 27, 2011
    • Benjamin Kramer's avatar
      Add a neat little two's complement hack for x86. · 124ac2b9
      Benjamin Kramer authored
      On x86 we can't encode an immediate LHS of a sub directly. If the RHS comes from a XOR with a constant we can
      fold the negation into the xor and add one to the immediate of the sub. Then we can turn the sub into an add,
      which can be commuted and encoded efficiently.
      
      This code is generated for __builtin_clz and friends.
      
      llvm-svn: 136167
      124ac2b9
  8. Jul 26, 2011
  9. May 17, 2011
  10. Apr 29, 2011
  11. Apr 28, 2011
  12. Apr 17, 2011
  13. Apr 15, 2011
  14. Apr 14, 2011
  15. Apr 06, 2011
  16. Mar 17, 2011
  17. Feb 21, 2011
  18. Feb 19, 2011
  19. Feb 18, 2011
  20. Jan 02, 2011
  21. Dec 26, 2010
  22. Dec 23, 2010
  23. Dec 11, 2010
  24. Dec 01, 2010
  25. Nov 21, 2010
  26. Sep 02, 2010
  27. Aug 29, 2010
  28. Jul 22, 2010
  29. Jun 03, 2010
  30. Mar 01, 2010
  31. Feb 10, 2010
  32. Jan 14, 2010
  33. Jan 04, 2010
  34. Dec 21, 2009
Loading