aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/SelectionDAG/LegalizeTypes.cpp')
-rw-r--r--lib/CodeGen/SelectionDAG/LegalizeTypes.cpp18
1 files changed, 2 insertions, 16 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp b/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
index 632524fd96..dc0f7957d7 100644
--- a/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
+++ b/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
@@ -116,11 +116,8 @@ void DAGTypeLegalizer::PerformExpensiveChecks() {
cerr << "Unprocessed value in a map!";
Failed = true;
}
- } else if (isTypeLegal(Res.getValueType()) || IgnoreNodeResults(I)) {
- // FIXME: Because of PR2957, the build vector can be placed on this
- // list but if the associated vector shuffle is split, the build vector
- // can also be split so we allow this to go through for now.
- if (Mapped > 1 && Res.getOpcode() != ISD::BUILD_VECTOR) {
+ } else if (isTypeLegal(Res.getValueType())) {
+ if (Mapped > 1) {
cerr << "Value with legal type was transformed!";
Failed = true;
}
@@ -266,13 +263,6 @@ ScanOperands:
if (IgnoreNodeResults(N->getOperand(i).getNode()))
continue;
- if (N->getOpcode() == ISD::VECTOR_SHUFFLE && i == 2) {
- // The shuffle mask doesn't need to be a legal vector type.
- // FIXME: We can remove this once we fix PR2957.
- SetIgnoredNodeResult(N->getOperand(2).getNode());
- continue;
- }
-
MVT OpVT = N->getOperand(i).getValueType();
switch (getTypeAction(OpVT)) {
default:
@@ -842,10 +832,6 @@ void DAGTypeLegalizer::SetWidenedVector(SDValue Op, SDValue Result) {
OpEntry = Result;
}
-// Set to ignore result
-void DAGTypeLegalizer::SetIgnoredNodeResult(SDNode* N) {
- IgnoredNodesResultsSet.insert(N);
-}
//===----------------------------------------------------------------------===//
// Utilities.