Skip to content
  1. Apr 14, 2011
  2. Apr 06, 2011
  3. Mar 17, 2011
  4. Feb 21, 2011
  5. Feb 19, 2011
  6. Feb 18, 2011
  7. Jan 02, 2011
  8. Dec 26, 2010
  9. Dec 23, 2010
  10. Dec 11, 2010
  11. Dec 01, 2010
  12. Nov 21, 2010
  13. Sep 02, 2010
  14. Aug 29, 2010
  15. Jul 22, 2010
  16. Jun 03, 2010
  17. Mar 01, 2010
  18. Feb 10, 2010
  19. Jan 14, 2010
  20. Jan 04, 2010
  21. Dec 21, 2009
  22. Oct 27, 2009
  23. Jul 30, 2009
  24. Jun 30, 2009
  25. Jun 16, 2009
  26. Jun 12, 2009
  27. May 25, 2009
  28. Mar 12, 2009
    • Chris Lattner's avatar
      Move 3 "(add (select cc, 0, c), x) -> (select cc, x, (add, x, c))" · 4147f08e
      Chris Lattner authored
      related transformations out of target-specific dag combine into the
      ARM backend.  These were added by Evan in r37685 with no testcases
      and only seems to help ARM (e.g. test/CodeGen/ARM/select_xform.ll).
      
      Add some simple X86-specific (for now) DAG combines that turn things
      like cond ? 8 : 0  -> (zext(cond) << 3).  This happens frequently
      with the recently added cp constant select optimization, but is a
      very general xform.  For example, we now compile the second example
      in const-select.ll to:
      
      _test:
              movsd   LCPI2_0, %xmm0
              ucomisd 8(%esp), %xmm0
              seta    %al
              movzbl  %al, %eax
              movl    4(%esp), %ecx
              movsbl  (%ecx,%eax,4), %eax
              ret
      
      instead of:
      
      _test:
              movl    4(%esp), %eax
              leal    4(%eax), %ecx
              movsd   LCPI2_0, %xmm0
              ucomisd 8(%esp), %xmm0
              cmovbe  %eax, %ecx
              movsbl  (%ecx), %eax
              ret
      
      This passes multisource and dejagnu.
      
      llvm-svn: 66779
      4147f08e
Loading