[X86] Use ADD/SUB instead of INC/DEC for Silvermont
authorAlexey Volkov <avolkov.intel@gmail.com>
Mon, 9 Jun 2014 11:40:41 +0000 (11:40 +0000)
committerAlexey Volkov <avolkov.intel@gmail.com>
Mon, 9 Jun 2014 11:40:41 +0000 (11:40 +0000)
commita2bc6951a028412e7af5e68aa369daa4611147b3
treee36b5b05d696ec346157589ad1e2ecb702e02123
parenta8d18fe94687b65f136b7222c2cc998c2148e39c
[X86] Use ADD/SUB instead of INC/DEC for Silvermont

According to Intel Software Optimization Manual
on Silvermont INC or DEC instructions require
an additional uop to merge the flags.
As a result, a branch instruction depending
on an INC or a DEC instruction incurs a 1 cycle penalty.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210466 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86.td
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrCompiler.td
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86Subtarget.cpp
lib/Target/X86/X86Subtarget.h