Skip to content
  1. Oct 16, 2009
  2. Sep 30, 2009
  3. Sep 03, 2009
  4. Aug 29, 2009
  5. Aug 11, 2009
  6. Aug 05, 2009
  7. Aug 04, 2009
  8. Aug 03, 2009
  9. Jul 07, 2009
  10. Jul 02, 2009
  11. Jun 25, 2009
  12. Jun 19, 2009
  13. Jun 15, 2009
  14. Jun 08, 2009
  15. Jun 01, 2009
  16. May 30, 2009
  17. May 23, 2009
  18. Apr 12, 2008
    • Dan Gohman's avatar
      Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal · 544ab2c5
      Dan Gohman authored
      on any current target and aren't optimized in DAGCombiner. Instead
      of using intermediate nodes, expand the operations, choosing between
      simple loads/stores, target-specific code, and library calls,
      immediately.
      
      Previously, the code to emit optimized code for these operations
      was only used at initial SelectionDAG construction time; now it is
      used at all times. This fixes some cases where rep;movs was being
      used for small copies where simple loads/stores would be better.
      
      This also cleans up code that checks for alignments less than 4;
      let the targets make that decision instead of doing it in
      target-independent code. This allows x86 to use rep;movs in
      low-alignment cases.
      
      Also, this fixes a bug that resulted in the use of rep;stos for
      memsets of 0 with non-constant memory size when the alignment was
      at least 4. It's better to use the library in this case, which
      can be significantly faster when the size is large.
      
      This also preserves more SourceValue information when memory
      intrinsics are lowered into simple loads/stores.
      
      llvm-svn: 49572
      544ab2c5
  19. Dec 29, 2007
  20. Oct 31, 2007
  21. Feb 23, 2007
  22. Feb 13, 2007
  23. Jan 19, 2007
Loading