[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)
commit5260dba32346bdaec7277eed9f24b0c121e55e8b
tree1552540bc2a04fb5d88bf9b292eba1582f1aebea
parentb22b96366965db910547d803abb9d4946fe76b4a
[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

llvm-svn: 210466
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrCompiler.td
llvm/lib/Target/X86/X86InstrInfo.td
llvm/lib/Target/X86/X86Subtarget.cpp
llvm/lib/Target/X86/X86Subtarget.h