summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorAhmed Bougacha <ahmed.bougacha@gmail.com>2014-11-12 23:05:03 +0000
committerAhmed Bougacha <ahmed.bougacha@gmail.com>2014-11-12 23:05:03 +0000
commit026600d967829aa2fd21749454ec0bfc8316bbce (patch)
tree0fbec77dfde4b2b639bcf631cec1b9025bb9cfbb /llvm/lib/CodeGen
parentec9a8c8b10f85a07037b2c7fc3d66d5fbd75c3d5 (diff)
downloadbcm5719-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.cpp10
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
OpenPOWER on IntegriCloud