[X86] Improve EmitLoweredSelect for contiguous CMOV pseudo instructions.
authorMichael Kuperstein <michael.m.kuperstein@intel.com>
Thu, 6 Aug 2015 08:45:34 +0000 (08:45 +0000)
committerMichael Kuperstein <michael.m.kuperstein@intel.com>
Thu, 6 Aug 2015 08:45:34 +0000 (08:45 +0000)
commit1fc0f627b142076f3aa39db6cc9288b673e9cdae
tree784517a848ebdab4b764203bcae3c30a671e69e7
parente29d3ef447f8c4c0dac37d6e89797bc9e075eda8
[X86] Improve EmitLoweredSelect for contiguous CMOV pseudo instructions.

This change improves EmitLoweredSelect() so that multiple contiguous CMOV pseudo
instructions with the same (or exactly opposite) conditions get lowered using a single
new basic-block. This eliminates unnecessary extra basic-blocks (and CFG merge points)
when contiguous CMOVs are being lowered.

Patch by: kevin.b.smith@intel.com
Differential Revision: http://reviews.llvm.org/D11428

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244202 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/pseudo_cmov_lower.ll [new file with mode: 0644]
test/CodeGen/X86/pseudo_cmov_lower1.ll [new file with mode: 0644]
test/CodeGen/X86/pseudo_cmov_lower2.ll [new file with mode: 0644]