From: Bill Wendling Date: Fri, 30 Jan 2009 02:49:26 +0000 (+0000) Subject: Forgot to propagate debug loc info here. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=73e16b2869fbc75ccb3506620b0342b6085fe843;p=oota-llvm.git Forgot to propagate debug loc info here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63371 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index 0a09d6443b1..1340ec5435a 100644 --- a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -1306,11 +1306,11 @@ SDValue DAGCombiner::visitMUL(SDNode *N) { // single-use add), we should put the negate there. return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, DAG.getConstant(0, VT), - DAG.getNode(ISD::SHL, VT, N0, + DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, N0, DAG.getConstant(Log2_64(-N1C->getSExtValue()), TLI.getShiftAmountTy()))); // (mul (shl X, c1), c2) -> (mul X, c2 << c1) - if (N1C && N0.getOpcode() == ISD::SHL && + if (N1C && N0.getOpcode() == ISD::SHL && isa(N0.getOperand(1))) { SDValue C3 = DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, N1, N0.getOperand(1)); @@ -1332,6 +1332,7 @@ SDValue DAGCombiner::visitMUL(SDNode *N) { N1.getNode()->hasOneUse()) { Sh = N1; Y = N0; } + if (Sh.getNode()) { SDValue Mul = DAG.getNode(ISD::MUL, N->getDebugLoc(), VT, Sh.getOperand(0), Y); @@ -1339,6 +1340,7 @@ SDValue DAGCombiner::visitMUL(SDNode *N) { Mul, Sh.getOperand(1)); } } + // fold (mul (add x, c1), c2) -> (add (mul x, c2), c1*c2) if (N1C && N0.getOpcode() == ISD::ADD && N0.getNode()->hasOneUse() && isa(N0.getOperand(1)))