OSDN Git Service

[ARM] Do not test for CPUs, use SubtargetFeatures. Also remove 1 flag
authorDiana Picus <diana.picus@linaro.org>
Thu, 7 Jul 2016 09:11:39 +0000 (09:11 +0000)
committerDiana Picus <diana.picus@linaro.org>
Thu, 7 Jul 2016 09:11:39 +0000 (09:11 +0000)
commit0862928c388358ec669812b7b1a27c6026fe6b70
tree46db3923cba175d873187e6fc782cb4cc15fba69
parent954c015f8a1c7ba74da53d6b1451d1c4212bf348
[ARM] Do not test for CPUs, use SubtargetFeatures. Also remove 1 flag

This is a follow-up for r273544.

The end goal is to get rid of the isSwift / isCortexXY / isWhatever methods.

This commit also removes a command line flag that isn't used in any of the tests:
check-vmlx-hazards. It can be replaced easily with the mattr mechanism, since
this is now a subtarget feature.

There is still some work left regarding FeatureExpandMLx. In the past MLx
expansion was enabled for subtargets with hasVFP2(), until r129775 [1] switched
from that to isCortexA9, without too much justification.

In spite of that, the code performing MLx expansion still contains calls to
isSwift/isLikeA9, although the results of those are pretty clear given that
we're only enabling it for the A9.

We should try to enable it for all targets that have FeatureHasVMLxHazards, as
it seems to be closely related to that behaviour, and if that is possible try to
clean up the MLx expansion pass from all calls to isWhatever. This will require
some performance testing, so it will be done in another patch.

[1] http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20110418/119725.html

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274742 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARM.td
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/ARM/ARMSubtarget.h
lib/Target/ARM/MLxExpansionPass.cpp