Skip to content
  • Chris Lattner's avatar
    Two changes: · 3e1d917e
    Chris Lattner authored
    1) codegen a shift of a register as a shift, not an LEA.
    2) teach the RA to convert a shift to an LEA instruction if it wants something
       in three-address form.
    
    This gives us asm diffs like:
    
    -       leal (,%eax,4), %eax
    +       shll $2, %eax
    
    which is faster on some processors and smaller on all of them.
    
    and, more interestingly:
    
    -       movl 24(%esi), %eax
    -       leal (,%eax,4), %edi
    +       movl 24(%esi), %edi
    +       shll $2, %edi
    
    Without #2, #1 was a significant pessimization in some cases.
    
    This implements CodeGen/X86/shift-codegen.ll
    
    llvm-svn: 35204
    3e1d917e
Loading