Skip to content
  1. Dec 11, 2007
  2. Dec 10, 2007
  3. Dec 09, 2007
  4. Dec 08, 2007
  5. Dec 07, 2007
  6. 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
  7. Dec 05, 2007
  8. Dec 04, 2007
  9. Dec 03, 2007
Loading