OSDN Git Service

[CodeGenPrepare] Move Extension Instructions Through Logical And Shift Instructions
authorGuozhi Wei <carrot@google.com>
Tue, 8 May 2018 17:58:32 +0000 (17:58 +0000)
committerGuozhi Wei <carrot@google.com>
Tue, 8 May 2018 17:58:32 +0000 (17:58 +0000)
commit14bd1f8c838389f302b489110cd31174460344c2
treec825fa4a921660d6bb6a1cd84b02d1ae3a71bab1
parent4ad2dcac818f68c84409e001660560b59c1eac9a
[CodeGenPrepare] Move Extension Instructions Through Logical And Shift Instructions

CodeGenPrepare pass move extension instructions close to load instructions in different BB, so they can be combined later. But the extension instructions can't move through logical and shift instructions in current implementation. This patch enables this enhancement, so we can eliminate more extension instructions.

Differential Revision: https://reviews.llvm.org/D45537

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331783 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CodeGenPrepare.cpp
test/CodeGen/X86/cmov.ll
test/CodeGen/X86/ins_subreg_coalesce-1.ll
test/CodeGen/X86/zext-logicop-shift-load.ll
test/Transforms/CodeGenPrepare/X86/ext-logicop.ll [new file with mode: 0644]