diff options
author | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2014-11-12 23:05:03 +0000 |
---|---|---|
committer | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2014-11-12 23:05:03 +0000 |
commit | 026600d967829aa2fd21749454ec0bfc8316bbce (patch) | |
tree | 0fbec77dfde4b2b639bcf631cec1b9025bb9cfbb /llvm/lib/CodeGen | |
parent | ec9a8c8b10f85a07037b2c7fc3d66d5fbd75c3d5 (diff) | |
download | bcm5719-llvm-026600d967829aa2fd21749454ec0bfc8316bbce.tar.gz bcm5719-llvm-026600d967829aa2fd21749454ec0bfc8316bbce.zip |
[CodeGenPrepare] Replace other uses of EVT::getEVT with TL::getValueType.
r221820 fixed a problem (PR21548) where an iPTR was used in TLI legality checks,
which isn't valid and resulted in a failed assertion.
The solution was to lower pointer types into the correct target's VT, by
using TL::getValueType instead of EVT::getEVT.
This commit changes 3 other uses of EVT::getEVT, but without any tests:
- One of these non-lowered EVTs is passed to allowsMisalignedMemoryAccesses,
which goes into target's TL implementation and doesn't cause any problem (yet.)
- Two others are passed to TLI.isOperationLegalOrCustom:
- one only looks at extensions, so doesn't concern pointers.
- one only looks at binary operators, so also isn't a problem.
The latter might some day be exposed to pointers and cause the same assert as
the original PR, because there's a comment hinting at also supporting cast ops.
For consistency, update all of them and be done with it.
llvm-svn: 221827
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/CodeGenPrepare.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp index bea75a2f2ad..60539a981ac 100644 --- a/llvm/lib/CodeGen/CodeGenPrepare.cpp +++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -2024,8 +2024,8 @@ AddressingModeMatcher::IsPromotionProfitable(unsigned MatchedSize, if (!ISDOpcode) return true; // Otherwise, check if the promoted instruction is legal or not. - return TLI.isOperationLegalOrCustom(ISDOpcode, - EVT::getEVT(PromotedInst->getType())); + return TLI.isOperationLegalOrCustom( + ISDOpcode, TLI.getValueType(PromotedInst->getType())); } /// MatchOperationAddr - Given an instruction or constant expr, see if we can @@ -3272,7 +3272,7 @@ class VectorPromoteHelper { unsigned Align = ST->getAlignment(); // Check if this store is supported. if (!TLI.allowsMisalignedMemoryAccesses( - EVT::getEVT(ST->getValueOperand()->getType()), AS, Align)) { + TLI.getValueType(ST->getValueOperand()->getType()), AS, Align)) { // If this is not supported, there is no way we can combine // the extract with the store. return false; @@ -3404,8 +3404,8 @@ public: if (!ISDOpcode) return false; return StressStoreExtract || - TLI.isOperationLegalOrCustom(ISDOpcode, - EVT::getEVT(getTransitionType(), true)); + TLI.isOperationLegalOrCustom( + ISDOpcode, TLI.getValueType(getTransitionType(), true)); } /// \brief Check whether or not \p Use can be combined |