summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86Subtarget.cpp
diff options
context:
space:
mode:
authorLama Saba <lama.saba@intel.com>2017-05-18 08:11:50 +0000
committerLama Saba <lama.saba@intel.com>2017-05-18 08:11:50 +0000
commit2ea271b54a702adcb014eb9d072faa04d74c9a1b (patch)
treeb4a2d8d466d08b0c6dfedfea042f87d4bb80cf4c /llvm/lib/Target/X86/X86Subtarget.cpp
parent994b6c9b8e7d0d22032aa66edd09701e8df1dfd1 (diff)
downloadbcm5719-llvm-2ea271b54a702adcb014eb9d072faa04d74c9a1b.tar.gz
bcm5719-llvm-2ea271b54a702adcb014eb9d072faa04d74c9a1b.zip
[X86] Replace slow LEA instructions in X86
According to Intel's Optimization Reference Manual for SNB+: " For LEA instructions with three source operands and some specific situations, instruction latency has increased to 3 cycles, and must dispatch via port 1: - LEA that has all three source operands: base, index, and offset - LEA that uses base and index registers where the base is EBP, RBP,or R13 - LEA that uses RIP relative addressing mode - LEA that uses 16-bit addressing mode " This patch currently handles the first 2 cases only. Differential Revision: https://reviews.llvm.org/D32277 llvm-svn: 303333
Diffstat (limited to 'llvm/lib/Target/X86/X86Subtarget.cpp')
-rw-r--r--llvm/lib/Target/X86/X86Subtarget.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86Subtarget.cpp b/llvm/lib/Target/X86/X86Subtarget.cpp
index d66d39dcee1..e8f1fa09741 100644
--- a/llvm/lib/Target/X86/X86Subtarget.cpp
+++ b/llvm/lib/Target/X86/X86Subtarget.cpp
@@ -320,6 +320,7 @@ void X86Subtarget::initializeEnvironment() {
CallRegIndirect = false;
LEAUsesAG = false;
SlowLEA = false;
+ Slow3OpsLEA = false;
SlowIncDec = false;
stackAlignment = 4;
// FIXME: this is a known good value for Yonah. How about others?
OpenPOWER on IntegriCloud