[X86] Tune LEA usage for Silvermont
authorAlexey Volkov <avolkov.intel@gmail.com>
Tue, 20 May 2014 08:55:50 +0000 (08:55 +0000)
committerAlexey Volkov <avolkov.intel@gmail.com>
Tue, 20 May 2014 08:55:50 +0000 (08:55 +0000)
commit6226de67210755a56d15dca7f1891fe7fddda3ca
tree49e5679bb8c10b7fed4057f8b74aecbf2b818d01
parentabdf44e7f38d392fed85692b2a31bf1578f3ee3b
[X86] Tune LEA usage for Silvermont

According to Intel Software Optimization Manual on Silvermont in some cases LEA
is better to be replaced with ADD instructions:
"The rule of thumb for ADDs and LEAs is that it is justified to use LEA
with a valid index and/or displacement for non-destructive destination purposes
(especially useful for stack offset cases), or to use a SCALE.
Otherwise, ADD(s) are preferable."

Differential Revision: http://reviews.llvm.org/D3826

llvm-svn: 209198
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86FixupLEAs.cpp
llvm/lib/Target/X86/X86InstrInfo.cpp
llvm/lib/Target/X86/X86InstrInfo.h
llvm/lib/Target/X86/X86Subtarget.cpp
llvm/lib/Target/X86/X86Subtarget.h
llvm/lib/Target/X86/X86TargetMachine.cpp