Changes in directory llvm/lib/CodeGen/SelectionDAG:
LegalizeDAG.cpp updated: 1.248 -> 1.249 --- Log message: allow custom lowering to return null for legal results --- Diffs of the changes: (+15 -17) LegalizeDAG.cpp | 32 +++++++++++++++----------------- 1 files changed, 15 insertions(+), 17 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.248 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.249 --- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.248 Sat Dec 24 17:42:32 2005 +++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Sat Dec 24 19:07:37 2005 @@ -1956,11 +1956,6 @@ break; } switch (TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0))) { - case TargetLowering::Legal: - if (Tmp1 != Node->getOperand(0) || - Tmp2 != Node->getOperand(1)) - Result = DAG.getNode(Node->getOpcode(), Node->getValueType(0), Tmp1,Tmp2); - break; case TargetLowering::Custom: { Result = DAG.getNode(Node->getOpcode(), Node->getValueType(0), Tmp1, Tmp2); SDOperand Tmp = TLI.LowerOperation(Result, DAG); @@ -1968,9 +1963,13 @@ Tmp = LegalizeOp(Tmp); // Relegalize input. AddLegalizedOperand(Op, Tmp); return Tmp; - } - break; + } //else it was considered legal and we fall through } + case TargetLowering::Legal: + if (Tmp1 != Node->getOperand(0) || + Tmp2 != Node->getOperand(1)) + Result = DAG.getNode(Node->getOpcode(), Node->getValueType(0), Tmp1,Tmp2); + break; default: assert(0 && "Operation not supported"); } @@ -2007,14 +2006,6 @@ Tmp1 = LegalizeOp(Node->getOperand(0)); // LHS Tmp2 = LegalizeOp(Node->getOperand(1)); // RHS switch (TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0))) { - case TargetLowering::Legal: - if (Tmp1 != Node->getOperand(0) || - Tmp2 != Node->getOperand(1)) - Result = DAG.getNode(Node->getOpcode(), Node->getValueType(0), Tmp1, - Tmp2); - break; - case TargetLowering::Promote: - assert(0 && "Cannot promote handle this yet!"); case TargetLowering::Custom: { Result = DAG.getNode(Node->getOpcode(), Node->getValueType(0), Tmp1, Tmp2); SDOperand Tmp = TLI.LowerOperation(Result, DAG); @@ -2022,9 +2013,16 @@ Tmp = LegalizeOp(Tmp); // Relegalize input. AddLegalizedOperand(Op, Tmp); return Tmp; - } - break; + } //else it was considered legal and we fall through } + case TargetLowering::Legal: + if (Tmp1 != Node->getOperand(0) || + Tmp2 != Node->getOperand(1)) + Result = DAG.getNode(Node->getOpcode(), Node->getValueType(0), Tmp1, + Tmp2); + break; + case TargetLowering::Promote: + assert(0 && "Cannot promote handle this yet!"); case TargetLowering::Expand: if (MVT::isInteger(Node->getValueType(0))) { MVT::ValueType VT = Node->getValueType(0); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits