Skip to content
  1. Sep 21, 2009
    • Chris Lattner's avatar
      convert an std::pair to an explicit struct. · 0cdc17eb
      Chris Lattner authored
      llvm-svn: 82446
      0cdc17eb
    • Chris Lattner's avatar
      move some functions, add a comment. · d28f9089
      Chris Lattner authored
      llvm-svn: 82444
      d28f9089
    • Chris Lattner's avatar
      split HandleLoadFromClobberingStore in two pieces: one that does the · 9d7fb295
      Chris Lattner authored
      analysis, one that does the xform.
      
      llvm-svn: 82443
      9d7fb295
    • Chris Lattner's avatar
      Improve GVN to be able to forward substitute a small load · 0a9616d9
      Chris Lattner authored
      from a piece of a large store when both are in the same block.
      
      This allows clang to compile the testcase in PR4216 to this code:
      
      _test_bitfield:
      	movl	4(%esp), %eax
      	movl	%eax, %ecx
      	andl	$-65536, %ecx
      	orl	$32962, %eax
      	andl	$40186, %eax
      	orl	%ecx, %eax
      	ret
      
      This is not ideal, but is a whole lot better than the code produced
      by llvm-gcc:
      
      _test_bitfield:
      	movw	$-32574, %ax
      	orw	4(%esp), %ax
      	andw	$-25350, %ax
      	movw	%ax, 4(%esp)
      	movw	7(%esp), %cx
      	shlw	$8, %cx
      	movzbl	6(%esp), %edx
      	orw	%cx, %dx
      	movzwl	%dx, %ecx
      	shll	$16, %ecx
      	movzwl	%ax, %eax
      	orl	%ecx, %eax
      	ret
      
      and dramatically better than that produced by gcc 4.2:
      
      _test_bitfield:
      	pushl	%ebx
      	call	L3
      "L00000000001$pb":
      L3:
      	popl	%ebx
      	movl	8(%esp), %eax
      	leal	0(,%eax,4), %edx
      	sarb	$7, %dl
      	movl	%eax, %ecx
      	andl	$7168, %ecx
      	andl	$-7201, %ebx
      	movzbl	%dl, %edx
      	andl	$1, %edx
      	sall	$5, %edx
      	orl	%ecx, %ebx
      	orl	%edx, %ebx
      	andl	$24, %eax
      	andl	$-58336, %ebx
      	orl	%eax, %ebx
      	orl	$32962, %ebx
      	movl	%ebx, %eax
      	popl	%ebx
      	ret
      
      llvm-svn: 82439
      0a9616d9
    • Chris Lattner's avatar
      formatting cleanups, no functionality change. · 1eefa9c4
      Chris Lattner authored
      llvm-svn: 82426
      1eefa9c4
  2. Sep 20, 2009
  3. Sep 19, 2009
  4. Sep 03, 2009
  5. Sep 02, 2009
  6. Aug 27, 2009
  7. Aug 13, 2009
  8. Jul 31, 2009
  9. Jul 25, 2009
  10. Jul 22, 2009
  11. Jul 21, 2009
  12. Jul 14, 2009
  13. Jul 11, 2009
    • Torok Edwin's avatar
      assert(0) -> LLVM_UNREACHABLE. · 56d06597
      Torok Edwin authored
      Make llvm_unreachable take an optional string, thus moving the cerr<< out of
      line.
      LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
      NDEBUG builds.
      
      llvm-svn: 75379
      56d06597
  14. Jul 10, 2009
  15. Jul 08, 2009
  16. Jul 03, 2009
  17. Jun 17, 2009
    • Dale Johannesen's avatar
      This fixes a bug introduced in 72661, which can · 81b6463e
      Dale Johannesen authored
      move loads back past a check that the load address
      is valid, see new testcase.  The test that went
      in with 72661 has exactly this case, except that
      the conditional it's moving past is checking
      something else; I've settled for changing that
      test to reference a global, not a pointer.  It
      may be possible to scan all the tests you pass and
      make sure none of them are checking any component
      of the address, but it's not trivial and I'm not
      trying to do that here.
      
      llvm-svn: 73632
      81b6463e
    • Torok Edwin's avatar
      Add debug message about non-local loads being clobbered. · ba93ea76
      Torok Edwin authored
      llvm-svn: 73625
      ba93ea76
  18. Jun 15, 2009
  19. Jun 05, 2009
  20. May 31, 2009
  21. May 29, 2009
  22. May 06, 2009
  23. Apr 02, 2009
  24. Apr 01, 2009
Loading