diff options
author | Lama Saba <lama.saba@intel.com> | 2017-05-18 08:11:50 +0000 |
---|---|---|
committer | Lama Saba <lama.saba@intel.com> | 2017-05-18 08:11:50 +0000 |
commit | 2ea271b54a702adcb014eb9d072faa04d74c9a1b (patch) | |
tree | b4a2d8d466d08b0c6dfedfea042f87d4bb80cf4c /llvm/lib/Target/X86/X86Subtarget.cpp | |
parent | 994b6c9b8e7d0d22032aa66edd09701e8df1dfd1 (diff) | |
download | bcm5719-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.cpp | 1 |
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? |