Lines Matching defs:SelectionDAG
1 //===- SelectionDAG.cpp - Implement the SelectionDAG data structures ------===//
9 // This implements the SelectionDAG class.
13 #include "llvm/CodeGen/SelectionDAG.h"
97 void SelectionDAG::DAGUpdateListener::NodeDeleted(SDNode*, SDNode*) {}
98 void SelectionDAG::DAGUpdateListener::NodeUpdated(SDNode*) {}
99 void SelectionDAG::DAGUpdateListener::NodeInserted(SDNode *) {}
101 void SelectionDAG::DAGNodeDeletedListener::anchor() {}
102 void SelectionDAG::DAGNodeInsertedListener::anchor() {}
119 static void NewSDValueDbgMsg(SDValue V, StringRef Msg, SelectionDAG *G) {
123 unsigned SelectionDAG::getHasPredecessorMaxSteps() { return MaxSteps; }
1005 // SelectionDAG Class
1029 /// SelectionDAG.
1030 void SelectionDAG::RemoveDeadNodes() {
1050 void SelectionDAG::RemoveDeadNodes(SmallVectorImpl<SDNode *> &DeadNodes) {
1084 void SelectionDAG::RemoveDeadNode(SDNode *N){
1095 void SelectionDAG::DeleteNode(SDNode *N) {
1104 void SelectionDAG::DeleteNodeNotInCSEMaps(SDNode *N) {
1135 void SelectionDAG::DeallocateNode(SDNode *N) {
1202 void SelectionDAG::InsertNode(SDNode *N) {
1216 bool SelectionDAG::RemoveNodeFromCSEMaps(SDNode *N) {
1276 SelectionDAG::AddModifiedNodeToCSEMaps(SDNode *N) {
1305 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N, SDValue Op,
1324 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N,
1344 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N, ArrayRef<SDValue> Ops,
1358 Align SelectionDAG::getEVTAlign(EVT VT) const {
1366 SelectionDAG::SelectionDAG(const TargetMachine &tm, CodeGenOptLevel OL)
1374 void SelectionDAG::init(MachineFunction &NewMF,
1394 SelectionDAG::~SelectionDAG() {
1401 bool SelectionDAG::shouldOptForSize() const {
1405 void SelectionDAG::allnodes_clear() {
1415 SDNode *SelectionDAG::FindNodeOrInsertPos(const FoldingSetNodeID &ID,
1430 SDNode *SelectionDAG::FindNodeOrInsertPos(const FoldingSetNodeID &ID,
1455 void SelectionDAG::clear() {
1475 SDValue SelectionDAG::getFPExtendOrRound(SDValue Op, const SDLoc &DL, EVT VT) {
1483 SelectionDAG::getStrictFPExtendOrRound(SDValue Op, SDValue Chain,
1496 SDValue SelectionDAG::getAnyExtOrTrunc(SDValue Op, const SDLoc &DL, EVT VT) {
1502 SDValue SelectionDAG::getSExtOrTrunc(SDValue Op, const SDLoc &DL, EVT VT) {
1508 SDValue SelectionDAG::getZExtOrTrunc(SDValue Op, const SDLoc &DL, EVT VT) {
1514 SDValue SelectionDAG::getBitcastedAnyExtOrTrunc(SDValue Op, const SDLoc &DL,
1529 SDValue SelectionDAG::getBitcastedSExtOrTrunc(SDValue Op, const SDLoc &DL,
1544 SDValue SelectionDAG::getBitcastedZExtOrTrunc(SDValue Op, const SDLoc &DL,
1559 SDValue SelectionDAG::getBoolExtOrTrunc(SDValue Op, const SDLoc &SL, EVT VT,
1568 SDValue SelectionDAG::getZeroExtendInReg(SDValue Op, const SDLoc &DL, EVT VT) {
1586 SDValue SelectionDAG::getVPZeroExtendInReg(SDValue Op, SDValue Mask,
1605 SDValue SelectionDAG::getPtrExtOrTrunc(SDValue Op, const SDLoc &DL, EVT VT) {
1611 SDValue SelectionDAG::getPtrExtendInReg(SDValue Op, const SDLoc &DL, EVT VT) {
1617 SDValue SelectionDAG::getNegative(SDValue Val, const SDLoc &DL, EVT VT) {
1622 SDValue SelectionDAG::getNOT(const SDLoc &DL, SDValue Val, EVT VT) {
1626 SDValue SelectionDAG::getLogicalNOT(const SDLoc &DL, SDValue Val, EVT VT) {
1631 SDValue SelectionDAG::getVPLogicalNOT(const SDLoc &DL, SDValue Val,
1637 SDValue SelectionDAG::getVPPtrExtOrTrunc(const SDLoc &DL, EVT VT, SDValue Op,
1642 SDValue SelectionDAG::getVPZExtOrTrunc(const SDLoc &DL, EVT VT, SDValue Op,
1651 SDValue SelectionDAG::getBoolConstant(bool V, const SDLoc &DL, EVT VT,
1666 SDValue SelectionDAG::getConstant(uint64_t Val, const SDLoc &DL, EVT VT,
1672 SDValue SelectionDAG::getConstant(const APInt &Val, const SDLoc &DL, EVT VT,
1677 SDValue SelectionDAG::getConstant(const ConstantInt &Val, const SDLoc &DL,
1794 SDValue SelectionDAG::getSignedConstant(int64_t Val, const SDLoc &DL, EVT VT,
1800 SDValue SelectionDAG::getAllOnesConstant(const SDLoc &DL, EVT VT, bool IsTarget,
1806 SDValue SelectionDAG::getIntPtrConstant(uint64_t Val, const SDLoc &DL,
1811 SDValue SelectionDAG::getShiftAmountConstant(uint64_t Val, EVT VT,
1818 SDValue SelectionDAG::getShiftAmountConstant(const APInt &Val, EVT VT,
1824 SDValue SelectionDAG::getVectorIdxConstant(uint64_t Val, const SDLoc &DL,
1829 SDValue SelectionDAG::getConstantFP(const APFloat &V, const SDLoc &DL, EVT VT,
1834 SDValue SelectionDAG::getConstantFP(const ConstantFP &V, const SDLoc &DL,
1873 SDValue SelectionDAG::getConstantFP(double Val, const SDLoc &DL, EVT VT,
1891 SDValue SelectionDAG::getGlobalAddress(const GlobalValue *GV, const SDLoc &DL,
1925 SDValue SelectionDAG::getFrameIndex(int FI, EVT VT, bool isTarget) {
1941 SDValue SelectionDAG::getJumpTable(int JTI, EVT VT, bool isTarget,
1961 SDValue SelectionDAG::getJumpTableDebugInfo(int JTI, SDValue Chain,
1968 SDValue SelectionDAG::getConstantPool(const Constant *C, EVT VT,
1998 SDValue SelectionDAG::getConstantPool(MachineConstantPoolValue *C, EVT VT,
2024 SDValue SelectionDAG::getBasicBlock(MachineBasicBlock *MBB) {
2038 SDValue SelectionDAG::getValueType(EVT VT) {
2052 SDValue SelectionDAG::getExternalSymbol(const char *Sym, EVT VT) {
2060 SDValue SelectionDAG::getMCSymbol(MCSymbol *Sym, EVT VT) {
2069 SDValue SelectionDAG::getTargetExternalSymbol(const char *Sym, EVT VT,
2079 SDValue SelectionDAG::getCondCode(ISD::CondCode Cond) {
2092 SDValue SelectionDAG::getVScale(const SDLoc &DL, EVT VT, APInt MulImm,
2111 SDValue SelectionDAG::getElementCount(const SDLoc &DL, EVT VT, ElementCount EC,
2120 SDValue SelectionDAG::getStepVector(const SDLoc &DL, EVT ResVT) {
2125 SDValue SelectionDAG::getStepVector(const SDLoc &DL, EVT ResVT,
2147 SDValue SelectionDAG::getVectorShuffle(EVT VT, const SDLoc &dl, SDValue N1,
2318 SDValue SelectionDAG::getCommutedVectorShuffle(const ShuffleVectorSDNode &SV) {
2328 SDValue SelectionDAG::getRegister(Register Reg, EVT VT) {
2344 SDValue SelectionDAG::getRegisterMask(const uint32_t *RegMask) {
2358 SDValue SelectionDAG::getEHLabel(const SDLoc &dl, SDValue Root,
2363 SDValue SelectionDAG::getLabelNode(unsigned Opcode, const SDLoc &dl,
2382 SDValue SelectionDAG::getBlockAddress(const BlockAddress *BA, EVT VT,
2403 SDValue SelectionDAG::getSrcValue(const Value *V) {
2418 SDValue SelectionDAG::getMDNode(const MDNode *MD) {
2433 SDValue SelectionDAG::getBitcast(EVT VT, SDValue V) {
2440 SDValue SelectionDAG::getAddrSpaceCast(const SDLoc &dl, EVT VT, SDValue Ptr,
2462 SDValue SelectionDAG::getFreeze(SDValue V) {
2468 SDValue SelectionDAG::getShiftAmountOperand(EVT LHSTy, SDValue Op) {
2476 SDValue SelectionDAG::getPartialReduceAdd(SDLoc DL, EVT ReducedTy, SDValue Op1,
2518 unsigned MaxSteps = SelectionDAG::getHasPredecessorMaxSteps();
2550 bool SelectionDAG::expandMultipleResultFPLibCall(
2695 SDValue SelectionDAG::expandVAArg(SDNode *Node) {
2729 SDValue SelectionDAG::expandVACopy(SDNode *Node) {
2743 Align SelectionDAG::getReducedAlign(EVT VT, bool UseABI) {
2776 SDValue SelectionDAG::CreateStackTemporary(TypeSize Bytes, Align Alignment) {
2789 SDValue SelectionDAG::CreateStackTemporary(EVT VT, unsigned minAlign) {
2796 SDValue SelectionDAG::CreateStackTemporary(EVT VT1, EVT VT2) {
2813 SDValue SelectionDAG::FoldSetCC(EVT VT, SDValue N1, SDValue N2,
2969 bool SelectionDAG::SignBitIsZero(SDValue Op, unsigned Depth) const {
2977 bool SelectionDAG::MaskedValueIsZero(SDValue V, const APInt &Mask,
2985 bool SelectionDAG::MaskedValueIsZero(SDValue V, const APInt &Mask,
2993 bool SelectionDAG::MaskedVectorIsZero(SDValue V, const APInt &DemandedElts,
2999 bool SelectionDAG::MaskedValueIsAllOnes(SDValue V, const APInt &Mask,
3004 APInt SelectionDAG::computeVectorKnownZeroElements(SDValue Op,
3029 bool SelectionDAG::isSplatValue(SDValue V, const APInt &DemandedElts,
3215 bool SelectionDAG::isSplatValue(SDValue V, bool AllowUndefs) const {
3229 SDValue SelectionDAG::getSplatSourceVector(SDValue V, int &SplatIdx) {
3266 // TODO - remove this and rely purely on SelectionDAG::isSplatValue,
3281 SDValue SelectionDAG::getSplatValue(SDValue V, bool LegalTypes) {
3300 SelectionDAG::getValidShiftAmountRange(SDValue V, const APInt &DemandedElts,
3349 SelectionDAG::getValidShiftAmount(SDValue V, const APInt &DemandedElts,
3362 SelectionDAG::getValidShiftAmount(SDValue V, unsigned Depth) const {
3371 SelectionDAG::getValidMinimumShiftAmount(SDValue V, const APInt &DemandedElts,
3383 SelectionDAG::getValidMinimumShiftAmount(SDValue V, unsigned Depth) const {
3392 SelectionDAG::getValidMaximumShiftAmount(SDValue V, const APInt &DemandedElts,
3404 SelectionDAG::getValidMaximumShiftAmount(SDValue V, unsigned Depth) const {
3415 KnownBits SelectionDAG::computeKnownBits(SDValue Op, unsigned Depth) const {
3430 KnownBits SelectionDAG::computeKnownBits(SDValue Op, const APInt &DemandedElts,
4519 /// Convert ConstantRange OverflowResult into SelectionDAG::OverflowKind.
4520 static SelectionDAG::OverflowKind mapOverflowResult(ConstantRange::OverflowResult OR) {
4523 return SelectionDAG::OFK_Sometime;
4526 return SelectionDAG::OFK_Always;
4528 return SelectionDAG::OFK_Never;
4533 SelectionDAG::OverflowKind
4534 SelectionDAG::computeOverflowForSignedAdd(SDValue N0, SDValue N1) const {
4548 SelectionDAG::OverflowKind
4549 SelectionDAG::computeOverflowForUnsignedAdd(SDValue N0, SDValue N1) const {
4571 SelectionDAG::OverflowKind
4572 SelectionDAG::computeOverflowForSignedSub(SDValue N0, SDValue N1) const {
4589 SelectionDAG::OverflowKind
4590 SelectionDAG::computeOverflowForUnsignedSub(SDValue N0, SDValue N1) const {
4602 SelectionDAG::OverflowKind
4603 SelectionDAG::computeOverflowForUnsignedMul(SDValue N0, SDValue N1) const {
4615 SelectionDAG::OverflowKind
4616 SelectionDAG::computeOverflowForSignedMul(SDValue N0, SDValue N1) const {
4645 bool SelectionDAG::isKnownToBeAPowerOfTwo(SDValue Val, unsigned Depth) const {
4729 bool SelectionDAG::isKnownToBeAPowerOfTwoFP(SDValue Val, unsigned Depth) const {
4739 unsigned SelectionDAG::ComputeNumSignBits(SDValue Op, unsigned Depth) const {
4751 unsigned SelectionDAG::ComputeNumSignBits(SDValue Op, const APInt &DemandedElts,
5417 unsigned SelectionDAG::ComputeMaxSignificantBits(SDValue Op,
5423 unsigned SelectionDAG::ComputeMaxSignificantBits(SDValue Op,
5430 bool SelectionDAG::isGuaranteedNotToBeUndefOrPoison(SDValue Op, bool PoisonOnly,
5443 bool SelectionDAG::isGuaranteedNotToBeUndefOrPoison(SDValue Op,
5529 bool SelectionDAG::canCreateUndefOrPoison(SDValue Op, bool PoisonOnly,
5540 bool SelectionDAG::canCreateUndefOrPoison(SDValue Op, const APInt &DemandedElts,
5657 bool SelectionDAG::isADDLike(SDValue Op, bool NoWrap) const {
5667 bool SelectionDAG::isBaseWithConstantOffset(SDValue Op) const {
5672 bool SelectionDAG::isKnownNeverNaN(SDValue Op, bool SNaN, unsigned Depth) const {
5805 bool SelectionDAG::isKnownNeverZeroFloat(SDValue Op) const {
5814 bool SelectionDAG::isKnownNeverZero(SDValue Op, unsigned Depth) const {
5968 bool SelectionDAG::cannotBeOrderedNegativeFP(SDValue Op) const {
5975 bool SelectionDAG::isEqualTo(SDValue A, SDValue B) const {
6041 bool SelectionDAG::haveNoCommonBitsSet(SDValue A, SDValue B) const {
6052 SelectionDAG &DAG) {
6061 SelectionDAG &DAG) {
6097 SelectionDAG &DAG) {
6181 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT) {
6198 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
6206 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
6627 SDValue SelectionDAG::FoldSymbolOffset(unsigned Opcode, EVT VT,
6647 bool SelectionDAG::isUndef(unsigned Opcode, ArrayRef<SDValue> Ops) {
6672 SDValue SelectionDAG::FoldConstantArithmetic(unsigned Opcode, const SDLoc &DL,
7097 SDValue SelectionDAG::foldConstantFPMath(unsigned Opcode, const SDLoc &DL,
7180 SDValue SelectionDAG::getAssertAlign(const SDLoc &DL, SDValue Val, Align A) {
7209 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7217 void SelectionDAG::canonicalizeCommutativeBinop(unsigned Opcode, SDValue &N1,
7238 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7717 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7725 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7915 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7922 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7930 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7937 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
7948 SDValue SelectionDAG::getStackArgumentTokenFactor(SDValue Chain) {
7969 static SDValue getMemsetValue(SDValue Value, EVT VT, SelectionDAG &DAG,
8010 static SDValue getMemsetStringVal(EVT VT, const SDLoc &dl, SelectionDAG &DAG,
8052 SDValue SelectionDAG::getMemBasePlusOffset(SDValue Base, TypeSize Offset,
8068 SDValue SelectionDAG::getMemBasePlusOffset(SDValue Ptr, SDValue Offset,
8096 SelectionDAG &DAG) {
8104 static void chainLoadsAndStoresForMemcpy(SelectionDAG &DAG, const SDLoc &dl,
8130 SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Dst, SDValue Src,
8330 static SDValue getMemmoveLoadsAndStores(SelectionDAG &DAG, const SDLoc &dl,
8455 static SDValue getMemsetStores(SelectionDAG &DAG, const SDLoc &dl,
8581 SDValue SelectionDAG::getMemcpy(
8667 SDValue SelectionDAG::getAtomicMemcpy(SDValue Chain, const SDLoc &dl,
8707 SDValue SelectionDAG::getMemmove(SDValue Chain, const SDLoc &dl, SDValue Dst,
8784 SDValue SelectionDAG::getAtomicMemmove(SDValue Chain, const SDLoc &dl,
8824 SDValue SelectionDAG::getMemset(SDValue Chain, const SDLoc &dl, SDValue Dst,
8922 SDValue SelectionDAG::getAtomicMemset(SDValue Chain, const SDLoc &dl,
8962 SDValue SelectionDAG::getAtomic(unsigned Opcode, const SDLoc &dl, EVT MemVT,
8985 SDValue SelectionDAG::getAtomicCmpSwap(unsigned Opcode, const SDLoc &dl,
8997 SDValue SelectionDAG::getAtomic(unsigned Opcode, const SDLoc &dl, EVT MemVT,
9023 SDValue SelectionDAG::getAtomic(unsigned Opcode, const SDLoc &dl, EVT MemVT,
9034 SDValue SelectionDAG::getMergeValues(ArrayRef<SDValue> Ops, const SDLoc &dl) {
9045 SDValue SelectionDAG::getMemIntrinsicNode(
9060 SDValue SelectionDAG::getMemIntrinsicNode(unsigned Opcode, const SDLoc &dl,
9103 SDValue SelectionDAG::getLifetimeNode(bool IsStart, const SDLoc &dl,
9133 SDValue SelectionDAG::getPseudoProbeNode(const SDLoc &Dl, SDValue Chain,
9162 SelectionDAG &DAG, SDValue Ptr,
9186 SelectionDAG &DAG, SDValue Ptr,
9196 SDValue SelectionDAG::getLoad(ISD::MemIndexedMode AM, ISD::LoadExtType ExtType,
9220 SDValue SelectionDAG::getLoad(ISD::MemIndexedMode AM, ISD::LoadExtType ExtType,
9270 SDValue SelectionDAG::getLoad(EVT VT, const SDLoc &dl, SDValue Chain,
9280 SDValue SelectionDAG::getLoad(EVT VT, const SDLoc &dl, SDValue Chain,
9287 SDValue SelectionDAG::getExtLoad(ISD::LoadExtType ExtType, const SDLoc &dl,
9298 SDValue SelectionDAG::getExtLoad(ISD::LoadExtType ExtType, const SDLoc &dl,
9306 SDValue SelectionDAG::getIndexedLoad(SDValue OrigLoad, const SDLoc &dl,
9320 SDValue SelectionDAG::getStore(SDValue Chain, const SDLoc &dl, SDValue Val,
9340 SDValue SelectionDAG::getStore(SDValue Chain, const SDLoc &dl, SDValue Val,
9371 SDValue SelectionDAG::getTruncStore(SDValue Chain, const SDLoc &dl, SDValue Val,
9392 SDValue SelectionDAG::getTruncStore(SDValue Chain, const SDLoc &dl, SDValue Val,
9438 SDValue SelectionDAG::getIndexedStore(SDValue OrigStore, const SDLoc &dl,
9467 SDValue SelectionDAG::getLoadVP(
9490 SDValue SelectionDAG::getLoadVP(ISD::MemIndexedMode AM,
9525 SDValue SelectionDAG::getLoadVP(EVT VT, const SDLoc &dl, SDValue Chain,
9538 SDValue SelectionDAG::getLoadVP(EVT VT, const SDLoc &dl, SDValue Chain,
9546 SDValue SelectionDAG::getExtLoadVP(ISD::LoadExtType ExtType, const SDLoc &dl,
9559 SDValue SelectionDAG::getExtLoadVP(ISD::LoadExtType ExtType, const SDLoc &dl,
9568 SDValue SelectionDAG::getIndexedLoadVP(SDValue OrigLoad, const SDLoc &dl,
9584 SDValue SelectionDAG::getStoreVP(SDValue Chain, const SDLoc &dl, SDValue Val,
9618 SDValue SelectionDAG::getTruncStoreVP(SDValue Chain, const SDLoc &dl,
9641 SDValue SelectionDAG::getTruncStoreVP(SDValue Chain, const SDLoc &dl,
9690 SDValue SelectionDAG::getIndexedStoreVP(SDValue OrigStore, const SDLoc &dl,
9720 SDValue SelectionDAG::getStridedLoadVP(
9754 SDValue SelectionDAG::getStridedLoadVP(EVT VT, const SDLoc &DL, SDValue Chain,
9764 SDValue SelectionDAG::getExtStridedLoadVP(
9773 SDValue SelectionDAG::getStridedStoreVP(SDValue Chain, const SDLoc &DL,
9809 SDValue SelectionDAG::getTruncStridedStoreVP(SDValue Chain, const SDLoc &DL,
9858 SDValue SelectionDAG::getGatherVP(SDVTList VTs, EVT VT, const SDLoc &dl,
9901 SDValue SelectionDAG::getScatterVP(SDVTList VTs, EVT VT, const SDLoc &dl,
9945 SDValue SelectionDAG::getMaskedLoad(EVT VT, const SDLoc &dl, SDValue Chain,
9980 SDValue SelectionDAG::getIndexedMaskedLoad(SDValue OrigLoad, const SDLoc &dl,
9991 SDValue SelectionDAG::getMaskedStore(SDValue Chain, const SDLoc &dl,
10029 SDValue SelectionDAG::getIndexedMaskedStore(SDValue OrigStore, const SDLoc &dl,
10040 SDValue SelectionDAG::getMaskedGather(SDVTList VTs, EVT MemVT, const SDLoc &dl,
10087 SDValue SelectionDAG::getMaskedScatter(SDVTList VTs, EVT MemVT, const SDLoc &dl,
10133 SDValue SelectionDAG::getMaskedHistogram(SDVTList VTs, EVT MemVT,
10171 SDValue SelectionDAG::getGetFPEnv(SDValue Chain, const SDLoc &dl, SDValue Ptr,
10198 SDValue SelectionDAG::getSetFPEnv(SDValue Chain, const SDLoc &dl, SDValue Ptr,
10225 SDValue SelectionDAG::simplifySelect(SDValue Cond, SDValue T, SDValue F) {
10248 SDValue SelectionDAG::simplifyShift(SDValue X, SDValue Y) {
10276 SDValue SelectionDAG::simplifyFPBinop(unsigned Opcode, SDValue X, SDValue Y,
10321 SDValue SelectionDAG::getVAArg(EVT VT, const SDLoc &dl, SDValue Chain,
10327 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
10343 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
10351 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT,
10465 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL,
10470 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10478 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10672 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL,
10677 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10683 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10689 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10695 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10701 SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList,
10708 SDVTList SelectionDAG::getVTList(EVT VT) {
10715 SDVTList SelectionDAG::getVTList(EVT VT1, EVT VT2) {
10733 SDVTList SelectionDAG::getVTList(EVT VT1, EVT VT2, EVT VT3) {
10753 SDVTList SelectionDAG::getVTList(EVT VT1, EVT VT2, EVT VT3, EVT VT4) {
10775 SDVTList SelectionDAG::getVTList(ArrayRef<EVT> VTs) {
10801 SDNode *SelectionDAG::UpdateNodeOperands(SDNode *N, SDValue Op) {
10826 SDNode *SelectionDAG::UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2) {
10855 SDNode *SelectionDAG::
10861 SDNode *SelectionDAG::
10868 SDNode *SelectionDAG::
10875 SDNode *SelectionDAG::
10917 void SelectionDAG::setNodeMemRefs(MachineSDNode *N,
10941 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10947 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10954 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10962 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10970 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10976 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10982 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10988 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
10995 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
11003 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
11022 SDNode *SelectionDAG::UpdateSDLocOnMergeSDNode(SDNode *N, const SDLoc &OLoc) {
11048 SDNode *SelectionDAG::MorphNodeTo(SDNode *N, unsigned Opc,
11101 SDNode* SelectionDAG::mutateStrictFPToFP(SDNode *Node) {
11149 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11155 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11162 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11169 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11177 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11183 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11191 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11199 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11206 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11214 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11223 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11230 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &dl,
11237 MachineSDNode *SelectionDAG::getMachineNode(unsigned Opcode, const SDLoc &DL,
11267 SDValue SelectionDAG::getTargetExtractSubreg(int SRIdx, const SDLoc &DL, EVT VT,
11277 SDValue SelectionDAG::getTargetInsertSubreg(int SRIdx, const SDLoc &DL, EVT VT,
11287 SDNode *SelectionDAG::getNodeIfExists(unsigned Opcode, SDVTList VTList,
11295 SDNode *SelectionDAG::getNodeIfExists(unsigned Opcode, SDVTList VTList,
11311 bool SelectionDAG::doesNodeExist(unsigned Opcode, SDVTList VTList,
11326 SDDbgValue *SelectionDAG::getDbgValue(DIVariable *Var, DIExpression *Expr,
11338 SDDbgValue *SelectionDAG::getConstantDbgValue(DIVariable *Var,
11351 SDDbgValue *SelectionDAG::getFrameIndexDbgValue(DIVariable *Var,
11362 SDDbgValue *SelectionDAG::getFrameIndexDbgValue(DIVariable *Var,
11377 SDDbgValue *SelectionDAG::getVRegDbgValue(DIVariable *Var, DIExpression *Expr,
11388 SDDbgValue *SelectionDAG::getDbgValueList(DIVariable *Var, DIExpression *Expr,
11400 void SelectionDAG::transferDbgValues(SDValue From, SDValue To,
11482 void SelectionDAG::salvageDebugInfo(SDNode &N) {
11616 SDDbgLabel *SelectionDAG::getDbgLabel(DILabel *Label,
11629 class RAUWUpdateListener : public SelectionDAG::DAGUpdateListener {
11640 RAUWUpdateListener(SelectionDAG &d,
11643 : SelectionDAG::DAGUpdateListener(d), UI(ui), UE(ue) {}
11653 void SelectionDAG::ReplaceAllUsesWith(SDValue FromN, SDValue To) {
11706 void SelectionDAG::ReplaceAllUsesWith(SDNode *From, SDNode *To) {
11764 void SelectionDAG::ReplaceAllUsesWith(SDNode *From, const SDValue *To) {
11814 void SelectionDAG::ReplaceAllUsesOfValueWith(SDValue From, SDValue To){
11879 /// UseMemo - This class is used by SelectionDAG::ReplaceAllUsesOfValuesWith
11895 class RAUOVWUpdateListener : public SelectionDAG::DAGUpdateListener {
11905 RAUOVWUpdateListener(SelectionDAG &d, SmallVectorImpl<UseMemo> &uses)
11906 : SelectionDAG::DAGUpdateListener(d), Uses(uses) {}
11924 bool SelectionDAG::calculateDivergence(SDNode *N) {
11943 void SelectionDAG::updateDivergence(SDNode *N) {
11955 void SelectionDAG::CreateTopologicalOrder(std::vector<SDNode *> &Order) {
11975 void SelectionDAG::VerifyDAGDivergence() {
11989 void SelectionDAG::ReplaceAllUsesOfValuesWith(const SDValue *From,
12054 unsigned SelectionDAG::AssignTopologicalOrder() {
12140 void SelectionDAG::AddDbgValue(SDDbgValue *DB, bool isParameter) {
12150 void SelectionDAG::AddDbgLabel(SDDbgLabel *DB) { DbgInfo->add(DB); }
12152 SDValue SelectionDAG::makeEquivalentMemoryOrdering(SDValue OldChain,
12170 SDValue SelectionDAG::makeEquivalentMemoryOrdering(LoadSDNode *OldLoad,
12178 SDValue SelectionDAG::getSymbolFunctionGlobalAddress(SDValue Op,
12551 /// side-effects; SelectionDAG requires that all side-effects are represented
12604 SelectionDAG::matchBinOpReduction(SDNode *Extract, ISD::NodeType &BinOp,
12720 SDValue SelectionDAG::UnrollVectorOp(SDNode *N, unsigned ResNE) {
12832 std::pair<SDValue, SDValue> SelectionDAG::UnrollVectorOverflowOp(
12882 bool SelectionDAG::areNonVolatileConsecutiveLoads(LoadSDNode *LD,
12910 MaybeAlign SelectionDAG::InferPtrAlign(SDValue Ptr) const {
12946 std::pair<SDValue, SDValue> SelectionDAG::SplitScalar(const SDValue &N,
12961 std::pair<EVT, EVT> SelectionDAG::GetSplitDestVTs(const EVT &VT) const {
12976 SelectionDAG::GetDependentSplitDestVTs(const EVT &VT, const EVT &EnvVT,
13006 SelectionDAG::SplitVector(const SDValue &N, const SDLoc &DL, const EVT &LoVT,
13027 std::pair<SDValue, SDValue> SelectionDAG::SplitEVL(SDValue N, EVT VecVT,
13045 SDValue SelectionDAG::WidenVector(const SDValue &N, const SDLoc &DL) {
13053 void SelectionDAG::ExtractVectorElements(SDValue Op,
13439 bool SelectionDAG::isConstantIntBuildVectorOrConstantInt(
13463 bool SelectionDAG::isConstantFPBuildVectorOrConstantFP(SDValue N) const {
13477 std::optional<bool> SelectionDAG::isBoolConstant(SDValue N,
13503 void SelectionDAG::createOperands(SDNode *Node, ArrayRef<SDValue> Vals) {
13532 SDValue SelectionDAG::getTokenFactor(const SDLoc &DL,
13545 SDValue SelectionDAG::getNeutralElement(unsigned Opcode, const SDLoc &DL,
13610 SDValue SelectionDAG::makeStateFunctionCall(unsigned LibFunc, SDValue Ptr,
13629 void SelectionDAG::copyExtraInfo(SDNode *From, SDNode *To) {
13717 errs() << "warning: incomplete propagation of SelectionDAG::NodeExtraInfo\n";
13727 const llvm::SelectionDAG *DAG) {
13735 errs() << "Detected cycle in SelectionDAG\n";
13750 const llvm::SelectionDAG *DAG,
13766 void llvm::checkForCycles(const llvm::SelectionDAG *DAG, bool force) {