[ARM] Define a subtarget feature that is used to avoid using movt/movw
authorAkira Hatanaka <ahatanaka@apple.com>
Thu, 16 Jul 2015 00:58:23 +0000 (00:58 +0000)
committerAkira Hatanaka <ahatanaka@apple.com>
Thu, 16 Jul 2015 00:58:23 +0000 (00:58 +0000)
commit6780493e8dbfedf46a5b09116d0d83eae8325ae7
tree61117e05592bf5366f7ac385561ae5956f5b3c18
parent2cf6eb4a42387c271dcf4a206300f6c88e1bceba
[ARM] Define a subtarget feature that is used to avoid using movt/movw
pairs for 32-bit immediates.

This change is needed to avoid emitting movt/movw pairs when doing LTO
and do so on a per-function basis.

Out-of-tree projects currently using cl::opt option -arm-use-movt=0 or
false to avoid emitting movt/movw pairs should make changes to add
subtarget feature "+no-movt" (see the changes made to clang in r242368).

rdar://problem/21529937

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242369 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARM.td
lib/Target/ARM/ARMSubtarget.cpp
lib/Target/ARM/ARMSubtarget.h
test/CodeGen/ARM/fast-isel-mvn.ll
test/CodeGen/ARM/subtarget-no-movt.ll [new file with mode: 0644]