aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/X86/X86TargetMachine.cpp
diff options
context:
space:
mode:
authorAlexey Volkov <avolkov.intel@gmail.com>2014-05-20 08:55:50 +0000
committerAlexey Volkov <avolkov.intel@gmail.com>2014-05-20 08:55:50 +0000
commit6226de67210755a56d15dca7f1891fe7fddda3ca (patch)
tree49e5679bb8c10b7fed4057f8b74aecbf2b818d01 /llvm/lib/Target/X86/X86TargetMachine.cpp
parentabdf44e7f38d392fed85692b2a31bf1578f3ee3b (diff)
downloadllvm-6226de67210755a56d15dca7f1891fe7fddda3ca.zip
llvm-6226de67210755a56d15dca7f1891fe7fddda3ca.tar.gz
llvm-6226de67210755a56d15dca7f1891fe7fddda3ca.tar.bz2
[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
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetMachine.cpp')
-rw-r--r--llvm/lib/Target/X86/X86TargetMachine.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86TargetMachine.cpp b/llvm/lib/Target/X86/X86TargetMachine.cpp
index cb5ab0d..d0449f4 100644
--- a/llvm/lib/Target/X86/X86TargetMachine.cpp
+++ b/llvm/lib/Target/X86/X86TargetMachine.cpp
@@ -226,7 +226,8 @@ bool X86PassConfig::addPreEmitPass() {
ShouldPrint = true;
}
if (getOptLevel() != CodeGenOpt::None &&
- getX86Subtarget().LEAusesAG()){
+ (getX86Subtarget().LEAusesAG() ||
+ getX86Subtarget().slowLEA())){
addPass(createX86FixupLEAs());
ShouldPrint = true;
}