Skip to content
  1. Dec 13, 2007
  2. Dec 12, 2007
  3. Dec 11, 2007
  4. Dec 10, 2007
  5. Dec 09, 2007
  6. Dec 08, 2007
  7. Dec 07, 2007
  8. Dec 06, 2007
    • Evan Cheng's avatar
      Remove a bogus optimization. It's not possible to do a move to low element to... · c829e5cd
      Evan Cheng authored
      Remove a bogus optimization. It's not possible to do a move to low element to a <8 x i16> or <16 x i8> vector.
      
      llvm-svn: 44669
      c829e5cd
    • Chris Lattner's avatar
      implement a readme entry, compiling the code into: · 7c709a5d
      Chris Lattner authored
      _foo:
      	movl	$12, %eax
      	andl	4(%esp), %eax
      	movl	_array(%eax), %eax
      	ret
      
      instead of:
      
      _foo:
      	movl	4(%esp), %eax
      	shrl	$2, %eax
      	andl	$3, %eax
      	movl	_array(,%eax,4), %eax
      	ret
      
      As it turns out, this triggers all the time, in a wide variety of
      situations, for example, I see diffs like this in various programs:
      
      -       movl    8(%eax), %eax
      -       shll    $2, %eax
      -       andl    $1020, %eax
      -       movl    (%esi,%eax), %eax
      +       movzbl  8(%eax), %eax
      +       movl    (%esi,%eax,4), %eax
      
      
      -       shll    $2, %edx
      -       andl    $1020, %edx
      -       movl    (%edi,%edx), %edx
      +       andl    $255, %edx
      +       movl    (%edi,%edx,4), %edx
      
      Unfortunately, I also see stuff like this, which can be fixed in the
      X86 backend:
      
      -       andl    $85, %ebx
      -       addl    _bit_count(,%ebx,4), %ebp
      +       shll    $2, %ebx
      +       andl    $340, %ebx
      +       addl    _bit_count(%ebx), %ebp
      
      llvm-svn: 44656
      7c709a5d
    • Chris Lattner's avatar
      add a note · 5e224c32
      Chris Lattner authored
      llvm-svn: 44638
      5e224c32
  9. Dec 05, 2007
Loading