summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2010-04-20 22:34:09 +0000
committerDale Johannesen <dalej@apple.com>2010-04-20 22:34:09 +0000
commit0522b90cdb3eb3564a4ac7a922c7a43fd3c28743 (patch)
treed80f0b4673575fa80561133fc6b3ba7ffa01944e /llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
parent2176643241d8272ec1b1ef5c3ce008449ef7fd7d (diff)
downloadbcm5719-llvm-0522b90cdb3eb3564a4ac7a922c7a43fd3c28743.tar.gz
bcm5719-llvm-0522b90cdb3eb3564a4ac7a922c7a43fd3c28743.zip
Because of the EMMS problem, right now we have to support
user-defined operations that use MMX register types, but the compiler shouldn't generate them on its own. This adds a Synthesizable abstraction to represent this, and changes the vector widening computation so it won't produce MMX types. (The motivation is to remove noise from the ABI compatibility part of the gcc test suite, which has some breakage right now.) llvm-svn: 101951
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 11dca398b7c..5c3992ea061 100644
--- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -720,7 +720,7 @@ void TargetLowering::computeRegisterProperties() {
unsigned NElts = VT.getVectorNumElements();
for (unsigned nVT = i+1; nVT <= MVT::LAST_VECTOR_VALUETYPE; ++nVT) {
EVT SVT = (MVT::SimpleValueType)nVT;
- if (isTypeLegal(SVT) && SVT.getVectorElementType() == EltVT &&
+ if (isTypeSynthesizable(SVT) && SVT.getVectorElementType() == EltVT &&
SVT.getVectorNumElements() > NElts && NElts != 1) {
TransformToType[i] = SVT;
ValueTypeActions.setTypeAction(VT, Promote);
OpenPOWER on IntegriCloud