Lines Matching defs:SelectionDAG

1 //===- SelectionDAG.cpp - Implement the SelectionDAG data structures ------===//
9 // This implements the SelectionDAG class.
13 #include "llvm/CodeGen/SelectionDAG.h"
95 void SelectionDAG::DAGUpdateListener::NodeDeleted(SDNode*, SDNode*) {}
96 void SelectionDAG::DAGUpdateListener::NodeUpdated(SDNode*) {}
97 void SelectionDAG::DAGUpdateListener::NodeInserted(SDNode *) {}
99 void SelectionDAG::DAGNodeDeletedListener::anchor() {}
100 void SelectionDAG::DAGNodeInsertedListener::anchor() {}
112 static void NewSDValueDbgMsg(SDValue V, StringRef Msg, SelectionDAG *G) {
135 (void) Val2.convert(SelectionDAG::EVTToAPFloatSemantics(VT),
963 // SelectionDAG Class
987 /// SelectionDAG.
988 void SelectionDAG::RemoveDeadNodes() {
1008 void SelectionDAG::RemoveDeadNodes(SmallVectorImpl<SDNode *> &DeadNodes) {
1042 void SelectionDAG::RemoveDeadNode(SDNode *N){
1053 void SelectionDAG::DeleteNode(SDNode *N) {
1062 void SelectionDAG::DeleteNodeNotInCSEMaps(SDNode *N) {
1093 void SelectionDAG::DeallocateNode(SDNode *N) {
1160 void SelectionDAG::InsertNode(SDNode *N) {
1174 bool SelectionDAG::RemoveNodeFromCSEMaps(SDNode *N) {
1234 SelectionDAG::AddModifiedNodeToCSEMaps(SDNode *N) {
1263 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N, SDValue Op,
1282 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N,
1302 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N, ArrayRef<SDValue> Ops,
1316 Align SelectionDAG::getEVTAlign(EVT VT) const {
1324 SelectionDAG::SelectionDAG(const TargetMachine &tm, CodeGenOptLevel OL)
1332 void SelectionDAG::init(MachineFunction &NewMF,
1351 SelectionDAG::~SelectionDAG() {
1358 bool SelectionDAG::shouldOptForSize() const {
1363 void SelectionDAG::allnodes_clear() {
1373 SDNode *SelectionDAG::FindNodeOrInsertPos(const FoldingSetNodeID &ID,
1388 SDNode *SelectionDAG::FindNodeOrInsertPos(const FoldingSetNodeID &ID,
1413 void SelectionDAG::clear() {
1433 SDValue SelectionDAG::getFPExtendOrRound(SDValue Op, const SDLoc &DL, EVT VT) {
1441 SelectionDAG::getStrictFPExtendOrRound(SDValue Op, SDValue Chain,
1454 SDValue SelectionDAG::getAnyExtOrTrunc(SDValue Op, const SDLoc &DL, EVT VT) {
1460 SDValue SelectionDAG::getSExtOrTrunc(SDValue Op, const SDLoc &DL, EVT VT) {
1466 SDValue SelectionDAG::getZExtOrTrunc(SDValue Op, const SDLoc &DL, EVT VT) {
1472 SDValue SelectionDAG::getBitcastedAnyExtOrTrunc(SDValue Op, const SDLoc &DL,
1487 SDValue SelectionDAG::getBitcastedSExtOrTrunc(SDValue Op, const SDLoc &DL,
1502 SDValue SelectionDAG::getBitcastedZExtOrTrunc(SDValue Op, const SDLoc &DL,
1517 SDValue SelectionDAG::getBoolExtOrTrunc(SDValue Op, const SDLoc &SL, EVT VT,
1526 SDValue SelectionDAG::getZeroExtendInReg(SDValue Op, const SDLoc &DL, EVT VT) {
1544 SDValue SelectionDAG::getVPZeroExtendInReg(SDValue Op, SDValue Mask,
1563 SDValue SelectionDAG::getPtrExtOrTrunc(SDValue Op, const SDLoc &DL, EVT VT) {
1569 SDValue SelectionDAG::getPtrExtendInReg(SDValue Op, const SDLoc &DL, EVT VT) {
1575 SDValue SelectionDAG::getNegative(SDValue Val, const SDLoc &DL, EVT VT) {
1580 SDValue SelectionDAG::getNOT(const SDLoc &DL, SDValue Val, EVT VT) {
1584 SDValue SelectionDAG::getLogicalNOT(const SDLoc &DL, SDValue Val, EVT VT) {
1589 SDValue SelectionDAG::getVPLogicalNOT(const SDLoc &DL, SDValue Val,
1595 SDValue SelectionDAG::getVPPtrExtOrTrunc(const SDLoc &DL, EVT VT, SDValue Op,
1600 SDValue SelectionDAG::getVPZExtOrTrunc(const SDLoc &DL, EVT VT, SDValue Op,
1609 SDValue SelectionDAG::getBoolConstant(bool V, const SDLoc &DL, EVT VT,
1624 SDValue SelectionDAG::getConstant(uint64_t Val, const SDLoc &DL, EVT VT,
1633 SDValue SelectionDAG::getConstant(const APInt &Val, const SDLoc &DL, EVT VT,
1638 SDValue SelectionDAG::getConstant(const ConstantInt &Val, const SDLoc &DL,
1750 SDValue SelectionDAG::getIntPtrConstant(uint64_t Val, const SDLoc &DL,
1755 SDValue SelectionDAG::getShiftAmountConstant(uint64_t Val, EVT VT,
1762 SDValue SelectionDAG::getShiftAmountConstant(const APInt &Val, EVT VT,
1768 SDValue SelectionDAG::getVectorIdxConstant(uint64_t Val, const SDLoc &DL,
1773 SDValue SelectionDAG::getConstantFP(const APFloat &V, const SDLoc &DL, EVT VT,
1778 SDValue SelectionDAG::getConstantFP(const ConstantFP &V, const SDLoc &DL,
1811 SDValue SelectionDAG::getConstantFP(double Val, const SDLoc &DL, EVT VT,
1829 SDValue SelectionDAG::getGlobalAddress(const GlobalValue *GV, const SDLoc &DL,
1863 SDValue SelectionDAG::getFrameIndex(int FI, EVT VT, bool isTarget) {
1879 SDValue SelectionDAG::getJumpTable(int JTI, EVT VT, bool isTarget,
1899 SDValue SelectionDAG::getJumpTableDebugInfo(int JTI, SDValue Chain,
1906 SDValue SelectionDAG::getConstantPool(const Constant *C, EVT VT,
1936 SDValue SelectionDAG::getConstantPool(MachineConstantPoolValue *C, EVT VT,
1962 SDValue SelectionDAG::getBasicBlock(MachineBasicBlock *MBB) {
1976 SDValue SelectionDAG::getValueType(EVT VT) {
1990 SDValue SelectionDAG::getExternalSymbol(const char *Sym, EVT VT) {
1998 SDValue SelectionDAG::getMCSymbol(MCSymbol *Sym, EVT VT) {
2007 SDValue SelectionDAG::getTargetExternalSymbol(const char *Sym, EVT VT,
2017 SDValue SelectionDAG::getCondCode(ISD::CondCode Cond) {
2030 SDValue SelectionDAG::getVScale(const SDLoc &DL, EVT VT, APInt MulImm,
2049 SDValue SelectionDAG::getElementCount(const SDLoc &DL, EVT VT, ElementCount EC,
2058 SDValue SelectionDAG::getStepVector(const SDLoc &DL, EVT ResVT) {
2063 SDValue SelectionDAG::getStepVector(const SDLoc &DL, EVT ResVT,
2085 SDValue SelectionDAG::getVectorShuffle(EVT VT, const SDLoc &dl, SDValue N1,
2256 SDValue SelectionDAG::getCommutedVectorShuffle(const ShuffleVectorSDNode &SV) {
2266 SDValue SelectionDAG::getRegister(unsigned RegNo, EVT VT) {
2282 SDValue SelectionDAG::getRegisterMask(const uint32_t *RegMask) {
2296 SDValue SelectionDAG::getEHLabel(const SDLoc &dl, SDValue Root,
2301 SDValue SelectionDAG::getLabelNode(unsigned Opcode, const SDLoc &dl,
2320 SDValue SelectionDAG::getBlockAddress(const BlockAddress *BA, EVT VT,
2341 SDValue SelectionDAG::getSrcValue(const Value *V) {
2356 SDValue SelectionDAG::getMDNode(const MDNode *MD) {
2371 SDValue SelectionDAG::getBitcast(EVT VT, SDValue V) {
2378 SDValue SelectionDAG::getAddrSpaceCast(const SDLoc &dl, EVT VT, SDValue Ptr,
2400 SDValue SelectionDAG::getFreeze(SDValue V) {
2406 SDValue SelectionDAG::getShiftAmountOperand(EVT LHSTy, SDValue Op) {
2414 SDValue SelectionDAG::expandVAArg(SDNode *Node) {
2448 SDValue SelectionDAG::expandVACopy(SDNode *Node) {
2462 Align SelectionDAG::getReducedAlign(EVT VT, bool UseABI) {
2490 SDValue SelectionDAG::CreateStackTemporary(TypeSize Bytes, Align Alignment) {
2503 SDValue SelectionDAG::CreateStackTemporary(EVT VT, unsigned minAlign) {
2510 SDValue SelectionDAG::CreateStackTemporary(EVT VT1, EVT VT2) {
2527 SDValue SelectionDAG::FoldSetCC(EVT VT, SDValue N1, SDValue N2,
2683 bool SelectionDAG::SignBitIsZero(SDValue Op, unsigned Depth) const {
2691 bool SelectionDAG::MaskedValueIsZero(SDValue V, const APInt &Mask,
2699 bool SelectionDAG::MaskedValueIsZero(SDValue V, const APInt &Mask,
2707 bool SelectionDAG::MaskedVectorIsZero(SDValue V, const APInt &DemandedElts,
2713 bool SelectionDAG::MaskedValueIsAllOnes(SDValue V, const APInt &Mask,
2718 APInt SelectionDAG::computeVectorKnownZeroElements(SDValue Op,
2743 bool SelectionDAG::isSplatValue(SDValue V, const APInt &DemandedElts,
2929 bool SelectionDAG::isSplatValue(SDValue V, bool AllowUndefs) const {
2943 SDValue SelectionDAG::getSplatSourceVector(SDValue V, int &SplatIdx) {
2980 // TODO - remove this and rely purely on SelectionDAG::isSplatValue,
2995 SDValue SelectionDAG::getSplatValue(SDValue V, bool LegalTypes) {
3014 SelectionDAG::getValidShiftAmountRange(SDValue V, const APInt &DemandedElts,
3063 SelectionDAG::getValidShiftAmount(SDValue V, const APInt &DemandedElts,
3076 SelectionDAG::getValidShiftAmount(SDValue V, unsigned Depth) const {
3085 SelectionDAG::getValidMinimumShiftAmount(SDValue V, const APInt &DemandedElts,
3097 SelectionDAG::getValidMinimumShiftAmount(SDValue V, unsigned Depth) const {
3106 SelectionDAG::getValidMaximumShiftAmount(SDValue V, const APInt &DemandedElts,
3118 SelectionDAG::getValidMaximumShiftAmount(SDValue V, unsigned Depth) const {
3129 KnownBits SelectionDAG::computeKnownBits(SDValue Op, unsigned Depth) const {
3144 KnownBits SelectionDAG::computeKnownBits(SDValue Op, const APInt &DemandedElts,
4220 /// Convert ConstantRange OverflowResult into SelectionDAG::OverflowKind.
4221 static SelectionDAG::OverflowKind mapOverflowResult(ConstantRange::OverflowResult OR) {
4224 return SelectionDAG::OFK_Sometime;
4227 return SelectionDAG::OFK_Always;
4229 return SelectionDAG::OFK_Never;
4234 SelectionDAG::OverflowKind
4235 SelectionDAG::computeOverflowForSignedAdd(SDValue N0, SDValue N1) const {
4249 SelectionDAG::OverflowKind
4250 SelectionDAG::computeOverflowForUnsignedAdd(SDValue N0, SDValue N1) const {
4272 SelectionDAG::OverflowKind
4273 SelectionDAG::computeOverflowForSignedSub(SDValue N0, SDValue N1) const {
4290 SelectionDAG::OverflowKind
4291 SelectionDAG::computeOverflowForUnsignedSub(SDValue N0, SDValue N1) const {
4303 SelectionDAG::OverflowKind
4304 SelectionDAG::computeOverflowForUnsignedMul(SDValue N0, SDValue N1) const {
4316 SelectionDAG::OverflowKind
4317 SelectionDAG::computeOverflowForSignedMul(SDValue N0, SDValue N1) const {
4346 bool SelectionDAG::isKnownToBeAPowerOfTwo(SDValue Val, unsigned Depth) const {
4430 bool SelectionDAG::isKnownToBeAPowerOfTwoFP(SDValue Val, unsigned Depth) const {
4440 unsigned SelectionDAG::ComputeNumSignBits(SDValue Op, unsigned Depth) const {
4452 unsigned SelectionDAG::ComputeNumSignBits(SDValue Op, const APInt &DemandedElts,
5114 unsigned SelectionDAG::ComputeMaxSignificantBits(SDValue Op,
5120 unsigned SelectionDAG::ComputeMaxSignificantBits(SDValue Op,
5127 bool SelectionDAG::isGuaranteedNotToBeUndefOrPoison(SDValue Op, bool PoisonOnly,
5144 bool SelectionDAG::isGuaranteedNotToBeUndefOrPoison(SDValue Op,
5226 bool SelectionDAG::canCreateUndefOrPoison(SDValue Op, bool PoisonOnly,
5241 bool SelectionDAG::canCreateUndefOrPoison(SDValue Op, const APInt &DemandedElts,
5362 bool SelectionDAG::isADDLike(SDValue Op, bool NoWrap) const {
5372 bool SelectionDAG::isBaseWithConstantOffset(SDValue Op) const {
5377 bool SelectionDAG::isKnownNeverNaN(SDValue Op, bool SNaN, unsigned Depth) const {
5505 bool SelectionDAG::isKnownNeverZeroFloat(SDValue Op) const {
5514 bool SelectionDAG::isKnownNeverZero(SDValue Op, unsigned Depth) const {
5668 bool SelectionDAG::cannotBeOrderedNegativeFP(SDValue Op) const {
5675 bool SelectionDAG::isEqualTo(SDValue A, SDValue B) const {
5741 bool SelectionDAG::haveNoCommonBitsSet(SDValue A, SDValue B) const {
5752 SelectionDAG &DAG) {
5761 SelectionDAG &DAG) {
5797 SelectionDAG &DAG) {
5881 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT) {
5898 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
5906 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
6327 SDValue SelectionDAG::FoldSymbolOffset(unsigned Opcode, EVT VT,
6347 bool SelectionDAG::isUndef(unsigned Opcode, ArrayRef<SDValue> Ops) {
6372 SDValue SelectionDAG::FoldConstantArithmetic(unsigned Opcode, const SDLoc &DL,
6757 SDValue SelectionDAG::foldConstantFPMath(unsigned Opcode, const SDLoc &DL,
6836 SDValue SelectionDAG::getAssertAlign(const SDLoc &DL, SDValue Val, Align A) {
6865 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
6873 void SelectionDAG::canonicalizeCommutativeBinop(unsigned Opcode, SDValue &N1,
6894 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7407 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7415 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7605 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7611 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7620 SDValue SelectionDAG::getStackArgumentTokenFactor(SDValue Chain) {
7641 static SDValue getMemsetValue(SDValue Value, EVT VT, SelectionDAG &DAG,
7683 static SDValue getMemsetStringVal(EVT VT, const SDLoc &dl, SelectionDAG &DAG,
7725 SDValue SelectionDAG::getMemBasePlusOffset(SDValue Base, TypeSize Offset,
7741 SDValue SelectionDAG::getMemBasePlusOffset(SDValue Ptr, SDValue Offset,
7769 SelectionDAG &DAG) {
7777 static void chainLoadsAndStoresForMemcpy(SelectionDAG &DAG, const SDLoc &dl,
7802 static SDValue getMemcpyLoadsAndStores(SelectionDAG &DAG, const SDLoc &dl,
8005 static SDValue getMemmoveLoadsAndStores(SelectionDAG &DAG, const SDLoc &dl,
8130 static SDValue getMemsetStores(SelectionDAG &DAG, const SDLoc &dl,
8256 SDValue SelectionDAG::getMemcpy(
8341 SDValue SelectionDAG::getAtomicMemcpy(SDValue Chain, const SDLoc &dl,
8381 SDValue SelectionDAG::getMemmove(SDValue Chain, const SDLoc &dl, SDValue Dst,
8457 SDValue SelectionDAG::getAtomicMemmove(SDValue Chain, const SDLoc &dl,
8497 SDValue SelectionDAG::getMemset(SDValue Chain, const SDLoc &dl, SDValue Dst,
8595 SDValue SelectionDAG::getAtomicMemset(SDValue Chain, const SDLoc &dl,
8635 SDValue SelectionDAG::getAtomic(unsigned Opcode, const SDLoc &dl, EVT MemVT,
8658 SDValue SelectionDAG::getAtomicCmpSwap(unsigned Opcode, const SDLoc &dl,
8670 SDValue SelectionDAG::getAtomic(unsigned Opcode, const SDLoc &dl, EVT MemVT,
8702 SDValue SelectionDAG::getAtomic(unsigned Opcode, const SDLoc &dl, EVT MemVT,
8713 SDValue SelectionDAG::getMergeValues(ArrayRef<SDValue> Ops, const SDLoc &dl) {
8724 SDValue SelectionDAG::getMemIntrinsicNode(
8739 SDValue SelectionDAG::getMemIntrinsicNode(unsigned Opcode, const SDLoc &dl,
8782 SDValue SelectionDAG::getLifetimeNode(bool IsStart, const SDLoc &dl,
8812 SDValue SelectionDAG::getPseudoProbeNode(const SDLoc &Dl, SDValue Chain,
8841 SelectionDAG &DAG, SDValue Ptr,
8865 SelectionDAG &DAG, SDValue Ptr,
8875 SDValue SelectionDAG::getLoad(ISD::MemIndexedMode AM, ISD::LoadExtType ExtType,
8899 SDValue SelectionDAG::getLoad(ISD::MemIndexedMode AM, ISD::LoadExtType ExtType,
8949 SDValue SelectionDAG::getLoad(EVT VT, const SDLoc &dl, SDValue Chain,
8959 SDValue SelectionDAG::getLoad(EVT VT, const SDLoc &dl, SDValue Chain,
8966 SDValue SelectionDAG::getExtLoad(ISD::LoadExtType ExtType, const SDLoc &dl,
8977 SDValue SelectionDAG::getExtLoad(ISD::LoadExtType ExtType, const SDLoc &dl,
8985 SDValue SelectionDAG::getIndexedLoad(SDValue OrigLoad, const SDLoc &dl,
8999 SDValue SelectionDAG::getStore(SDValue Chain, const SDLoc &dl, SDValue Val,
9019 SDValue SelectionDAG::getStore(SDValue Chain, const SDLoc &dl, SDValue Val,
9050 SDValue SelectionDAG::getTruncStore(SDValue Chain, const SDLoc &dl, SDValue Val,
9071 SDValue SelectionDAG::getTruncStore(SDValue Chain, const SDLoc &dl, SDValue Val,
9117 SDValue SelectionDAG::getIndexedStore(SDValue OrigStore, const SDLoc &dl,
9146 SDValue SelectionDAG::getLoadVP(
9169 SDValue SelectionDAG::getLoadVP(ISD::MemIndexedMode AM,
9204 SDValue SelectionDAG::getLoadVP(EVT VT, const SDLoc &dl, SDValue Chain,
9217 SDValue SelectionDAG::getLoadVP(EVT VT, const SDLoc &dl, SDValue Chain,
9225 SDValue SelectionDAG::getExtLoadVP(ISD::LoadExtType ExtType, const SDLoc &dl,
9238 SDValue SelectionDAG::getExtLoadVP(ISD::LoadExtType ExtType, const SDLoc &dl,
9247 SDValue SelectionDAG::getIndexedLoadVP(SDValue OrigLoad, const SDLoc &dl,
9263 SDValue SelectionDAG::getStoreVP(SDValue Chain, const SDLoc &dl, SDValue Val,
9297 SDValue SelectionDAG::getTruncStoreVP(SDValue Chain, const SDLoc &dl,
9320 SDValue SelectionDAG::getTruncStoreVP(SDValue Chain, const SDLoc &dl,
9369 SDValue SelectionDAG::getIndexedStoreVP(SDValue OrigStore, const SDLoc &dl,
9399 SDValue SelectionDAG::getStridedLoadVP(
9433 SDValue SelectionDAG::getStridedLoadVP(EVT VT, const SDLoc &DL, SDValue Chain,
9443 SDValue SelectionDAG::getExtStridedLoadVP(
9452 SDValue SelectionDAG::getStridedStoreVP(SDValue Chain, const SDLoc &DL,
9488 SDValue SelectionDAG::getTruncStridedStoreVP(SDValue Chain, const SDLoc &DL,
9537 SDValue SelectionDAG::getGatherVP(SDVTList VTs, EVT VT, const SDLoc &dl,
9580 SDValue SelectionDAG::getScatterVP(SDVTList VTs, EVT VT, const SDLoc &dl,
9624 SDValue SelectionDAG::getMaskedLoad(EVT VT, const SDLoc &dl, SDValue Chain,
9659 SDValue SelectionDAG::getIndexedMaskedLoad(SDValue OrigLoad, const SDLoc &dl,
9670 SDValue SelectionDAG::getMaskedStore(SDValue Chain, const SDLoc &dl,
9708 SDValue SelectionDAG::getIndexedMaskedStore(SDValue OrigStore, const SDLoc &dl,
9719 SDValue SelectionDAG::getMaskedGather(SDVTList VTs, EVT MemVT, const SDLoc &dl,
9766 SDValue SelectionDAG::getMaskedScatter(SDVTList VTs, EVT MemVT, const SDLoc &dl,
9812 SDValue SelectionDAG::getMaskedHistogram(SDVTList VTs, EVT MemVT,
9850 SDValue SelectionDAG::getGetFPEnv(SDValue Chain, const SDLoc &dl, SDValue Ptr,
9877 SDValue SelectionDAG::getSetFPEnv(SDValue Chain, const SDLoc &dl, SDValue Ptr,
9904 SDValue SelectionDAG::simplifySelect(SDValue Cond, SDValue T, SDValue F) {
9934 SDValue SelectionDAG::simplifyShift(SDValue X, SDValue Y) {
9962 SDValue SelectionDAG::simplifyFPBinop(unsigned Opcode, SDValue X, SDValue Y,
10007 SDValue SelectionDAG::getVAArg(EVT VT, const SDLoc &dl, SDValue Chain,
10013 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
10029 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
10037 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
10149 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL,
10154 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10162 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10354 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL,
10359 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10365 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10371 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10377 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10383 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10390 SDVTList SelectionDAG::getVTList(EVT VT) {
10394 SDVTList SelectionDAG::getVTList(EVT VT1, EVT VT2) {
10412 SDVTList SelectionDAG::getVTList(EVT VT1, EVT VT2, EVT VT3) {
10432 SDVTList SelectionDAG::getVTList(EVT VT1, EVT VT2, EVT VT3, EVT VT4) {
10454 SDVTList SelectionDAG::getVTList(ArrayRef<EVT> VTs) {
10480 SDNode *SelectionDAG::UpdateNodeOperands(SDNode *N, SDValue Op) {
10505 SDNode *SelectionDAG::UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2) {
10534 SDNode *SelectionDAG::
10540 SDNode *SelectionDAG::
10547 SDNode *SelectionDAG::
10554 SDNode *SelectionDAG::
10596 void SelectionDAG::setNodeMemRefs(MachineSDNode *N,
10620 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10626 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10633 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10641 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10649 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10655 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10661 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10667 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10674 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10682 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10701 SDNode *SelectionDAG::UpdateSDLocOnMergeSDNode(SDNode *N, const SDLoc &OLoc) {
10727 SDNode *SelectionDAG::MorphNodeTo(SDNode *N, unsigned Opc,
10780 SDNode* SelectionDAG::mutateStrictFPToFP(SDNode *Node) {
10828 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10834 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10841 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10848 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10856 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10862 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10870 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10878 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10885 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10893 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10902 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10909 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
10916 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &DL,
10946 SDValue SelectionDAG::getTargetExtractSubreg(int SRIdx, const SDLoc &DL, EVT VT,
10956 SDValue SelectionDAG::getTargetInsertSubreg(int SRIdx, const SDLoc &DL, EVT VT,
10966 SDNode *SelectionDAG::getNodeIfExists(unsigned Opcode, SDVTList VTList,
10974 SDNode *SelectionDAG::getNodeIfExists(unsigned Opcode, SDVTList VTList,
10990 bool SelectionDAG::doesNodeExist(unsigned Opcode, SDVTList VTList,
11005 SDDbgValue *SelectionDAG::getDbgValue(DIVariable *Var, DIExpression *Expr,
11017 SDDbgValue *SelectionDAG::getConstantDbgValue(DIVariable *Var,
11030 SDDbgValue *SelectionDAG::getFrameIndexDbgValue(DIVariable *Var,
11041 SDDbgValue *SelectionDAG::getFrameIndexDbgValue(DIVariable *Var,
11056 SDDbgValue *SelectionDAG::getVRegDbgValue(DIVariable *Var, DIExpression *Expr,
11067 SDDbgValue *SelectionDAG::getDbgValueList(DIVariable *Var, DIExpression *Expr,
11079 void SelectionDAG::transferDbgValues(SDValue From, SDValue To,
11161 void SelectionDAG::salvageDebugInfo(SDNode &N) {
11285 SDDbgLabel *SelectionDAG::getDbgLabel(DILabel *Label,
11298 class RAUWUpdateListener : public SelectionDAG::DAGUpdateListener {
11309 RAUWUpdateListener(SelectionDAG &d,
11312 : SelectionDAG::DAGUpdateListener(d), UI(ui), UE(ue) {}
11322 void SelectionDAG::ReplaceAllUsesWith(SDValue FromN, SDValue To) {
11375 void SelectionDAG::ReplaceAllUsesWith(SDNode *From, SDNode *To) {
11433 void SelectionDAG::ReplaceAllUsesWith(SDNode *From, const SDValue *To) {
11483 void SelectionDAG::ReplaceAllUsesOfValueWith(SDValue From, SDValue To){
11548 /// UseMemo - This class is used by SelectionDAG::ReplaceAllUsesOfValuesWith
11564 class RAUOVWUpdateListener : public SelectionDAG::DAGUpdateListener {
11574 RAUOVWUpdateListener(SelectionDAG &d, SmallVector<UseMemo, 4> &uses)
11575 : SelectionDAG::DAGUpdateListener(d), Uses(uses) {}
11580 bool SelectionDAG::calculateDivergence(SDNode *N) {
11595 void SelectionDAG::updateDivergence(SDNode *N) {
11607 void SelectionDAG::CreateTopologicalOrder(std::vector<SDNode *> &Order) {
11627 void SelectionDAG::VerifyDAGDivergence() {
11641 void SelectionDAG::ReplaceAllUsesOfValuesWith(const SDValue *From,
11708 unsigned SelectionDAG::AssignTopologicalOrder() {
11794 void SelectionDAG::AddDbgValue(SDDbgValue *DB, bool isParameter) {
11804 void SelectionDAG::AddDbgLabel(SDDbgLabel *DB) { DbgInfo->add(DB); }
11806 SDValue SelectionDAG::makeEquivalentMemoryOrdering(SDValue OldChain,
11824 SDValue SelectionDAG::makeEquivalentMemoryOrdering(LoadSDNode *OldLoad,
11832 SDValue SelectionDAG::getSymbolFunctionGlobalAddress(SDValue Op,
11935 const fltSemantics &Semantics = SelectionDAG::EVTToAPFloatSemantics(VT);
12211 /// side-effects; SelectionDAG requires that all side-effects are represented
12264 SelectionDAG::matchBinOpReduction(SDNode *Extract, ISD::NodeType &BinOp,
12380 SDValue SelectionDAG::UnrollVectorOp(SDNode *N, unsigned ResNE) {
12477 std::pair<SDValue, SDValue> SelectionDAG::UnrollVectorOverflowOp(
12527 bool SelectionDAG::areNonVolatileConsecutiveLoads(LoadSDNode *LD,
12555 MaybeAlign SelectionDAG::InferPtrAlign(SDValue Ptr) const {
12591 std::pair<SDValue, SDValue> SelectionDAG::SplitScalar(const SDValue &N,
12606 std::pair<EVT, EVT> SelectionDAG::GetSplitDestVTs(const EVT &VT) const {
12621 SelectionDAG::GetDependentSplitDestVTs(const EVT &VT, const EVT &EnvVT,
12651 SelectionDAG::SplitVector(const SDValue &N, const SDLoc &DL, const EVT &LoVT,
12672 std::pair<SDValue, SDValue> SelectionDAG::SplitEVL(SDValue N, EVT VecVT,
12690 SDValue SelectionDAG::WidenVector(const SDValue &N, const SDLoc &DL) {
12698 void SelectionDAG::ExtractVectorElements(SDValue Op,
13084 SDNode *SelectionDAG::isConstantIntBuildVectorOrConstantInt(SDValue N) const {
13103 SDNode *SelectionDAG::isConstantFPBuildVectorOrConstantFP(SDValue N) const {
13117 void SelectionDAG::createOperands(SDNode *Node, ArrayRef<SDValue> Vals) {
13140 SDValue SelectionDAG::getTokenFactor(const SDLoc &DL,
13153 SDValue SelectionDAG::getNeutralElement(unsigned Opcode, const SDLoc &DL,
13216 SDValue SelectionDAG::makeStateFunctionCall(unsigned LibFunc, SDValue Ptr,
13235 void SelectionDAG::copyExtraInfo(SDNode *From, SDNode *To) {
13323 errs() << "warning: incomplete propagation of SelectionDAG::NodeExtraInfo\n";
13333 const llvm::SelectionDAG *DAG) {
13341 errs() << "Detected cycle in SelectionDAG\n";
13356 const llvm::SelectionDAG *DAG,
13372 void llvm::checkForCycles(const llvm::SelectionDAG *DAG, bool force) {