Skip to content
  1. Jan 11, 2010
    • Evan Cheng's avatar
      Select an OR with immediate as an ADD if the input bits are known zero. This... · 64d9f405
      Evan Cheng authored
      Select an OR with immediate as an ADD if the input bits are known zero. This allow the instruction to be 3address-fied if needed.
      
      llvm-svn: 93152
      64d9f405
    • David Greene's avatar
      · 206351a1
      David Greene authored
      Implement a feature (-vector-unaligned-mem) to allow targets to
      ignore alignment requirements for SIMD memory operands.  This
      is useful on architectures like the AMD 10h that do not trap on
      unaligned references if a status bit is twiddled at startup time.
      
      llvm-svn: 93151
      206351a1
    • Victor Hernandez's avatar
      Respond to Chris' review: · 9ce5b513
      Victor Hernandez authored
      Make InsertDbgValueIntrinsic() and get Offset take and recieve a uint64_t.
      Get constness correct for getVariable() and getValue().
      
      llvm-svn: 93149
      9ce5b513
    • Chris Lattner's avatar
      add one more bitfield optimization, allowing clang to generate · 95188694
      Chris Lattner authored
      good code on PR4216:
      
      _test_bitfield:                                             ## @test_bitfield
      	orl	$32962, %edi
      	movl	$4294941946, %eax
      	andq	%rdi, %rax
      	ret
      
      instead of:
      
      _test_bitfield:
              movl    $4294941696, %ecx
              movl    %edi, %eax
              orl     $194, %edi
              orl     $32768, %eax
              andq    $250, %rdi
              andq    %rax, %rcx
              movq    %rdi, %rax
              orq     %rcx, %rax
              ret
      
      Evan is looking into the remaining andq+imm -> andl optimization.
      
      llvm-svn: 93147
      95188694
    • Chris Lattner's avatar
      Extend CanEvaluateZExtd to handle and/or/xor more aggressively in the · 0a854204
      Chris Lattner authored
      BitsToClear case.  This allows it to promote expressions which have an
      and/or/xor after the lshr, promoting cases like test2 (from PR4216) 
      and test3 (random extample extracted from a spec benchmark).
      
      clang now compiles the code in PR4216 into:
      
      _test_bitfield:                                             ## @test_bitfield
      	movl	%edi, %eax
      	orl	$194, %eax
      	movl	$4294902010, %ecx
      	andq	%rax, %rcx
      	orl	$32768, %edi
      	andq	$39936, %rdi
      	movq	%rdi, %rax
      	orq	%rcx, %rax
      	ret
      
      instead of:
      
      _test_bitfield:                                             ## @test_bitfield
      	movl	%edi, %eax
      	orl	$194, %eax
      	movl	$4294902010, %ecx
      	andq	%rax, %rcx
      	shrl	$8, %edi
      	orl	$128, %edi
      	shlq	$8, %rdi
      	andq	$39936, %rdi
      	movq	%rdi, %rax
      	orq	%rcx, %rax
      	ret
      
      which is still not great, but is progress.
      
      llvm-svn: 93145
      0a854204
    • Chris Lattner's avatar
      Remove the dead TD argument to CanEvaluateZExtd, and add a · 12bd8992
      Chris Lattner authored
      new BitsToClear result which allows us to start promoting
      expressions that end with a lshr-by-constant.  This is
      conservatively correct and better than what we had before
      (see testcases) but still needs to be extended further.
      
      llvm-svn: 93144
      12bd8992
    • Chris Lattner's avatar
      improve comments, remove dead TD argument to CanEvaluateSExtd. · 172630ab
      Chris Lattner authored
      llvm-svn: 93143
      172630ab
  2. Jan 10, 2010
  3. Jan 09, 2010
Loading