Skip to content
  1. Dec 20, 2011
    • Chandler Carruth's avatar
      Begin teaching the X86 target how to efficiently codegen patterns that · 24680c24
      Chandler Carruth authored
      use the zero-undefined variants of CTTZ and CTLZ. These are just simple
      patterns for now, there is more to be done to make real world code using
      these constructs be optimized and codegen'ed properly on X86.
      
      The existing tests are spiffed up to check that we no longer generate
      unnecessary cmov instructions, and that we generate the very important
      'xor' to transform bsr which counts the index of the most significant
      one bit to the number of leading (most significant) zero bits. Also they
      now check that when the variant with defined zero result is used, the
      cmov is still produced.
      
      llvm-svn: 146974
      24680c24
  2. Oct 26, 2011
  3. Sep 13, 2011
  4. Sep 07, 2011
  5. Sep 03, 2011
    • Jakob Stoklund Olesen's avatar
      Pseudo CMOV instructions don't clobber EFLAGS. · 1f72dd40
      Jakob Stoklund Olesen authored
      The explanation about a 0 argument being materialized as xor is no
      longer valid.  Rematerialization will check if EFLAGS is live before
      clobbering it.
      
      The code produced by X86TargetLowering::EmitLoweredSelect does not
      clobber EFLAGS.
      
      This causes one less testb instruction to be generated in the cmov.ll
      test case.
      
      llvm-svn: 139057
      1f72dd40
  6. Aug 30, 2011
  7. Aug 26, 2011
  8. Aug 24, 2011
  9. Aug 10, 2011
  10. Jul 27, 2011
  11. Jun 16, 2011
  12. May 21, 2011
  13. May 20, 2011
  14. May 19, 2011
  15. May 17, 2011
  16. May 11, 2011
  17. May 10, 2011
  18. May 08, 2011
    • Benjamin Kramer's avatar
      X86: Add a bunch of peeps for add and sub of SETB. · d724a590
      Benjamin Kramer authored
      "b + ((a < b) ? 1 : 0)" compiles into
      	cmpl	%esi, %edi
      	adcl	$0, %esi
      instead of
      	cmpl	%esi, %edi
      	sbbl	%eax, %eax
      	andl	$1, %eax
      	addl	%esi, %eax
      
      This saves a register, a false dependency on %eax
      (Intel's CPUs still don't ignore it) and it's shorter.
      
      llvm-svn: 131070
      d724a590
  19. Feb 17, 2011
  20. Jan 26, 2011
  21. Jan 18, 2011
  22. Dec 20, 2010
  23. Dec 19, 2010
  24. Dec 15, 2010
  25. Dec 09, 2010
  26. Nov 28, 2010
  27. Nov 27, 2010
  28. Nov 01, 2010
  29. Oct 31, 2010
  30. Oct 21, 2010
  31. Oct 13, 2010
  32. Oct 12, 2010
  33. Oct 08, 2010
Loading