OSDN Git Service

X86: Introduce the "relocImm" ComplexPattern, which represents a relocatable immediate.
authorPeter Collingbourne <peter@pcc.me.uk>
Wed, 9 Nov 2016 17:51:58 +0000 (17:51 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Wed, 9 Nov 2016 17:51:58 +0000 (17:51 +0000)
commit7e3e10aad344770f08a78353885056d686c413ce
treee50e57a0b8da6de101fd483081507599502ff2bd
parentd73ad9fe7785fff340f7d0cf8f01db792f087f1e
X86: Introduce the "relocImm" ComplexPattern, which represents a relocatable immediate.

A relocatable immediate is either an immediate operand or an operand that
can be relocated by the linker to an immediate, such as a regular symbol
in non-PIC code.

Start using relocImm for 32-bit and 64-bit MOV instructions, and for operands
of type "imm32_su". Remove a number of now-redundant patterns.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286384 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetSelectionDAG.td
lib/Target/X86/X86ISelDAGToDAG.cpp
lib/Target/X86/X86InstrCompiler.td
lib/Target/X86/X86InstrInfo.td
utils/TableGen/CodeGenDAGPatterns.cpp
utils/TableGen/CodeGenTarget.cpp
utils/TableGen/CodeGenTarget.h