[ARM] Define a subtarget feature and use it to decide whether long calls should
authorAkira Hatanaka <ahatanaka@apple.com>
Tue, 7 Jul 2015 06:54:42 +0000 (06:54 +0000)
committerAkira Hatanaka <ahatanaka@apple.com>
Tue, 7 Jul 2015 06:54:42 +0000 (06:54 +0000)
commita744879a6588565f4ab627d597c54c8a3fb3559f
tree199929248a6b67aef216a62a72e2cfa662a7514f
parent6304789ddebff87834341397a8addbc78fd2b51b
[ARM] Define a subtarget feature and use it to decide whether long calls should
be emitted.

This is needed to enable ARM long calls for LTO and enable and disable it on a
per-function basis.

Out-of-tree projects currently using EnableARMLongCalls to emit long calls
should start passing "+long-calls" to the feature string (see the changes made
to clang in r241565).

rdar://problem/21529937

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241566 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARM.td
lib/Target/ARM/ARMFastISel.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMSubtarget.cpp
lib/Target/ARM/ARMSubtarget.h
test/CodeGen/ARM/Windows/long-calls.ll
test/CodeGen/ARM/fast-isel-call.ll
test/CodeGen/ARM/fast-isel-intrinsic.ll
test/CodeGen/ARM/fast-isel-static.ll
test/CodeGen/ARM/subtarget-features-long-calls.ll [new file with mode: 0644]