diff options
Diffstat (limited to 'lib/CodeGen/SelectionDAG')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index f1d81bcfb6..28215ad59b 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -854,6 +854,7 @@ SDOperand SelectionDAG::SimplifySetCC(MVT::ValueType VT, SDOperand N1, return getSetCC(VT, N2, N1, ISD::getSetCCSwappedOperands(Cond)); } + if (!CombinerEnabled) { if (N1 == N2) { // We can always fold X == Y for integer setcc's. if (MVT::isInteger(N1.getValueType())) @@ -979,7 +980,7 @@ SDOperand SelectionDAG::SimplifySetCC(MVT::ValueType VT, SDOperand N1, N1 = getNode(ISD::ZERO_EXTEND, VT, N1); return N1; } - + } // Could not fold it. return SDOperand(); } @@ -1807,6 +1808,7 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT, if (N2 == N3) return N2; // select C, X, X -> X + if (!CombinerEnabled) { if (VT == MVT::i1) { // Boolean SELECT if (N2C) { if (N2C->getValue()) // select C, 1, X -> C | X @@ -1834,6 +1836,7 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT, N3, cast<CondCodeSDNode>(N1.getOperand(2))->get()); if (Simp.Val) return Simp; } + } break; case ISD::BRCOND: if (N2C) |