Lines Matching refs:DAG
88 static SDValue getCopyFromPartsVector(SelectionDAG &DAG, DebugLoc DL,
97 static SDValue getCopyFromParts(SelectionDAG &DAG, DebugLoc DL, in getCopyFromParts() argument
102 return getCopyFromPartsVector(DAG, DL, Parts, NumParts, PartVT, ValueVT); in getCopyFromParts()
105 const TargetLowering &TLI = DAG.getTargetLoweringInfo(); in getCopyFromParts()
119 ValueVT : EVT::getIntegerVT(*DAG.getContext(), RoundBits); in getCopyFromParts()
122 EVT HalfVT = EVT::getIntegerVT(*DAG.getContext(), RoundBits/2); in getCopyFromParts()
125 Lo = getCopyFromParts(DAG, DL, Parts, RoundParts / 2, in getCopyFromParts()
127 Hi = getCopyFromParts(DAG, DL, Parts + RoundParts / 2, in getCopyFromParts()
130 Lo = DAG.getNode(ISD::BITCAST, DL, HalfVT, Parts[0]); in getCopyFromParts()
131 Hi = DAG.getNode(ISD::BITCAST, DL, HalfVT, Parts[1]); in getCopyFromParts()
137 Val = DAG.getNode(ISD::BUILD_PAIR, DL, RoundVT, Lo, Hi); in getCopyFromParts()
142 EVT OddVT = EVT::getIntegerVT(*DAG.getContext(), OddParts * PartBits); in getCopyFromParts()
143 Hi = getCopyFromParts(DAG, DL, in getCopyFromParts()
150 EVT TotalVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyFromParts()
151 Hi = DAG.getNode(ISD::ANY_EXTEND, DL, TotalVT, Hi); in getCopyFromParts()
152 Hi = DAG.getNode(ISD::SHL, DL, TotalVT, Hi, in getCopyFromParts()
153 DAG.getConstant(Lo.getValueType().getSizeInBits(), in getCopyFromParts()
155 Lo = DAG.getNode(ISD::ZERO_EXTEND, DL, TotalVT, Lo); in getCopyFromParts()
156 Val = DAG.getNode(ISD::OR, DL, TotalVT, Lo, Hi); in getCopyFromParts()
163 Lo = DAG.getNode(ISD::BITCAST, DL, EVT(MVT::f64), Parts[0]); in getCopyFromParts()
164 Hi = DAG.getNode(ISD::BITCAST, DL, EVT(MVT::f64), Parts[1]); in getCopyFromParts()
167 Val = DAG.getNode(ISD::BUILD_PAIR, DL, ValueVT, Lo, Hi); in getCopyFromParts()
172 EVT IntVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyFromParts()
173 Val = getCopyFromParts(DAG, DL, Parts, NumParts, PartVT, IntVT); in getCopyFromParts()
189 Val = DAG.getNode(AssertOp, DL, PartVT, Val, in getCopyFromParts()
190 DAG.getValueType(ValueVT)); in getCopyFromParts()
191 return DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyFromParts()
193 return DAG.getNode(ISD::ANY_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
199 return DAG.getNode(ISD::FP_ROUND, DL, ValueVT, Val, in getCopyFromParts()
200 DAG.getIntPtrConstant(1)); in getCopyFromParts()
202 return DAG.getNode(ISD::FP_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
206 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromParts()
217 static SDValue getCopyFromPartsVector(SelectionDAG &DAG, DebugLoc DL, in getCopyFromPartsVector() argument
222 const TargetLowering &TLI = DAG.getTargetLoweringInfo(); in getCopyFromPartsVector()
230 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, in getCopyFromPartsVector()
244 Ops[i] = getCopyFromParts(DAG, DL, &Parts[i], 1, in getCopyFromPartsVector()
253 Ops[i] = getCopyFromParts(DAG, DL, &Parts[i * Factor], Factor, in getCopyFromPartsVector()
259 Val = DAG.getNode(IntermediateVT.isVector() ? in getCopyFromPartsVector()
278 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, ValueVT, Val, in getCopyFromPartsVector()
279 DAG.getIntPtrConstant(0)); in getCopyFromPartsVector()
284 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
290 return DAG.getNode((Smaller ? ISD::TRUNCATE : ISD::ANY_EXTEND), in getCopyFromPartsVector()
299 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
308 Val = DAG.getNode((Smaller ? ISD::TRUNCATE : ISD::ANY_EXTEND), in getCopyFromPartsVector()
312 return DAG.getNode(ISD::BUILD_VECTOR, DL, ValueVT, Val); in getCopyFromPartsVector()
318 static void getCopyToPartsVector(SelectionDAG &DAG, DebugLoc dl,
325 static void getCopyToParts(SelectionDAG &DAG, DebugLoc DL, in getCopyToParts() argument
333 return getCopyToPartsVector(DAG, DL, Val, Parts, NumParts, PartVT); in getCopyToParts()
335 const TargetLowering &TLI = DAG.getTargetLoweringInfo(); in getCopyToParts()
354 Val = DAG.getNode(ISD::FP_EXTEND, DL, PartVT, Val); in getCopyToParts()
358 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
359 Val = DAG.getNode(ExtendKind, DL, ValueVT, Val); in getCopyToParts()
364 Val = DAG.getNode(ISD::BITCAST, DL, PartVT, Val); in getCopyToParts()
369 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
370 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
392 SDValue OddVal = DAG.getNode(ISD::SRL, DL, ValueVT, Val, in getCopyToParts()
393 DAG.getIntPtrConstant(RoundBits)); in getCopyToParts()
394 getCopyToParts(DAG, DL, OddVal, Parts + RoundParts, OddParts, PartVT); in getCopyToParts()
401 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
402 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
407 Parts[0] = DAG.getNode(ISD::BITCAST, DL, in getCopyToParts()
408 EVT::getIntegerVT(*DAG.getContext(), in getCopyToParts()
415 EVT ThisVT = EVT::getIntegerVT(*DAG.getContext(), ThisBits); in getCopyToParts()
419 Part1 = DAG.getNode(ISD::EXTRACT_ELEMENT, DL, in getCopyToParts()
420 ThisVT, Part0, DAG.getIntPtrConstant(1)); in getCopyToParts()
421 Part0 = DAG.getNode(ISD::EXTRACT_ELEMENT, DL, in getCopyToParts()
422 ThisVT, Part0, DAG.getIntPtrConstant(0)); in getCopyToParts()
425 Part0 = DAG.getNode(ISD::BITCAST, DL, PartVT, Part0); in getCopyToParts()
426 Part1 = DAG.getNode(ISD::BITCAST, DL, PartVT, Part1); in getCopyToParts()
438 static void getCopyToPartsVector(SelectionDAG &DAG, DebugLoc DL, in getCopyToPartsVector() argument
443 const TargetLowering &TLI = DAG.getTargetLoweringInfo(); in getCopyToPartsVector()
450 Val = DAG.getNode(ISD::BITCAST, DL, PartVT, Val); in getCopyToPartsVector()
459 Ops.push_back(DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, in getCopyToPartsVector()
460 ElementVT, Val, DAG.getIntPtrConstant(i))); in getCopyToPartsVector()
464 Ops.push_back(DAG.getUNDEF(ElementVT)); in getCopyToPartsVector()
466 Val = DAG.getNode(ISD::BUILD_VECTOR, DL, PartVT, &Ops[0], Ops.size()); in getCopyToPartsVector()
479 Val = DAG.getNode((Smaller ? ISD::TRUNCATE : ISD::ANY_EXTEND), in getCopyToPartsVector()
485 Val = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, in getCopyToPartsVector()
486 PartVT, Val, DAG.getIntPtrConstant(0)); in getCopyToPartsVector()
489 Val = DAG.getNode((Smaller ? ISD::TRUNCATE : ISD::ANY_EXTEND), in getCopyToPartsVector()
500 unsigned NumRegs = TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, in getCopyToPartsVector()
513 Ops[i] = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, in getCopyToPartsVector()
515 DAG.getIntPtrConstant(i * (NumElements / NumIntermediates))); in getCopyToPartsVector()
517 Ops[i] = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, in getCopyToPartsVector()
518 IntermediateVT, Val, DAG.getIntPtrConstant(i)); in getCopyToPartsVector()
526 getCopyToParts(DAG, DL, Ops[i], &Parts[i], 1, PartVT); in getCopyToPartsVector()
534 getCopyToParts(DAG, DL, Ops[i], &Parts[i*Factor], Factor, PartVT); in getCopyToPartsVector()
616 SDValue getCopyFromRegs(SelectionDAG &DAG, FunctionLoweringInfo &FuncInfo,
624 void getCopyToRegs(SDValue Val, SelectionDAG &DAG, DebugLoc dl,
632 SelectionDAG &DAG,
641 SDValue RegsForValue::getCopyFromRegs(SelectionDAG &DAG, in getCopyFromRegs() argument
649 const TargetLowering &TLI = DAG.getTargetLoweringInfo(); in getCopyFromRegs()
657 unsigned NumRegs = TLI.getNumRegisters(*DAG.getContext(), ValueVT); in getCopyFromRegs()
664 P = DAG.getCopyFromReg(Chain, dl, Regs[Part+i], RegisterVT); in getCopyFromRegs()
666 P = DAG.getCopyFromReg(Chain, dl, Regs[Part+i], RegisterVT, *Flag); in getCopyFromRegs()
713 Parts[i] = DAG.getNode(isSExt ? ISD::AssertSext : ISD::AssertZext, dl, in getCopyFromRegs()
714 RegisterVT, P, DAG.getValueType(FromVT)); in getCopyFromRegs()
717 Values[Value] = getCopyFromParts(DAG, dl, Parts.begin(), in getCopyFromRegs()
723 return DAG.getNode(ISD::MERGE_VALUES, dl, in getCopyFromRegs()
724 DAG.getVTList(&ValueVTs[0], ValueVTs.size()), in getCopyFromRegs()
732 void RegsForValue::getCopyToRegs(SDValue Val, SelectionDAG &DAG, DebugLoc dl, in getCopyToRegs() argument
734 const TargetLowering &TLI = DAG.getTargetLoweringInfo(); in getCopyToRegs()
741 unsigned NumParts = TLI.getNumRegisters(*DAG.getContext(), ValueVT); in getCopyToRegs()
744 getCopyToParts(DAG, dl, Val.getValue(Val.getResNo() + Value), in getCopyToRegs()
754 Part = DAG.getCopyToReg(Chain, dl, Regs[i], Parts[i]); in getCopyToRegs()
756 Part = DAG.getCopyToReg(Chain, dl, Regs[i], Parts[i], *Flag); in getCopyToRegs()
776 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, &Chains[0], NumRegs); in getCopyToRegs()
784 SelectionDAG &DAG, in AddInlineAsmOperands() argument
786 const TargetLowering &TLI = DAG.getTargetLoweringInfo(); in AddInlineAsmOperands()
791 SDValue Res = DAG.getTargetConstant(Flag, MVT::i32); in AddInlineAsmOperands()
795 unsigned NumRegs = TLI.getNumRegisters(*DAG.getContext(), ValueVTs[Value]); in AddInlineAsmOperands()
799 Ops.push_back(DAG.getRegister(Regs[Reg++], RegisterVT)); in AddInlineAsmOperands()
807 TD = DAG.getTarget().getTargetData(); in init()
842 return DAG.getRoot(); in getRoot()
846 DAG.setRoot(Root); in getRoot()
852 SDValue Root = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), MVT::Other, in getRoot()
855 DAG.setRoot(Root); in getRoot()
864 SDValue Root = DAG.getRoot(); in getControlRoot()
882 Root = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), MVT::Other, in getControlRoot()
886 DAG.setRoot(Root); in getControlRoot()
891 if (DAG.GetOrdering(Node) != 0) return; // Already has ordering. in AssignOrderingToNode()
892 DAG.AssignOrdering(Node, SDNodeOrder); in AssignOrderingToNode()
949 SDV = DAG.getDbgValue(Variable, Val.getNode(), in resolveDanglingDebugInfo()
951 DAG.AddDbgValue(SDV, Val.getNode(), false); in resolveDanglingDebugInfo()
972 RegsForValue RFV(*DAG.getContext(), TLI, InReg, V->getType()); in getValue()
973 SDValue Chain = DAG.getEntryNode(); in getValue()
974 N = RFV.getCopyFromRegs(DAG, FuncInfo, getCurDebugLoc(), Chain,NULL); in getValue()
1007 return DAG.getConstant(*CI, VT); in getValueImpl()
1010 return DAG.getGlobalAddress(GV, getCurDebugLoc(), VT); in getValueImpl()
1013 return DAG.getConstant(0, TLI.getPointerTy()); in getValueImpl()
1016 return DAG.getConstantFP(*CFP, VT); in getValueImpl()
1019 return DAG.getUNDEF(VT); in getValueImpl()
1041 return DAG.getMergeValues(&Constants[0], Constants.size(), in getValueImpl()
1058 Constants[i] = DAG.getUNDEF(EltVT); in getValueImpl()
1060 Constants[i] = DAG.getConstantFP(0, EltVT); in getValueImpl()
1062 Constants[i] = DAG.getConstant(0, EltVT); in getValueImpl()
1065 return DAG.getMergeValues(&Constants[0], NumElts, in getValueImpl()
1070 return DAG.getBlockAddress(BA, VT); in getValueImpl()
1087 Op = DAG.getConstantFP(0, EltVT); in getValueImpl()
1089 Op = DAG.getConstant(0, EltVT); in getValueImpl()
1094 return NodeMap[V] = DAG.getNode(ISD::BUILD_VECTOR, getCurDebugLoc(), in getValueImpl()
1104 return DAG.getFrameIndex(SI->second, TLI.getPointerTy()); in getValueImpl()
1110 RegsForValue RFV(*DAG.getContext(), TLI, InReg, Inst->getType()); in getValueImpl()
1111 SDValue Chain = DAG.getEntryNode(); in getValueImpl()
1112 return RFV.getCopyFromRegs(DAG, FuncInfo, getCurDebugLoc(), Chain, NULL); in getValueImpl()
1135 SDValue RetPtr = DAG.getRegister(DemoteReg, PtrValueVTs[0]); in visitRet()
1145 SDValue Add = DAG.getNode(ISD::ADD, getCurDebugLoc(), in visitRet()
1147 DAG.getIntPtrConstant(Offsets[i])); in visitRet()
1149 DAG.getStore(Chain, getCurDebugLoc(), in visitRet()
1155 Chain = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), in visitRet()
1175 VT = TLI.getTypeForExtArgOrReturn(*DAG.getContext(), VT, ExtendKind); in visitRet()
1177 unsigned NumParts = TLI.getNumRegisters(*DAG.getContext(), VT); in visitRet()
1178 EVT PartVT = TLI.getRegisterType(*DAG.getContext(), VT); in visitRet()
1180 getCopyToParts(DAG, getCurDebugLoc(), in visitRet()
1204 bool isVarArg = DAG.getMachineFunction().getFunction()->isVarArg(); in visitRet()
1206 DAG.getMachineFunction().getFunction()->getCallingConv(); in visitRet()
1208 Outs, OutVals, getCurDebugLoc(), DAG); in visitRet()
1215 DAG.setRoot(Chain); in visitRet()
1337 CaseBlock CB(ISD::SETEQ, Cond, ConstantInt::getTrue(*DAG.getContext()), in EmitBranchForMergedCondition()
1362 MachineFunction &MF = DAG.getMachineFunction(); in FindMergedConditions()
1448 DAG.setRoot(DAG.getNode(ISD::BR, getCurDebugLoc(), in visitBr()
1450 DAG.getBasicBlock(Succ0MBB))); in visitBr()
1511 CaseBlock CB(ISD::SETEQ, CondVal, ConstantInt::getTrue(*DAG.getContext()), in visitBr()
1531 if (CB.CmpRHS == ConstantInt::getTrue(*DAG.getContext()) && in visitSwitchCase()
1534 else if (CB.CmpRHS == ConstantInt::getFalse(*DAG.getContext()) && in visitSwitchCase()
1536 SDValue True = DAG.getConstant(1, CondLHS.getValueType()); in visitSwitchCase()
1537 Cond = DAG.getNode(ISD::XOR, dl, CondLHS.getValueType(), CondLHS, True); in visitSwitchCase()
1539 Cond = DAG.getSetCC(dl, MVT::i1, CondLHS, getValue(CB.CmpRHS), CB.CC); in visitSwitchCase()
1550 Cond = DAG.getSetCC(dl, MVT::i1, CmpOp, DAG.getConstant(High, VT), in visitSwitchCase()
1553 SDValue SUB = DAG.getNode(ISD::SUB, dl, in visitSwitchCase()
1554 VT, CmpOp, DAG.getConstant(Low, VT)); in visitSwitchCase()
1555 Cond = DAG.getSetCC(dl, MVT::i1, SUB, in visitSwitchCase()
1556 DAG.getConstant(High-Low, VT), ISD::SETULE); in visitSwitchCase()
1575 SDValue True = DAG.getConstant(1, Cond.getValueType()); in visitSwitchCase()
1576 Cond = DAG.getNode(ISD::XOR, dl, Cond.getValueType(), Cond, True); in visitSwitchCase()
1579 SDValue BrCond = DAG.getNode(ISD::BRCOND, dl, in visitSwitchCase()
1581 DAG.getBasicBlock(CB.TrueBB)); in visitSwitchCase()
1586 BrCond = DAG.getNode(ISD::BR, dl, MVT::Other, BrCond, in visitSwitchCase()
1587 DAG.getBasicBlock(CB.FalseBB)); in visitSwitchCase()
1589 DAG.setRoot(BrCond); in visitSwitchCase()
1597 SDValue Index = DAG.getCopyFromReg(getControlRoot(), getCurDebugLoc(), in visitJumpTable()
1599 SDValue Table = DAG.getJumpTable(JT.JTI, PTy); in visitJumpTable()
1600 SDValue BrJumpTable = DAG.getNode(ISD::BR_JT, getCurDebugLoc(), in visitJumpTable()
1603 DAG.setRoot(BrJumpTable); in visitJumpTable()
1616 SDValue Sub = DAG.getNode(ISD::SUB, getCurDebugLoc(), VT, SwitchOp, in visitJumpTableHeader()
1617 DAG.getConstant(JTH.First, VT)); in visitJumpTableHeader()
1624 SwitchOp = DAG.getZExtOrTrunc(Sub, getCurDebugLoc(), TLI.getPointerTy()); in visitJumpTableHeader()
1627 SDValue CopyTo = DAG.getCopyToReg(getControlRoot(), getCurDebugLoc(), in visitJumpTableHeader()
1634 SDValue CMP = DAG.getSetCC(getCurDebugLoc(), in visitJumpTableHeader()
1636 DAG.getConstant(JTH.Last-JTH.First,VT), in visitJumpTableHeader()
1647 SDValue BrCond = DAG.getNode(ISD::BRCOND, getCurDebugLoc(), in visitJumpTableHeader()
1649 DAG.getBasicBlock(JT.Default)); in visitJumpTableHeader()
1652 BrCond = DAG.getNode(ISD::BR, getCurDebugLoc(), MVT::Other, BrCond, in visitJumpTableHeader()
1653 DAG.getBasicBlock(JT.MBB)); in visitJumpTableHeader()
1655 DAG.setRoot(BrCond); in visitJumpTableHeader()
1665 SDValue Sub = DAG.getNode(ISD::SUB, getCurDebugLoc(), VT, SwitchOp, in visitBitTestHeader()
1666 DAG.getConstant(B.First, VT)); in visitBitTestHeader()
1669 SDValue RangeCmp = DAG.getSetCC(getCurDebugLoc(), in visitBitTestHeader()
1671 Sub, DAG.getConstant(B.Range, VT), in visitBitTestHeader()
1689 Sub = DAG.getZExtOrTrunc(Sub, getCurDebugLoc(), VT); in visitBitTestHeader()
1694 SDValue CopyTo = DAG.getCopyToReg(getControlRoot(), getCurDebugLoc(), in visitBitTestHeader()
1709 SDValue BrRange = DAG.getNode(ISD::BRCOND, getCurDebugLoc(), in visitBitTestHeader()
1711 DAG.getBasicBlock(B.Default)); in visitBitTestHeader()
1714 BrRange = DAG.getNode(ISD::BR, getCurDebugLoc(), MVT::Other, CopyTo, in visitBitTestHeader()
1715 DAG.getBasicBlock(MBB)); in visitBitTestHeader()
1717 DAG.setRoot(BrRange); in visitBitTestHeader()
1727 SDValue ShiftOp = DAG.getCopyFromReg(getControlRoot(), getCurDebugLoc(), in visitBitTestCase()
1734 Cmp = DAG.getSetCC(getCurDebugLoc(), in visitBitTestCase()
1737 DAG.getConstant(CountTrailingZeros_64(B.Mask), VT), in visitBitTestCase()
1741 Cmp = DAG.getSetCC(getCurDebugLoc(), in visitBitTestCase()
1744 DAG.getConstant(CountTrailingOnes_64(B.Mask), VT), in visitBitTestCase()
1748 SDValue SwitchVal = DAG.getNode(ISD::SHL, getCurDebugLoc(), VT, in visitBitTestCase()
1749 DAG.getConstant(1, VT), ShiftOp); in visitBitTestCase()
1752 SDValue AndOp = DAG.getNode(ISD::AND, getCurDebugLoc(), in visitBitTestCase()
1753 VT, SwitchVal, DAG.getConstant(B.Mask, VT)); in visitBitTestCase()
1754 Cmp = DAG.getSetCC(getCurDebugLoc(), in visitBitTestCase()
1756 AndOp, DAG.getConstant(0, VT), in visitBitTestCase()
1763 SDValue BrAnd = DAG.getNode(ISD::BRCOND, getCurDebugLoc(), in visitBitTestCase()
1765 Cmp, DAG.getBasicBlock(B.TargetBB)); in visitBitTestCase()
1775 BrAnd = DAG.getNode(ISD::BR, getCurDebugLoc(), MVT::Other, BrAnd, in visitBitTestCase()
1776 DAG.getBasicBlock(NextMBB)); in visitBitTestCase()
1778 DAG.setRoot(BrAnd); in visitBitTestCase()
1803 DAG.setRoot(DAG.getNode(ISD::BR, getCurDebugLoc(), in visitInvoke()
1805 DAG.getBasicBlock(Return))); in visitInvoke()
1862 SDValue Or = DAG.getNode(ISD::OR, DL, VT, CondLHS, in handleSmallSwitchRange()
1863 DAG.getConstant(CommonBit, VT)); in handleSmallSwitchRange()
1864 SDValue Cond = DAG.getSetCC(DL, MVT::i1, in handleSmallSwitchRange()
1865 Or, DAG.getConstant(BigValue, VT), in handleSmallSwitchRange()
1873 SDValue BrCond = DAG.getNode(ISD::BRCOND, DL, MVT::Other, in handleSmallSwitchRange()
1875 DAG.getBasicBlock(Small.BB)); in handleSmallSwitchRange()
1878 BrCond = DAG.getNode(ISD::BR, DL, MVT::Other, BrCond, in handleSmallSwitchRange()
1879 DAG.getBasicBlock(Default)); in handleSmallSwitchRange()
1881 DAG.setRoot(BrCond); in handleSmallSwitchRange()
2388 DAG.setRoot(DAG.getNode(ISD::BR, getCurDebugLoc(), in visitSwitch()
2390 DAG.getBasicBlock(Default))); in visitSwitch()
2454 DAG.setRoot(DAG.getNode(ISD::BRIND, getCurDebugLoc(), in visitIndirectBr()
2465 setValue(&I, DAG.getNode(ISD::FNEG, getCurDebugLoc(), in visitFSub()
2476 setValue(&I, DAG.getNode(OpCode, getCurDebugLoc(), in visitBinary()
2494 Op2 = DAG.getNode(ISD::ZERO_EXTEND, DL, ShiftTy, Op2); in visitShift()
2501 Op2 = DAG.getNode(ISD::TRUNCATE, DL, ShiftTy, Op2); in visitShift()
2505 Op2 = DAG.getZExtOrTrunc(Op2, DL, MVT::i32); in visitShift()
2508 setValue(&I, DAG.getNode(Opcode, getCurDebugLoc(), in visitShift()
2522 setValue(&I, TLI.BuildExactSDIV(Op1, Op2, getCurDebugLoc(), DAG)); in visitSDiv()
2524 setValue(&I, DAG.getNode(ISD::SDIV, getCurDebugLoc(), Op1.getValueType(), in visitSDiv()
2539 setValue(&I, DAG.getSetCC(getCurDebugLoc(), DestVT, Op1, Op2, Opcode)); in visitICmp()
2552 setValue(&I, DAG.getSetCC(getCurDebugLoc(), DestVT, Op1, Op2, Condition)); in visitFCmp()
2567 Values[i] = DAG.getNode(ISD::SELECT, getCurDebugLoc(), in visitSelect()
2575 setValue(&I, DAG.getNode(ISD::MERGE_VALUES, getCurDebugLoc(), in visitSelect()
2576 DAG.getVTList(&ValueVTs[0], NumValues), in visitSelect()
2584 setValue(&I, DAG.getNode(ISD::TRUNCATE, getCurDebugLoc(), DestVT, N)); in visitTrunc()
2592 setValue(&I, DAG.getNode(ISD::ZERO_EXTEND, getCurDebugLoc(), DestVT, N)); in visitZExt()
2600 setValue(&I, DAG.getNode(ISD::SIGN_EXTEND, getCurDebugLoc(), DestVT, N)); in visitSExt()
2607 setValue(&I, DAG.getNode(ISD::FP_ROUND, getCurDebugLoc(), in visitFPTrunc()
2608 DestVT, N, DAG.getIntPtrConstant(0))); in visitFPTrunc()
2615 setValue(&I, DAG.getNode(ISD::FP_EXTEND, getCurDebugLoc(), DestVT, N)); in visitFPExt()
2622 setValue(&I, DAG.getNode(ISD::FP_TO_UINT, getCurDebugLoc(), DestVT, N)); in visitFPToUI()
2629 setValue(&I, DAG.getNode(ISD::FP_TO_SINT, getCurDebugLoc(), DestVT, N)); in visitFPToSI()
2636 setValue(&I, DAG.getNode(ISD::UINT_TO_FP, getCurDebugLoc(), DestVT, N)); in visitUIToFP()
2643 setValue(&I, DAG.getNode(ISD::SINT_TO_FP, getCurDebugLoc(), DestVT, N)); in visitSIToFP()
2651 setValue(&I, DAG.getZExtOrTrunc(N, getCurDebugLoc(), DestVT)); in visitPtrToInt()
2659 setValue(&I, DAG.getZExtOrTrunc(N, getCurDebugLoc(), DestVT)); in visitIntToPtr()
2669 setValue(&I, DAG.getNode(ISD::BITCAST, getCurDebugLoc(), in visitBitCast()
2678 SDValue InIdx = DAG.getNode(ISD::ZERO_EXTEND, getCurDebugLoc(), in visitInsertElement()
2681 setValue(&I, DAG.getNode(ISD::INSERT_VECTOR_ELT, getCurDebugLoc(), in visitInsertElement()
2688 SDValue InIdx = DAG.getNode(ISD::ZERO_EXTEND, getCurDebugLoc(), in visitExtractElement()
2691 setValue(&I, DAG.getNode(ISD::EXTRACT_VECTOR_ELT, getCurDebugLoc(), in visitExtractElement()
2727 setValue(&I, DAG.getVectorShuffle(VT, getCurDebugLoc(), Src1, Src2, in visitShuffleVector()
2739 setValue(&I, DAG.getNode(ISD::CONCAT_VECTORS, getCurDebugLoc(), in visitShuffleVector()
2748 SDValue UndefVal = DAG.getUNDEF(SrcVT); in visitShuffleVector()
2755 Src1 = Src1U ? DAG.getUNDEF(VT) : DAG.getNode(ISD::CONCAT_VECTORS, in visitShuffleVector()
2758 Src2 = Src2U ? DAG.getUNDEF(VT) : DAG.getNode(ISD::CONCAT_VECTORS, in visitShuffleVector()
2772 setValue(&I, DAG.getVectorShuffle(VT, getCurDebugLoc(), Src1, Src2, in visitShuffleVector()
2825 setValue(&I, DAG.getUNDEF(VT)); // Vectors are not used. in visitShuffleVector()
2833 Src = DAG.getUNDEF(VT); in visitShuffleVector()
2835 Src = DAG.getNode(ISD::EXTRACT_SUBVECTOR, getCurDebugLoc(), VT, in visitShuffleVector()
2836 Src, DAG.getIntPtrConstant(StartIdx[Input])); in visitShuffleVector()
2851 setValue(&I, DAG.getVectorShuffle(VT, getCurDebugLoc(), Src1, Src2, in visitShuffleVector()
2865 Ops.push_back(DAG.getUNDEF(EltVT)); in visitShuffleVector()
2871 Res = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, getCurDebugLoc(), in visitShuffleVector()
2872 EltVT, Src1, DAG.getConstant(Idx, PtrVT)); in visitShuffleVector()
2874 Res = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, getCurDebugLoc(), in visitShuffleVector()
2876 DAG.getConstant(Idx - SrcNumElts, PtrVT)); in visitShuffleVector()
2882 setValue(&I, DAG.getNode(ISD::BUILD_VECTOR, getCurDebugLoc(), in visitShuffleVector()
2909 Values[i] = IntoUndef ? DAG.getUNDEF(AggValueVTs[i]) : in visitInsertValue()
2915 Values[i] = FromUndef ? DAG.getUNDEF(AggValueVTs[i]) : in visitInsertValue()
2920 Values[i] = IntoUndef ? DAG.getUNDEF(AggValueVTs[i]) : in visitInsertValue()
2923 setValue(&I, DAG.getNode(ISD::MERGE_VALUES, getCurDebugLoc(), in visitInsertValue()
2924 DAG.getVTList(&AggValueVTs[0], NumAggValues), in visitInsertValue()
2943 setValue(&I, DAG.getUNDEF(MVT(MVT::Other))); in visitExtractValue()
2954 DAG.getUNDEF(Agg.getNode()->getValueType(Agg.getResNo() + i)) : in visitExtractValue()
2957 setValue(&I, DAG.getNode(ISD::MERGE_VALUES, getCurDebugLoc(), in visitExtractValue()
2958 DAG.getVTList(&ValValueVTs[0], NumValValues), in visitExtractValue()
2974 N = DAG.getNode(ISD::ADD, getCurDebugLoc(), N.getValueType(), N, in visitGetElementPtr()
2975 DAG.getIntPtrConstant(Offset)); in visitGetElementPtr()
2991 OffsVal = DAG.getNode(ISD::TRUNCATE, getCurDebugLoc(), in visitGetElementPtr()
2993 DAG.getConstant(Offs, MVT::i64)); in visitGetElementPtr()
2995 OffsVal = DAG.getIntPtrConstant(Offs); in visitGetElementPtr()
2997 N = DAG.getNode(ISD::ADD, getCurDebugLoc(), N.getValueType(), N, in visitGetElementPtr()
3009 IdxN = DAG.getSExtOrTrunc(IdxN, getCurDebugLoc(), N.getValueType()); in visitGetElementPtr()
3016 IdxN = DAG.getNode(ISD::SHL, getCurDebugLoc(), in visitGetElementPtr()
3018 DAG.getConstant(Amt, TLI.getPointerTy())); in visitGetElementPtr()
3020 SDValue Scale = DAG.getConstant(ElementSize, TLI.getPointerTy()); in visitGetElementPtr()
3021 IdxN = DAG.getNode(ISD::MUL, getCurDebugLoc(), in visitGetElementPtr()
3026 N = DAG.getNode(ISD::ADD, getCurDebugLoc(), in visitGetElementPtr()
3050 AllocSize = DAG.getZExtOrTrunc(AllocSize, getCurDebugLoc(), IntPtr); in visitAlloca()
3052 AllocSize = DAG.getNode(ISD::MUL, getCurDebugLoc(), IntPtr, in visitAlloca()
3054 DAG.getConstant(TySize, IntPtr)); in visitAlloca()
3065 AllocSize = DAG.getNode(ISD::ADD, getCurDebugLoc(), in visitAlloca()
3067 DAG.getIntPtrConstant(StackAlign-1)); in visitAlloca()
3070 AllocSize = DAG.getNode(ISD::AND, getCurDebugLoc(), in visitAlloca()
3072 DAG.getIntPtrConstant(~(uint64_t)(StackAlign-1))); in visitAlloca()
3074 SDValue Ops[] = { getRoot(), AllocSize, DAG.getIntPtrConstant(Align) }; in visitAlloca()
3075 SDVTList VTs = DAG.getVTList(AllocSize.getValueType(), MVT::Other); in visitAlloca()
3076 SDValue DSA = DAG.getNode(ISD::DYNAMIC_STACKALLOC, getCurDebugLoc(), in visitAlloca()
3079 DAG.setRoot(DSA.getValue(1)); in visitAlloca()
3112 Root = DAG.getEntryNode(); in visitLoad()
3116 Root = DAG.getRoot(); in visitLoad()
3133 SDValue Chain = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), in visitLoad()
3138 SDValue A = DAG.getNode(ISD::ADD, getCurDebugLoc(), in visitLoad()
3140 DAG.getConstant(Offsets[i], PtrVT)); in visitLoad()
3141 SDValue L = DAG.getLoad(ValueVTs[i], getCurDebugLoc(), Root, in visitLoad()
3150 SDValue Chain = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), in visitLoad()
3153 DAG.setRoot(Chain); in visitLoad()
3158 setValue(&I, DAG.getNode(ISD::MERGE_VALUES, getCurDebugLoc(), in visitLoad()
3159 DAG.getVTList(&ValueVTs[0], NumValues), in visitLoad()
3193 SDValue Chain = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), in visitStore()
3198 SDValue Add = DAG.getNode(ISD::ADD, getCurDebugLoc(), PtrVT, Ptr, in visitStore()
3199 DAG.getConstant(Offsets[i], PtrVT)); in visitStore()
3200 SDValue St = DAG.getStore(Root, getCurDebugLoc(), in visitStore()
3207 SDValue StoreNode = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), in visitStore()
3211 DAG.setRoot(StoreNode); in visitStore()
3226 Ops.push_back(DAG.getRoot()); in visitTargetIntrinsic()
3239 Ops.push_back(DAG.getConstant(Intrinsic, TLI.getPointerTy())); in visitTargetIntrinsic()
3261 SDVTList VTs = DAG.getVTList(ValueVTs.data(), ValueVTs.size()); in visitTargetIntrinsic()
3267 Result = DAG.getMemIntrinsicNode(Info.opc, getCurDebugLoc(), in visitTargetIntrinsic()
3274 Result = DAG.getNode(ISD::INTRINSIC_WO_CHAIN, getCurDebugLoc(), in visitTargetIntrinsic()
3277 Result = DAG.getNode(ISD::INTRINSIC_W_CHAIN, getCurDebugLoc(), in visitTargetIntrinsic()
3280 Result = DAG.getNode(ISD::INTRINSIC_VOID, getCurDebugLoc(), in visitTargetIntrinsic()
3289 DAG.setRoot(Chain); in visitTargetIntrinsic()
3295 Result = DAG.getNode(ISD::BITCAST, getCurDebugLoc(), VT, Result); in visitTargetIntrinsic()
3309 GetSignificand(SelectionDAG &DAG, SDValue Op, DebugLoc dl) { in GetSignificand() argument
3310 SDValue t1 = DAG.getNode(ISD::AND, dl, MVT::i32, Op, in GetSignificand()
3311 DAG.getConstant(0x007fffff, MVT::i32)); in GetSignificand()
3312 SDValue t2 = DAG.getNode(ISD::OR, dl, MVT::i32, t1, in GetSignificand()
3313 DAG.getConstant(0x3f800000, MVT::i32)); in GetSignificand()
3314 return DAG.getNode(ISD::BITCAST, dl, MVT::f32, t2); in GetSignificand()
3323 GetExponent(SelectionDAG &DAG, SDValue Op, const TargetLowering &TLI, in GetExponent() argument
3325 SDValue t0 = DAG.getNode(ISD::AND, dl, MVT::i32, Op, in GetExponent()
3326 DAG.getConstant(0x7f800000, MVT::i32)); in GetExponent()
3327 SDValue t1 = DAG.getNode(ISD::SRL, dl, MVT::i32, t0, in GetExponent()
3328 DAG.getConstant(23, TLI.getPointerTy())); in GetExponent()
3329 SDValue t2 = DAG.getNode(ISD::SUB, dl, MVT::i32, t1, in GetExponent()
3330 DAG.getConstant(127, MVT::i32)); in GetExponent()
3331 return DAG.getNode(ISD::SINT_TO_FP, dl, MVT::f32, t2); in GetExponent()
3336 getF32Constant(SelectionDAG &DAG, unsigned Flt) { in getF32Constant() argument
3337 return DAG.getConstantFP(APFloat(APInt(32, Flt)), MVT::f32); in getF32Constant()
3348 DAG.getAtomic(Op, getCurDebugLoc(), in implVisitBinaryAtomic()
3355 DAG.setRoot(L.getValue(1)); in implVisitBinaryAtomic()
3365 SDVTList VTs = DAG.getVTList(Op1.getValueType(), MVT::i1); in implVisitAluOverflow()
3366 setValue(&I, DAG.getNode(Op, getCurDebugLoc(), VTs, Op1, Op2)); in implVisitAluOverflow()
3386 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, Op, in visitExp()
3387 getF32Constant(DAG, 0x3fb8aa3b)); in visitExp()
3388 SDValue IntegerPartOfX = DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, t0); in visitExp()
3391 SDValue t1 = DAG.getNode(ISD::SINT_TO_FP, dl, MVT::f32, IntegerPartOfX); in visitExp()
3392 SDValue X = DAG.getNode(ISD::FSUB, dl, MVT::f32, t0, t1); in visitExp()
3395 IntegerPartOfX = DAG.getNode(ISD::SHL, dl, MVT::i32, IntegerPartOfX, in visitExp()
3396 DAG.getConstant(23, TLI.getPointerTy())); in visitExp()
3406 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitExp()
3407 getF32Constant(DAG, 0x3e814304)); in visitExp()
3408 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitExp()
3409 getF32Constant(DAG, 0x3f3c50c8)); in visitExp()
3410 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitExp()
3411 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitExp()
3412 getF32Constant(DAG, 0x3f7f5e7e)); in visitExp()
3413 SDValue TwoToFracPartOfX = DAG.getNode(ISD::BITCAST, dl,MVT::i32, t5); in visitExp()
3416 SDValue t6 = DAG.getNode(ISD::ADD, dl, MVT::i32, in visitExp()
3419 result = DAG.getNode(ISD::BITCAST, dl, MVT::f32, t6); in visitExp()
3429 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitExp()
3430 getF32Constant(DAG, 0x3da235e3)); in visitExp()
3431 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitExp()
3432 getF32Constant(DAG, 0x3e65b8f3)); in visitExp()
3433 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitExp()
3434 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitExp()
3435 getF32Constant(DAG, 0x3f324b07)); in visitExp()
3436 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitExp()
3437 SDValue t7 = DAG.getNode(ISD::FADD, dl, MVT::f32, t6, in visitExp()
3438 getF32Constant(DAG, 0x3f7ff8fd)); in visitExp()
3439 SDValue TwoToFracPartOfX = DAG.getNode(ISD::BITCAST, dl,MVT::i32, t7); in visitExp()
3442 SDValue t8 = DAG.getNode(ISD::ADD, dl, MVT::i32, in visitExp()
3445 result = DAG.getNode(ISD::BITCAST, dl, MVT::f32, t8); in visitExp()
3458 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitExp()
3459 getF32Constant(DAG, 0x3924b03e)); in visitExp()
3460 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitExp()
3461 getF32Constant(DAG, 0x3ab24b87)); in visitExp()
3462 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitExp()
3463 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitExp()
3464 getF32Constant(DAG, 0x3c1d8c17)); in visitExp()
3465 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitExp()
3466 SDValue t7 = DAG.getNode(ISD::FADD, dl, MVT::f32, t6, in visitExp()
3467 getF32Constant(DAG, 0x3d634a1d)); in visitExp()
3468 SDValue t8 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t7, X); in visitExp()
3469 SDValue t9 = DAG.getNode(ISD::FADD, dl, MVT::f32, t8, in visitExp()
3470 getF32Constant(DAG, 0x3e75fe14)); in visitExp()
3471 SDValue t10 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t9, X); in visitExp()
3472 SDValue t11 = DAG.getNode(ISD::FADD, dl, MVT::f32, t10, in visitExp()
3473 getF32Constant(DAG, 0x3f317234)); in visitExp()
3474 SDValue t12 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t11, X); in visitExp()
3475 SDValue t13 = DAG.getNode(ISD::FADD, dl, MVT::f32, t12, in visitExp()
3476 getF32Constant(DAG, 0x3f800000)); in visitExp()
3477 SDValue TwoToFracPartOfX = DAG.getNode(ISD::BITCAST, dl, in visitExp()
3481 SDValue t14 = DAG.getNode(ISD::ADD, dl, MVT::i32, in visitExp()
3484 result = DAG.getNode(ISD::BITCAST, dl, MVT::f32, t14); in visitExp()
3488 result = DAG.getNode(ISD::FEXP, dl, in visitExp()
3506 SDValue Op1 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Op); in visitLog()
3509 SDValue Exp = GetExponent(DAG, Op1, TLI, dl); in visitLog()
3510 SDValue LogOfExponent = DAG.getNode(ISD::FMUL, dl, MVT::f32, Exp, in visitLog()
3511 getF32Constant(DAG, 0x3f317218)); in visitLog()
3515 SDValue X = GetSignificand(DAG, Op1, dl); in visitLog()
3525 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitLog()
3526 getF32Constant(DAG, 0xbe74c456)); in visitLog()
3527 SDValue t1 = DAG.getNode(ISD::FADD, dl, MVT::f32, t0, in visitLog()
3528 getF32Constant(DAG, 0x3fb3a2b1)); in visitLog()
3529 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t1, X); in visitLog()
3530 SDValue LogOfMantissa = DAG.getNode(ISD::FSUB, dl, MVT::f32, t2, in visitLog()
3531 getF32Constant(DAG, 0x3f949a29)); in visitLog()
3533 result = DAG.getNode(ISD::FADD, dl, in visitLog()
3545 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitLog()
3546 getF32Constant(DAG, 0xbd67b6d6)); in visitLog()
3547 SDValue t1 = DAG.getNode(ISD::FADD, dl, MVT::f32, t0, in visitLog()
3548 getF32Constant(DAG, 0x3ee4f4b8)); in visitLog()
3549 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t1, X); in visitLog()
3550 SDValue t3 = DAG.getNode(ISD::FSUB, dl, MVT::f32, t2, in visitLog()
3551 getF32Constant(DAG, 0x3fbc278b)); in visitLog()
3552 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitLog()
3553 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitLog()
3554 getF32Constant(DAG, 0x40348e95)); in visitLog()
3555 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitLog()
3556 SDValue LogOfMantissa = DAG.getNode(ISD::FSUB, dl, MVT::f32, t6, in visitLog()
3557 getF32Constant(DAG, 0x3fdef31a)); in visitLog()
3559 result = DAG.getNode(ISD::FADD, dl, in visitLog()
3573 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitLog()
3574 getF32Constant(DAG, 0xbc91e5ac)); in visitLog()
3575 SDValue t1 = DAG.getNode(ISD::FADD, dl, MVT::f32, t0, in visitLog()
3576 getF32Constant(DAG, 0x3e4350aa)); in visitLog()
3577 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t1, X); in visitLog()
3578 SDValue t3 = DAG.getNode(ISD::FSUB, dl, MVT::f32, t2, in visitLog()
3579 getF32Constant(DAG, 0x3f60d3e3)); in visitLog()
3580 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitLog()
3581 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitLog()
3582 getF32Constant(DAG, 0x4011cdf0)); in visitLog()
3583 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitLog()
3584 SDValue t7 = DAG.getNode(ISD::FSUB, dl, MVT::f32, t6, in visitLog()
3585 getF32Constant(DAG, 0x406cfd1c)); in visitLog()
3586 SDValue t8 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t7, X); in visitLog()
3587 SDValue t9 = DAG.getNode(ISD::FADD, dl, MVT::f32, t8, in visitLog()
3588 getF32Constant(DAG, 0x408797cb)); in visitLog()
3589 SDValue t10 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t9, X); in visitLog()
3590 SDValue LogOfMantissa = DAG.getNode(ISD::FSUB, dl, MVT::f32, t10, in visitLog()
3591 getF32Constant(DAG, 0x4006dcab)); in visitLog()
3593 result = DAG.getNode(ISD::FADD, dl, in visitLog()
3598 result = DAG.getNode(ISD::FLOG, dl, in visitLog()
3616 SDValue Op1 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Op); in visitLog2()
3619 SDValue LogOfExponent = GetExponent(DAG, Op1, TLI, dl); in visitLog2()
3623 SDValue X = GetSignificand(DAG, Op1, dl); in visitLog2()
3633 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitLog2()
3634 getF32Constant(DAG, 0xbeb08fe0)); in visitLog2()
3635 SDValue t1 = DAG.getNode(ISD::FADD, dl, MVT::f32, t0, in visitLog2()
3636 getF32Constant(DAG, 0x40019463)); in visitLog2()
3637 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t1, X); in visitLog2()
3638 SDValue Log2ofMantissa = DAG.getNode(ISD::FSUB, dl, MVT::f32, t2, in visitLog2()
3639 getF32Constant(DAG, 0x3fd6633d)); in visitLog2()
3641 result = DAG.getNode(ISD::FADD, dl, in visitLog2()
3653 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitLog2()
3654 getF32Constant(DAG, 0xbda7262e)); in visitLog2()
3655 SDValue t1 = DAG.getNode(ISD::FADD, dl, MVT::f32, t0, in visitLog2()
3656 getF32Constant(DAG, 0x3f25280b)); in visitLog2()
3657 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t1, X); in visitLog2()
3658 SDValue t3 = DAG.getNode(ISD::FSUB, dl, MVT::f32, t2, in visitLog2()
3659 getF32Constant(DAG, 0x4007b923)); in visitLog2()
3660 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitLog2()
3661 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitLog2()
3662 getF32Constant(DAG, 0x40823e2f)); in visitLog2()
3663 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitLog2()
3664 SDValue Log2ofMantissa = DAG.getNode(ISD::FSUB, dl, MVT::f32, t6, in visitLog2()
3665 getF32Constant(DAG, 0x4020d29c)); in visitLog2()
3667 result = DAG.getNode(ISD::FADD, dl, in visitLog2()
3682 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitLog2()
3683 getF32Constant(DAG, 0xbcd2769e)); in visitLog2()
3684 SDValue t1 = DAG.getNode(ISD::FADD, dl, MVT::f32, t0, in visitLog2()
3685 getF32Constant(DAG, 0x3e8ce0b9)); in visitLog2()
3686 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t1, X); in visitLog2()
3687 SDValue t3 = DAG.getNode(ISD::FSUB, dl, MVT::f32, t2, in visitLog2()
3688 getF32Constant(DAG, 0x3fa22ae7)); in visitLog2()
3689 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitLog2()
3690 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitLog2()
3691 getF32Constant(DAG, 0x40525723)); in visitLog2()
3692 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitLog2()
3693 SDValue t7 = DAG.getNode(ISD::FSUB, dl, MVT::f32, t6, in visitLog2()
3694 getF32Constant(DAG, 0x40aaf200)); in visitLog2()
3695 SDValue t8 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t7, X); in visitLog2()
3696 SDValue t9 = DAG.getNode(ISD::FADD, dl, MVT::f32, t8, in visitLog2()
3697 getF32Constant(DAG, 0x40c39dad)); in visitLog2()
3698 SDValue t10 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t9, X); in visitLog2()
3699 SDValue Log2ofMantissa = DAG.getNode(ISD::FSUB, dl, MVT::f32, t10, in visitLog2()
3700 getF32Constant(DAG, 0x4042902c)); in visitLog2()
3702 result = DAG.getNode(ISD::FADD, dl, in visitLog2()
3707 result = DAG.getNode(ISD::FLOG2, dl, in visitLog2()
3725 SDValue Op1 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Op); in visitLog10()
3728 SDValue Exp = GetExponent(DAG, Op1, TLI, dl); in visitLog10()
3729 SDValue LogOfExponent = DAG.getNode(ISD::FMUL, dl, MVT::f32, Exp, in visitLog10()
3730 getF32Constant(DAG, 0x3e9a209a)); in visitLog10()
3734 SDValue X = GetSignificand(DAG, Op1, dl); in visitLog10()
3744 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitLog10()
3745 getF32Constant(DAG, 0xbdd49a13)); in visitLog10()
3746 SDValue t1 = DAG.getNode(ISD::FADD, dl, MVT::f32, t0, in visitLog10()
3747 getF32Constant(DAG, 0x3f1c0789)); in visitLog10()
3748 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t1, X); in visitLog10()
3749 SDValue Log10ofMantissa = DAG.getNode(ISD::FSUB, dl, MVT::f32, t2, in visitLog10()
3750 getF32Constant(DAG, 0x3f011300)); in visitLog10()
3752 result = DAG.getNode(ISD::FADD, dl, in visitLog10()
3763 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitLog10()
3764 getF32Constant(DAG, 0x3d431f31)); in visitLog10()
3765 SDValue t1 = DAG.getNode(ISD::FSUB, dl, MVT::f32, t0, in visitLog10()
3766 getF32Constant(DAG, 0x3ea21fb2)); in visitLog10()
3767 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t1, X); in visitLog10()
3768 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitLog10()
3769 getF32Constant(DAG, 0x3f6ae232)); in visitLog10()
3770 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitLog10()
3771 SDValue Log10ofMantissa = DAG.getNode(ISD::FSUB, dl, MVT::f32, t4, in visitLog10()
3772 getF32Constant(DAG, 0x3f25f7c3)); in visitLog10()
3774 result = DAG.getNode(ISD::FADD, dl, in visitLog10()
3787 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitLog10()
3788 getF32Constant(DAG, 0x3c5d51ce)); in visitLog10()
3789 SDValue t1 = DAG.getNode(ISD::FSUB, dl, MVT::f32, t0, in visitLog10()
3790 getF32Constant(DAG, 0x3e00685a)); in visitLog10()
3791 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t1, X); in visitLog10()
3792 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitLog10()
3793 getF32Constant(DAG, 0x3efb6798)); in visitLog10()
3794 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitLog10()
3795 SDValue t5 = DAG.getNode(ISD::FSUB, dl, MVT::f32, t4, in visitLog10()
3796 getF32Constant(DAG, 0x3f88d192)); in visitLog10()
3797 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitLog10()
3798 SDValue t7 = DAG.getNode(ISD::FADD, dl, MVT::f32, t6, in visitLog10()
3799 getF32Constant(DAG, 0x3fc4316c)); in visitLog10()
3800 SDValue t8 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t7, X); in visitLog10()
3801 SDValue Log10ofMantissa = DAG.getNode(ISD::FSUB, dl, MVT::f32, t8, in visitLog10()
3802 getF32Constant(DAG, 0x3f57ce70)); in visitLog10()
3804 result = DAG.getNode(ISD::FADD, dl, in visitLog10()
3809 result = DAG.getNode(ISD::FLOG10, dl, in visitLog10()
3828 SDValue IntegerPartOfX = DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, Op); in visitExp2()
3831 SDValue t1 = DAG.getNode(ISD::SINT_TO_FP, dl, MVT::f32, IntegerPartOfX); in visitExp2()
3832 SDValue X = DAG.getNode(ISD::FSUB, dl, MVT::f32, Op, t1); in visitExp2()
3835 IntegerPartOfX = DAG.getNode(ISD::SHL, dl, MVT::i32, IntegerPartOfX, in visitExp2()
3836 DAG.getConstant(23, TLI.getPointerTy())); in visitExp2()
3846 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitExp2()
3847 getF32Constant(DAG, 0x3e814304)); in visitExp2()
3848 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitExp2()
3849 getF32Constant(DAG, 0x3f3c50c8)); in visitExp2()
3850 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitExp2()
3851 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitExp2()
3852 getF32Constant(DAG, 0x3f7f5e7e)); in visitExp2()
3853 SDValue t6 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, t5); in visitExp2()
3855 DAG.getNode(ISD::ADD, dl, MVT::i32, t6, IntegerPartOfX); in visitExp2()
3857 result = DAG.getNode(ISD::BITCAST, dl, in visitExp2()
3868 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitExp2()
3869 getF32Constant(DAG, 0x3da235e3)); in visitExp2()
3870 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitExp2()
3871 getF32Constant(DAG, 0x3e65b8f3)); in visitExp2()
3872 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitExp2()
3873 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitExp2()
3874 getF32Constant(DAG, 0x3f324b07)); in visitExp2()
3875 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitExp2()
3876 SDValue t7 = DAG.getNode(ISD::FADD, dl, MVT::f32, t6, in visitExp2()
3877 getF32Constant(DAG, 0x3f7ff8fd)); in visitExp2()
3878 SDValue t8 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, t7); in visitExp2()
3880 DAG.getNode(ISD::ADD, dl, MVT::i32, t8, IntegerPartOfX); in visitExp2()
3882 result = DAG.getNode(ISD::BITCAST, dl, in visitExp2()
3895 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitExp2()
3896 getF32Constant(DAG, 0x3924b03e)); in visitExp2()
3897 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitExp2()
3898 getF32Constant(DAG, 0x3ab24b87)); in visitExp2()
3899 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitExp2()
3900 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitExp2()
3901 getF32Constant(DAG, 0x3c1d8c17)); in visitExp2()
3902 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitExp2()
3903 SDValue t7 = DAG.getNode(ISD::FADD, dl, MVT::f32, t6, in visitExp2()
3904 getF32Constant(DAG, 0x3d634a1d)); in visitExp2()
3905 SDValue t8 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t7, X); in visitExp2()
3906 SDValue t9 = DAG.getNode(ISD::FADD, dl, MVT::f32, t8, in visitExp2()
3907 getF32Constant(DAG, 0x3e75fe14)); in visitExp2()
3908 SDValue t10 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t9, X); in visitExp2()
3909 SDValue t11 = DAG.getNode(ISD::FADD, dl, MVT::f32, t10, in visitExp2()
3910 getF32Constant(DAG, 0x3f317234)); in visitExp2()
3911 SDValue t12 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t11, X); in visitExp2()
3912 SDValue t13 = DAG.getNode(ISD::FADD, dl, MVT::f32, t12, in visitExp2()
3913 getF32Constant(DAG, 0x3f800000)); in visitExp2()
3914 SDValue t14 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, t13); in visitExp2()
3916 DAG.getNode(ISD::ADD, dl, MVT::i32, t14, IntegerPartOfX); in visitExp2()
3918 result = DAG.getNode(ISD::BITCAST, dl, in visitExp2()
3923 result = DAG.getNode(ISD::FEXP2, dl, in visitExp2()
3959 SDValue t0 = DAG.getNode(ISD::FMUL, dl, MVT::f32, Op, in visitPow()
3960 getF32Constant(DAG, 0x40549a78)); in visitPow()
3961 SDValue IntegerPartOfX = DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, t0); in visitPow()
3964 SDValue t1 = DAG.getNode(ISD::SINT_TO_FP, dl, MVT::f32, IntegerPartOfX); in visitPow()
3965 SDValue X = DAG.getNode(ISD::FSUB, dl, MVT::f32, t0, t1); in visitPow()
3968 IntegerPartOfX = DAG.getNode(ISD::SHL, dl, MVT::i32, IntegerPartOfX, in visitPow()
3969 DAG.getConstant(23, TLI.getPointerTy())); in visitPow()
3979 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitPow()
3980 getF32Constant(DAG, 0x3e814304)); in visitPow()
3981 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitPow()
3982 getF32Constant(DAG, 0x3f3c50c8)); in visitPow()
3983 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitPow()
3984 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitPow()
3985 getF32Constant(DAG, 0x3f7f5e7e)); in visitPow()
3986 SDValue t6 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, t5); in visitPow()
3988 DAG.getNode(ISD::ADD, dl, MVT::i32, t6, IntegerPartOfX); in visitPow()
3990 result = DAG.getNode(ISD::BITCAST, dl, in visitPow()
4001 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitPow()
4002 getF32Constant(DAG, 0x3da235e3)); in visitPow()
4003 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitPow()
4004 getF32Constant(DAG, 0x3e65b8f3)); in visitPow()
4005 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitPow()
4006 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitPow()
4007 getF32Constant(DAG, 0x3f324b07)); in visitPow()
4008 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitPow()
4009 SDValue t7 = DAG.getNode(ISD::FADD, dl, MVT::f32, t6, in visitPow()
4010 getF32Constant(DAG, 0x3f7ff8fd)); in visitPow()
4011 SDValue t8 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, t7); in visitPow()
4013 DAG.getNode(ISD::ADD, dl, MVT::i32, t8, IntegerPartOfX); in visitPow()
4015 result = DAG.getNode(ISD::BITCAST, dl, in visitPow()
4028 SDValue t2 = DAG.getNode(ISD::FMUL, dl, MVT::f32, X, in visitPow()
4029 getF32Constant(DAG, 0x3924b03e)); in visitPow()
4030 SDValue t3 = DAG.getNode(ISD::FADD, dl, MVT::f32, t2, in visitPow()
4031 getF32Constant(DAG, 0x3ab24b87)); in visitPow()
4032 SDValue t4 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t3, X); in visitPow()
4033 SDValue t5 = DAG.getNode(ISD::FADD, dl, MVT::f32, t4, in visitPow()
4034 getF32Constant(DAG, 0x3c1d8c17)); in visitPow()
4035 SDValue t6 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t5, X); in visitPow()
4036 SDValue t7 = DAG.getNode(ISD::FADD, dl, MVT::f32, t6, in visitPow()
4037 getF32Constant(DAG, 0x3d634a1d)); in visitPow()
4038 SDValue t8 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t7, X); in visitPow()
4039 SDValue t9 = DAG.getNode(ISD::FADD, dl, MVT::f32, t8, in visitPow()
4040 getF32Constant(DAG, 0x3e75fe14)); in visitPow()
4041 SDValue t10 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t9, X); in visitPow()
4042 SDValue t11 = DAG.getNode(ISD::FADD, dl, MVT::f32, t10, in visitPow()
4043 getF32Constant(DAG, 0x3f317234)); in visitPow()
4044 SDValue t12 = DAG.getNode(ISD::FMUL, dl, MVT::f32, t11, X); in visitPow()
4045 SDValue t13 = DAG.getNode(ISD::FADD, dl, MVT::f32, t12, in visitPow()
4046 getF32Constant(DAG, 0x3f800000)); in visitPow()
4047 SDValue t14 = DAG.getNode(ISD::BITCAST, dl, MVT::i32, t13); in visitPow()
4049 DAG.getNode(ISD::ADD, dl, MVT::i32, t14, IntegerPartOfX); in visitPow()
4051 result = DAG.getNode(ISD::BITCAST, dl, in visitPow()
4056 result = DAG.getNode(ISD::FPOW, dl, in visitPow()
4068 SelectionDAG &DAG) { in ExpandPowI() argument
4080 return DAG.getConstantFP(1.0, LHS.getValueType()); in ExpandPowI()
4082 const Function *F = DAG.getMachineFunction().getFunction(); in ExpandPowI()
4096 Res = DAG.getNode(ISD::FMUL, DL,Res.getValueType(), Res, CurSquare); in ExpandPowI()
4101 CurSquare = DAG.getNode(ISD::FMUL, DL, CurSquare.getValueType(), in ExpandPowI()
4108 Res = DAG.getNode(ISD::FDIV, DL, LHS.getValueType(), in ExpandPowI()
4109 DAG.getConstantFP(1.0, LHS.getValueType()), Res); in ExpandPowI()
4115 return DAG.getNode(ISD::FPOWI, DL, LHS.getValueType(), LHS, RHS); in ExpandPowI()
4147 MachineFunction &MF = DAG.getMachineFunction(); in EmitFuncArgumentDbgValue()
4148 const TargetInstrInfo *TII = DAG.getTarget().getInstrInfo(); in EmitFuncArgumentDbgValue()
4149 const TargetRegisterInfo *TRI = DAG.getTarget().getRegisterInfo(); in EmitFuncArgumentDbgValue()
4232 setValue(&I, DAG.getNode(ISD::RETURNADDR, dl, TLI.getPointerTy(), in visitIntrinsicCall()
4236 setValue(&I, DAG.getNode(ISD::FRAMEADDR, dl, TLI.getPointerTy(), in visitIntrinsicCall()
4256 DAG.setRoot(DAG.getMemcpy(getRoot(), dl, Op1, Op2, Op3, Align, isVol, false, in visitIntrinsicCall()
4272 DAG.setRoot(DAG.getMemset(getRoot(), dl, Op1, Op2, Op3, Align, isVol, in visitIntrinsicCall()
4289 DAG.setRoot(DAG.getMemmove(getRoot(), dl, Op1, Op2, Op3, Align, isVol, in visitIntrinsicCall()
4331 SDV = DAG.getDbgValue(Variable, FINode->getIndex(), in visitIntrinsicCall()
4340 SDV = DAG.getDbgValue(Variable, N.getNode(), N.getResNo(), in visitIntrinsicCall()
4347 DAG.AddDbgValue(SDV, N.getNode(), isParameter); in visitIntrinsicCall()
4359 SDV = DAG.getDbgValue(Variable, SI->second, in visitIntrinsicCall()
4361 DAG.AddDbgValue(SDV, 0, false); in visitIntrinsicCall()
4389 SDV = DAG.getDbgValue(Variable, V, Offset, dl, SDNodeOrder); in visitIntrinsicCall()
4390 DAG.AddDbgValue(SDV, 0, false); in visitIntrinsicCall()
4400 SDV = DAG.getDbgValue(Variable, N.getNode(), in visitIntrinsicCall()
4402 DAG.AddDbgValue(SDV, N.getNode(), false); in visitIntrinsicCall()
4429 MachineModuleInfo &MMI = DAG.getMachineFunction().getMMI(); in visitIntrinsicCall()
4438 SDVTList VTs = DAG.getVTList(TLI.getPointerTy(), MVT::Other); in visitIntrinsicCall()
4440 Ops[0] = DAG.getRoot(); in visitIntrinsicCall()
4441 SDValue Op = DAG.getNode(ISD::EXCEPTIONADDR, dl, VTs, Ops, 1); in visitIntrinsicCall()
4443 DAG.setRoot(Op.getValue(1)); in visitIntrinsicCall()
4449 MachineModuleInfo &MMI = DAG.getMachineFunction().getMMI(); in visitIntrinsicCall()
4462 SDVTList VTs = DAG.getVTList(TLI.getPointerTy(), MVT::Other); in visitIntrinsicCall()
4466 SDValue Op = DAG.getNode(ISD::EHSELECTION, dl, VTs, Ops, 2); in visitIntrinsicCall()
4467 DAG.setRoot(Op.getValue(1)); in visitIntrinsicCall()
4468 setValue(&I, DAG.getSExtOrTrunc(Op, dl, MVT::i32)); in visitIntrinsicCall()
4475 unsigned TypeID = DAG.getMachineFunction().getMMI().getTypeIDFor(GV); in visitIntrinsicCall()
4476 Res = DAG.getConstant(TypeID, MVT::i32); in visitIntrinsicCall()
4483 DAG.getMachineFunction().getMMI().setCallsEHReturn(true); in visitIntrinsicCall()
4484 DAG.setRoot(DAG.getNode(ISD::EH_RETURN, dl, in visitIntrinsicCall()
4491 DAG.getMachineFunction().getMMI().setCallsUnwindInit(true); in visitIntrinsicCall()
4494 SDValue CfaArg = DAG.getSExtOrTrunc(getValue(I.getArgOperand(0)), dl, in visitIntrinsicCall()
4496 SDValue Offset = DAG.getNode(ISD::ADD, dl, in visitIntrinsicCall()
4498 DAG.getNode(ISD::FRAME_TO_ARGS_OFFSET, dl, in visitIntrinsicCall()
4501 SDValue FA = DAG.getNode(ISD::FRAMEADDR, dl, in visitIntrinsicCall()
4503 DAG.getConstant(0, TLI.getPointerTy())); in visitIntrinsicCall()
4504 setValue(&I, DAG.getNode(ISD::ADD, dl, TLI.getPointerTy(), in visitIntrinsicCall()
4509 MachineModuleInfo &MMI = DAG.getMachineFunction().getMMI(); in visitIntrinsicCall()
4518 setValue(&I, DAG.getNode(ISD::EH_SJLJ_SETJMP, dl, MVT::i32, getRoot(), in visitIntrinsicCall()
4523 DAG.setRoot(DAG.getNode(ISD::EH_SJLJ_LONGJMP, dl, MVT::Other, in visitIntrinsicCall()
4528 DAG.setRoot(DAG.getNode(ISD::EH_SJLJ_DISPATCHSETUP, dl, MVT::Other, in visitIntrinsicCall()
4583 ShOps[1] = DAG.getConstant(0, MVT::i32); in visitIntrinsicCall()
4584 ShAmt = DAG.getNode(ISD::BUILD_VECTOR, dl, ShAmtVT, &ShOps[0], 2); in visitIntrinsicCall()
4586 ShAmt = DAG.getNode(ISD::BITCAST, dl, DestVT, ShAmt); in visitIntrinsicCall()
4587 Res = DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in visitIntrinsicCall()
4588 DAG.getConstant(NewIntrinsic, MVT::i32), in visitIntrinsicCall()
4616 Res = DAG.getConvertRndSat(DestVT, getCurDebugLoc(), getValue(Op1), in visitIntrinsicCall()
4617 DAG.getValueType(DestVT), in visitIntrinsicCall()
4618 DAG.getValueType(getValue(Op1).getValueType()), in visitIntrinsicCall()
4626 setValue(&I, DAG.getNode(ISD::FSQRT, dl, in visitIntrinsicCall()
4632 getValue(I.getArgOperand(1)), DAG)); in visitIntrinsicCall()
4635 setValue(&I, DAG.getNode(ISD::FSIN, dl, in visitIntrinsicCall()
4640 setValue(&I, DAG.getNode(ISD::FCOS, dl, in visitIntrinsicCall()
4663 setValue(&I, DAG.getNode(ISD::FMA, dl, in visitIntrinsicCall()
4670 setValue(&I, DAG.getNode(ISD::FP32_TO_FP16, dl, in visitIntrinsicCall()
4674 setValue(&I, DAG.getNode(ISD::FP16_TO_FP32, dl, in visitIntrinsicCall()
4679 DAG.setRoot(DAG.getNode(ISD::PCMARKER, dl, MVT::Other, getRoot(), Tmp)); in visitIntrinsicCall()
4684 Res = DAG.getNode(ISD::READCYCLECOUNTER, dl, in visitIntrinsicCall()
4685 DAG.getVTList(MVT::i64, MVT::Other), in visitIntrinsicCall()
4688 DAG.setRoot(Res.getValue(1)); in visitIntrinsicCall()
4692 setValue(&I, DAG.getNode(ISD::BSWAP, dl, in visitIntrinsicCall()
4699 setValue(&I, DAG.getNode(ISD::CTTZ, dl, Ty, Arg)); in visitIntrinsicCall()
4705 setValue(&I, DAG.getNode(ISD::CTLZ, dl, Ty, Arg)); in visitIntrinsicCall()
4711 setValue(&I, DAG.getNode(ISD::CTPOP, dl, Ty, Arg)); in visitIntrinsicCall()
4716 Res = DAG.getNode(ISD::STACKSAVE, dl, in visitIntrinsicCall()
4717 DAG.getVTList(TLI.getPointerTy(), MVT::Other), &Op, 1); in visitIntrinsicCall()
4719 DAG.setRoot(Res.getValue(1)); in visitIntrinsicCall()
4724 DAG.setRoot(DAG.getNode(ISD::STACKRESTORE, dl, MVT::Other, getRoot(), Res)); in visitIntrinsicCall()
4729 MachineFunction &MF = DAG.getMachineFunction(); in visitIntrinsicCall()
4739 SDValue FIN = DAG.getFrameIndex(FI, PtrTy); in visitIntrinsicCall()
4742 Res = DAG.getStore(getRoot(), getCurDebugLoc(), Src, FIN, in visitIntrinsicCall()
4746 DAG.setRoot(Res); in visitIntrinsicCall()
4759 Res = DAG.getConstant(-1ULL, Ty); in visitIntrinsicCall()
4761 Res = DAG.getConstant(0, Ty); in visitIntrinsicCall()
4778 Ops[4] = DAG.getSrcValue(I.getArgOperand(0)); in visitIntrinsicCall()
4779 Ops[5] = DAG.getSrcValue(F); in visitIntrinsicCall()
4781 Res = DAG.getNode(ISD::TRAMPOLINE, dl, in visitIntrinsicCall()
4782 DAG.getVTList(TLI.getPointerTy(), MVT::Other), in visitIntrinsicCall()
4786 DAG.setRoot(Res.getValue(1)); in visitIntrinsicCall()
4803 setValue(&I, DAG.getNode(ISD::FLT_ROUNDS_, dl, MVT::i32)); in visitIntrinsicCall()
4815 DAG.setRoot(DAG.getNode(ISD::TRAP, dl,MVT::Other, getRoot())); in visitIntrinsicCall()
4823 DAG.getExternalSymbol(TrapFuncName.data(), TLI.getPointerTy()), in visitIntrinsicCall()
4824 Args, DAG, getCurDebugLoc()); in visitIntrinsicCall()
4825 DAG.setRoot(Result.second); in visitIntrinsicCall()
4849 DAG.setRoot(DAG.getMemIntrinsicNode(ISD::PREFETCH, dl, in visitIntrinsicCall()
4850 DAG.getVTList(MVT::Other), in visitIntrinsicCall()
4866 DAG.setRoot(DAG.getNode(ISD::MEMBARRIER, dl, MVT::Other, &Ops[0], 6)); in visitIntrinsicCall()
4872 DAG.getAtomic(ISD::ATOMIC_CMP_SWAP, getCurDebugLoc(), in visitIntrinsicCall()
4880 DAG.setRoot(L.getValue(1)); in visitIntrinsicCall()
4909 setValue(&I, DAG.getUNDEF(TLI.getPointerTy())); in visitIntrinsicCall()
4924 MachineModuleInfo &MMI = DAG.getMachineFunction().getMMI(); in LowerCallTo()
4938 DAG.getMachineFunction(), in LowerCallTo()
4950 MachineFunction &MF = DAG.getMachineFunction(); in LowerCallTo()
4954 DemoteStackSlot = DAG.getFrameIndex(DemoteStackIdx, TLI.getPointerTy()); in LowerCallTo()
5007 DAG.setRoot(DAG.getEHLabel(getCurDebugLoc(), getControlRoot(), BeginLabel)); in LowerCallTo()
5029 Callee, Args, DAG, getCurDebugLoc()); in LowerCallTo()
5050 SDValue Add = DAG.getNode(ISD::ADD, getCurDebugLoc(), PtrVT, in LowerCallTo()
5052 DAG.getConstant(Offsets[i], PtrVT)); in LowerCallTo()
5053 SDValue L = DAG.getLoad(Outs[i].VT, getCurDebugLoc(), Result.second, in LowerCallTo()
5061 SDValue Chain = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), in LowerCallTo()
5079 getCopyFromParts(DAG, getCurDebugLoc(), &Values[CurReg], NumRegs, in LowerCallTo()
5086 DAG.getNode(ISD::MERGE_VALUES, getCurDebugLoc(), in LowerCallTo()
5087 DAG.getVTList(&RetTys[0], RetTys.size()), in LowerCallTo()
5098 AssignOrderingToNode(DAG.getRoot().getNode()); in LowerCallTo()
5100 DAG.setRoot(Result.second); in LowerCallTo()
5109 DAG.setRoot(DAG.getEHLabel(getCurDebugLoc(), getRoot(), EndLabel)); in LowerCallTo()
5156 Root = Builder.DAG.getEntryNode(); in getMemCmpLoad()
5160 Root = Builder.DAG.getRoot(); in getMemCmpLoad()
5164 SDValue LoadVal = Builder.DAG.getLoad(LoadVT, Builder.getCurDebugLoc(), Root, in getMemCmpLoad()
5242 SDValue Res = DAG.getSetCC(getCurDebugLoc(), MVT::i1, LHSVal, RHSVal, in visitMemCmpCall()
5245 setValue(&I, DAG.getZExtOrTrunc(Res, getCurDebugLoc(), CallVT)); in visitMemCmpCall()
5266 MachineModuleInfo &MMI = DAG.getMachineFunction().getMMI(); in visitCall()
5308 setValue(&I, DAG.getNode(ISD::FCOPYSIGN, getCurDebugLoc(), in visitCall()
5317 setValue(&I, DAG.getNode(ISD::FABS, getCurDebugLoc(), in visitCall()
5327 setValue(&I, DAG.getNode(ISD::FSIN, getCurDebugLoc(), in visitCall()
5337 setValue(&I, DAG.getNode(ISD::FCOS, getCurDebugLoc(), in visitCall()
5347 setValue(&I, DAG.getNode(ISD::FSQRT, getCurDebugLoc(), in visitCall()
5362 Callee = DAG.getExternalSymbol(RenameFn, TLI.getPointerTy()); in visitCall()
5478 static void GetRegistersForValue(SelectionDAG &DAG, in GetRegistersForValue() argument
5484 LLVMContext &Context = *DAG.getContext(); in GetRegistersForValue()
5509 MachineFunction &MF = DAG.getMachineFunction(); in GetRegistersForValue()
5530 OpInfo.CallOperand = DAG.getNode(ISD::BITCAST, DL, in GetRegistersForValue()
5540 OpInfo.CallOperand = DAG.getNode(ISD::BITCAST, DL, in GetRegistersForValue()
5582 const TargetRegisterInfo *TRI = DAG.getTarget().getRegisterInfo(); in GetRegistersForValue()
5662 OpInfo.CallOperand = DAG.getBasicBlock(FuncInfo.MBBMap[BB]); in visitInlineAsm()
5667 OpVT = OpInfo.getCallOperandValEVT(*DAG.getContext(), TLI, TD); in visitInlineAsm()
5694 Chain = DAG.getRoot(); in visitInlineAsm()
5725 TLI.ComputeConstraintToUse(OpInfo, OpInfo.CallOperand, &DAG); in visitInlineAsm()
5748 OpInfo.CallOperand = DAG.getConstantPool(cast<Constant>(OpVal), in visitInlineAsm()
5756 MachineFunction &MF = DAG.getMachineFunction(); in visitInlineAsm()
5758 SDValue StackSlot = DAG.getFrameIndex(SSFI, TLI.getPointerTy()); in visitInlineAsm()
5759 Chain = DAG.getStore(Chain, getCurDebugLoc(), in visitInlineAsm()
5776 GetRegistersForValue(DAG, TLI, getCurDebugLoc(), OpInfo, OutputRegs, in visitInlineAsm()
5788 GetRegistersForValue(DAG, TLI, getCurDebugLoc(), OpInfo, OutputRegs, in visitInlineAsm()
5796 DAG.getTargetExternalSymbol(IA->getAsmString().c_str(), in visitInlineAsm()
5803 AsmNodeOperands.push_back(DAG.getMDNode(SrcLoc)); in visitInlineAsm()
5811 AsmNodeOperands.push_back(DAG.getTargetConstant(ExtraInfo, in visitInlineAsm()
5833 AsmNodeOperands.push_back(DAG.getTargetConstant(OpFlags, in visitInlineAsm()
5866 DAG, in visitInlineAsm()
5898 LLVMContext &Ctx = *DAG.getContext(); in visitInlineAsm()
5908 MachineRegisterInfo &RegInfo = DAG.getMachineFunction().getRegInfo(); in visitInlineAsm()
5915 MatchedRegs.getCopyToRegs(InOperandVal, DAG, getCurDebugLoc(), in visitInlineAsm()
5919 DAG, AsmNodeOperands); in visitInlineAsm()
5930 AsmNodeOperands.push_back(DAG.getTargetConstant(OpFlag, in visitInlineAsm()
5944 Ops, DAG); in visitInlineAsm()
5952 AsmNodeOperands.push_back(DAG.getTargetConstant(ResOpType, in visitInlineAsm()
5965 AsmNodeOperands.push_back(DAG.getTargetConstant(ResOpType, in visitInlineAsm()
5982 OpInfo.AssignedRegs.getCopyToRegs(InOperandVal, DAG, getCurDebugLoc(), in visitInlineAsm()
5986 DAG, AsmNodeOperands); in visitInlineAsm()
5994 false, 0, DAG, in visitInlineAsm()
6005 Chain = DAG.getNode(ISD::INLINEASM, getCurDebugLoc(), in visitInlineAsm()
6006 DAG.getVTList(MVT::Other, MVT::Glue), in visitInlineAsm()
6013 SDValue Val = RetValRegs.getCopyFromRegs(DAG, FuncInfo, getCurDebugLoc(), in visitInlineAsm()
6026 Val = DAG.getNode(ISD::BITCAST, getCurDebugLoc(), in visitInlineAsm()
6034 Val = DAG.getNode(ISD::TRUNCATE, getCurDebugLoc(), ResultType, Val); in visitInlineAsm()
6053 SDValue OutVal = OutRegs.getCopyFromRegs(DAG, FuncInfo, getCurDebugLoc(), in visitInlineAsm()
6061 SDValue Val = DAG.getStore(Chain, getCurDebugLoc(), in visitInlineAsm()
6070 Chain = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(), MVT::Other, in visitInlineAsm()
6073 DAG.setRoot(Chain); in visitInlineAsm()
6077 DAG.setRoot(DAG.getNode(ISD::VASTART, getCurDebugLoc(), in visitVAStart()
6080 DAG.getSrcValue(I.getArgOperand(0)))); in visitVAStart()
6085 SDValue V = DAG.getVAArg(TLI.getValueType(I.getType()), getCurDebugLoc(), in visitVAArg()
6087 DAG.getSrcValue(I.getOperand(0)), in visitVAArg()
6090 DAG.setRoot(V.getValue(1)); in visitVAArg()
6094 DAG.setRoot(DAG.getNode(ISD::VAEND, getCurDebugLoc(), in visitVAEnd()
6097 DAG.getSrcValue(I.getArgOperand(0)))); in visitVAEnd()
6101 DAG.setRoot(DAG.getNode(ISD::VACOPY, getCurDebugLoc(), in visitVACopy()
6105 DAG.getSrcValue(I.getArgOperand(0)), in visitVACopy()
6106 DAG.getSrcValue(I.getArgOperand(1)))); in visitVACopy()
6120 ArgListTy &Args, SelectionDAG &DAG, in LowerCallTo() argument
6174 getCopyToParts(DAG, dl, Op, &Parts[0], NumParts, in LowerCallTo()
6216 Outs, OutVals, Ins, dl, DAG, InVals); in LowerCallTo()
6231 DAG.setRoot(Chain); in LowerCallTo()
6256 ReturnValues.push_back(getCopyFromParts(DAG, dl, &InVals[CurReg], in LowerCallTo()
6268 SDValue Res = DAG.getNode(ISD::MERGE_VALUES, dl, in LowerCallTo()
6269 DAG.getVTList(&RetTys[0], RetTys.size()), in LowerCallTo()
6276 SelectionDAG &DAG) const { in LowerOperationWrapper()
6277 SDValue Res = LowerOperation(SDValue(N, 0), DAG); in LowerOperationWrapper()
6282 SDValue TargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) const { in LowerOperation()
6296 SDValue Chain = DAG.getEntryNode(); in CopyValueToVirtualRegister()
6297 RFV.getCopyToRegs(Op, DAG, getCurDebugLoc(), Chain, 0); in CopyValueToVirtualRegister()
6325 SelectionDAG &DAG = SDB->DAG; in LowerArguments() local
6344 EVT RegisterVT = TLI.getRegisterType(*DAG.getContext(), ValueVTs[0]); in LowerArguments()
6359 Type *ArgTy = VT.getTypeForEVT(*DAG.getContext()); in LowerArguments()
6406 SDValue NewRoot = TLI.LowerFormalArguments(DAG.getRoot(), F.getCallingConv(), in LowerArguments()
6408 dl, DAG, InVals); in LowerArguments()
6425 DAG.setRoot(NewRoot); in LowerArguments()
6438 SDValue ArgValue = getCopyFromParts(DAG, dl, &InVals[0], 1, in LowerArguments()
6441 MachineFunction& MF = SDB->DAG.getMachineFunction(); in LowerArguments()
6445 NewRoot = SDB->DAG.getCopyToReg(NewRoot, SDB->getCurDebugLoc(), in LowerArguments()
6447 DAG.setRoot(NewRoot); in LowerArguments()
6478 ArgValues.push_back(getCopyFromParts(DAG, dl, &InVals[i], in LowerArguments()
6496 SDValue Res = DAG.getMergeValues(&ArgValues[0], NumValues, in LowerArguments()
6594 unsigned NumRegisters = TLI.getNumRegisters(*DAG.getContext(), VT); in HandlePHINodesInSuccessorBlocks()