LLVM API Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends
llvm::SDNode Class Reference

#include <SelectionDAGNodes.h>

Inheritance diagram for llvm::SDNode:
Inheritance graph
[legend]
Collaboration diagram for llvm::SDNode:
Collaboration graph
[legend]

List of all members.

Classes

class  use_iterator

Public Types

typedef SDUseop_iterator
typedef const EVTvalue_iterator

Public Member Functions

unsigned getOpcode () const
bool isTargetOpcode () const
bool isTargetMemoryOpcode () const
bool isMemIntrinsic () const
bool isMachineOpcode () const
unsigned getMachineOpcode () const
bool getHasDebugValue () const
 getHasDebugValue - get this bit.
void setHasDebugValue (bool b)
 setHasDebugValue - set this bit.
bool use_empty () const
bool hasOneUse () const
size_t use_size () const
int getNodeId () const
void setNodeId (int Id)
 setNodeId - Set unique node id.
unsigned getIROrder () const
void setIROrder (unsigned Order)
const DebugLoc getDebugLoc () const
 getDebugLoc - Return the source location info.
void setDebugLoc (const DebugLoc dl)
use_iterator use_begin () const
iterator_range< use_iteratoruses ()
iterator_range< use_iteratoruses () const
bool hasNUsesOfValue (unsigned NUses, unsigned Value) const
bool hasAnyUseOfValue (unsigned Value) const
bool isOnlyUserOf (SDNode *N) const
bool isOperandOf (SDNode *N) const
bool isPredecessorOf (const SDNode *N) const
bool hasPredecessor (const SDNode *N) const
bool hasPredecessorHelper (const SDNode *N, SmallPtrSetImpl< const SDNode * > &Visited, SmallVectorImpl< const SDNode * > &Worklist) const
unsigned getNumOperands () const
uint64_t getConstantOperandVal (unsigned Num) const
const SDValuegetOperand (unsigned Num) const
op_iterator op_begin () const
op_iterator op_end () const
ArrayRef< SDUseops () const
SDVTList getVTList () const
SDNodegetGluedNode () const
const SDNodegetGluedMachineNode () const
SDNodegetGluedUser () const
unsigned getNumValues () const
EVT getValueType (unsigned ResNo) const
MVT getSimpleValueType (unsigned ResNo) const
unsigned getValueSizeInBits (unsigned ResNo) const
value_iterator value_begin () const
value_iterator value_end () const
std::string getOperationName (const SelectionDAG *G=nullptr) const
void print_types (raw_ostream &OS, const SelectionDAG *G) const
void print_details (raw_ostream &OS, const SelectionDAG *G) const
void print (raw_ostream &OS, const SelectionDAG *G=nullptr) const
void printr (raw_ostream &OS, const SelectionDAG *G=nullptr) const
void printrFull (raw_ostream &O, const SelectionDAG *G=nullptr) const
void printrWithDepth (raw_ostream &O, const SelectionDAG *G=nullptr, unsigned depth=100) const
void dump () const
 dump - Dump this node, for debugging.
void dumpr () const
 dumpr - Dump (recursively) this node and its use-def subgraph.
void dump (const SelectionDAG *G) const
void dumpr (const SelectionDAG *G) const
void dumprFull (const SelectionDAG *G=nullptr) const
void dumprWithDepth (const SelectionDAG *G=nullptr, unsigned depth=100) const
void Profile (FoldingSetNodeID &ID) const
void addUse (SDUse &U)

Static Public Member Functions

static use_iterator use_end ()
static const char * getIndexedModeName (ISD::MemIndexedMode AM)

Protected Member Functions

 SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs, ArrayRef< SDValue > Ops)
 SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs)
void InitOperands (SDUse *Ops, const SDValue &Op0)
 InitOperands - Initialize the operands list of this with 1 operand.
void InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1)
 InitOperands - Initialize the operands list of this with 2 operands.
void InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2)
 InitOperands - Initialize the operands list of this with 3 operands.
void InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2, const SDValue &Op3)
 InitOperands - Initialize the operands list of this with 4 operands.
void InitOperands (SDUse *Ops, const SDValue *Vals, unsigned N)
 InitOperands - Initialize the operands list of this with N operands.
void DropOperands ()

Static Protected Member Functions

static SDVTList getSDVTList (EVT VT)

Protected Attributes

uint16_t SubclassData: 14

Friends

class SelectionDAG
struct ilist_traits< SDNode >

Detailed Description

SDNode - Represents one node in the SelectionDAG.

Definition at line 344 of file SelectionDAGNodes.h.


Member Typedef Documentation

Definition at line 613 of file SelectionDAGNodes.h.

Definition at line 681 of file SelectionDAGNodes.h.


Constructor & Destructor Documentation

llvm::SDNode::SDNode ( unsigned  Opc,
unsigned  Order,
const DebugLoc  dl,
SDVTList  VTs,
ArrayRef< SDValue Ops 
) [inline, protected]

Definition at line 757 of file SelectionDAGNodes.h.

References llvm::checkForCycles(), and llvm::ArrayRef< T >::size().

llvm::SDNode::SDNode ( unsigned  Opc,
unsigned  Order,
const DebugLoc  dl,
SDVTList  VTs 
) [inline, protected]

This constructor adds no operands itself; operands can be set later with InitOperands.

Definition at line 774 of file SelectionDAGNodes.h.


Member Function Documentation

void llvm::SDNode::addUse ( SDUse U) [inline]

addUse - This method should only be used by the SDUse class.

Definition at line 749 of file SelectionDAGNodes.h.

void SDNode::DropOperands ( ) [protected]

DropOperands - Release the operands and set this node to have zero operands.

Definition at line 5335 of file SelectionDAG.cpp.

References I, op_begin(), and op_end().

Referenced by llvm::HandleSDNode::~HandleSDNode().

void SDNode::dump ( ) const
void SDNode::dump ( const SelectionDAG G) const

dump - Dump this node, for debugging. The given SelectionDAG allows target-specific nodes to be printed in human-readable form.

Definition at line 341 of file SelectionDAGDumper.cpp.

References llvm::dbgs(), and print().

void SDNode::dumpr ( ) const

dumpr - Dump (recursively) this node and its use-def subgraph.

Definition at line 604 of file SelectionDAGDumper.cpp.

References llvm::dbgs(), and DumpNodesr().

Referenced by llvm::SDValue::dumpr().

void SDNode::dumpr ( const SelectionDAG G) const

dumpr - Dump (recursively) this node and its use-def subgraph. The given SelectionDAG allows target-specific nodes to be printed in human-readable form.

Definition at line 609 of file SelectionDAGDumper.cpp.

References llvm::dbgs(), and DumpNodesr().

void SDNode::dumprFull ( const SelectionDAG G = nullptr) const

dumprFull - printrFull to dbgs(). The given SelectionDAG allows target-specific nodes to be printed in human-readable form. Unlike dumpr, this will print the whole DAG, including children that appear multiple times.

Definition at line 650 of file SelectionDAGDumper.cpp.

References dumprWithDepth().

Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), and checkForCyclesHelper().

void SDNode::dumprWithDepth ( const SelectionDAG G = nullptr,
unsigned  depth = 100 
) const

dumprWithDepth - printrWithDepth to dbgs(). The given SelectionDAG allows target-specific nodes to be printed in human-readable form. Unlike dumpr, this will print children that appear multiple times wherever they are used.

Definition at line 646 of file SelectionDAGDumper.cpp.

References llvm::dbgs(), and printrWithDepth().

Referenced by dumprFull().

uint64_t SDNode::getConstantOperandVal ( unsigned  Num) const

getDebugLoc - Return the source location info.

Definition at line 479 of file SelectionDAGNodes.h.

Referenced by llvm::SDValue::getDebugLoc(), and llvm::SDLoc::getDebugLoc().

Definition at line 634 of file SelectionDAGNodes.h.

References getGluedNode(), isMachineOpcode(), and N.

SDNode* llvm::SDNode::getGluedNode ( ) const [inline]
SDNode* llvm::SDNode::getGluedUser ( ) const [inline]

getGluedUser - If this node has a glue value with a user, return the user (there is at most one). Otherwise return NULL.

Definition at line 650 of file SelectionDAGNodes.h.

References llvm::MVT::Glue, use_begin(), and use_end().

Referenced by AddCombineTo64bitMLAL(), and findGluedUser().

getHasDebugValue - get this bit.

Definition at line 443 of file SelectionDAGNodes.h.

Referenced by ProcessSDDbgValues(), and llvm::SelectionDAG::TransferDbgValues().

unsigned llvm::SDNode::getIROrder ( ) const [inline]

getIROrder - Return the node ordering.

Definition at line 472 of file SelectionDAGNodes.h.

Referenced by llvm::SDLoc::getIROrder(), PerformADDCombineWithOperands(), and ProcessSourceNode().

int llvm::SDNode::getNodeId ( ) const [inline]

getNumOperands - Return the number of values used by this operation.

Definition at line 602 of file SelectionDAGNodes.h.

Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddGlue(), llvm::ISD::allOperandsUndef(), llvm::SelectionDAG::AssignTopologicalOrder(), BUILD_VECTORtoBlendMask(), checkForCyclesHelper(), CheckForMaskedLoad(), CloneNodeWithValues(), CombineBaseUpdate(), ConvertSelectToConcatVector(), countOperands(), DumpNodes(), DumpNodesr(), llvm::SDNodeIterator::end(), ExpandBVWithShuffles(), FindCallSeqStart(), findNonImmUse(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::PPC::get_VSPLTI_elt(), getGluedNode(), getInputChainForNode(), getNodeRegMask(), llvm::SDValue::getNumOperands(), getNumOperandsNoGlue(), getReadPerformanceCounter(), getReadTimeStampCounter(), llvm::BuildVectorSDNode::getSplatValue(), getTargetShuffleMask(), getTargetVShiftByConstNode(), HandleMergeInputChains(), hasPredecessorHelper(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), llvm::ISD::isBuildVectorOfConstantSDNodes(), IsChainDependent(), llvm::BuildVectorSDNode::isConstant(), isConstantOrUndefBUILD_VECTOR(), llvm::BuildVectorSDNode::isConstantSplat(), isExtendedBUILD_VECTOR(), isNodeChanged(), llvm::SDValue::isOperandOf(), llvm::ISD::isScalarToVector(), isSplatVector(), lowerDSPIntr(), llvm::SparcTargetLowering::LowerF128Op(), llvm::HexagonTargetLowering::LowerINLINEASM(), MoveBelowOrigChain(), performANDCombine(), PerformANDCombine(), PerformBUILD_VECTORCombine(), llvm::SITargetLowering::PerformDAGCombine(), performNEONPostLDSTCombine(), PerformSELECTCombine(), performSRACombine(), PerformSTORECombine(), print(), printrWithDepthHelper(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), replaceInChain(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::SelectionDAGISel::SelectCodeCommon(), tryToFoldExtendOfConstant(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SelectionDAG::UpdateNodeOperands(), VerifySDNode(), and WillBeConstantPoolLoad().

unsigned llvm::SDNode::getOpcode ( ) const [inline]

getOpcode - Return the SelectionDAG opcode value for this node. For pre-isel nodes (those for which isMachineOpcode returns false), these are the opcode values in the ISD and <target>ISD namespaces. For post-isel opcodes, see getMachineOpcode.

Definition at line 407 of file SelectionDAGNodes.h.

Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddNodeIDCustom(), AddNodeIDNode(), adjustForFNeg(), adjustForLTGFR(), adjustForSubtraction(), llvm::SelectionDAG::AssignTopologicalOrder(), canEnableCoalescing(), canFoldInAddressingMode(), CanFoldXORWithAllOnes(), CheckAndImm(), CheckForMaskedLoad(), CheckForPhysRegDependency(), checkHighLaneIndex(), CheckOpcode(), CheckOrImm(), checkValueWidth(), llvm::BinaryWithFlagsSDNode::classof(), llvm::AddrSpaceCastSDNode::classof(), llvm::MemSDNode::classof(), llvm::AtomicSDNode::classof(), llvm::MemIntrinsicSDNode::classof(), llvm::ShuffleVectorSDNode::classof(), llvm::ConstantSDNode::classof(), llvm::ConstantFPSDNode::classof(), llvm::GlobalAddressSDNode::classof(), llvm::FrameIndexSDNode::classof(), llvm::JumpTableSDNode::classof(), llvm::ConstantPoolSDNode::classof(), llvm::TargetIndexSDNode::classof(), llvm::BasicBlockSDNode::classof(), llvm::BuildVectorSDNode::classof(), llvm::SrcValueSDNode::classof(), llvm::MDNodeSDNode::classof(), llvm::RegisterSDNode::classof(), llvm::RegisterMaskSDNode::classof(), llvm::BlockAddressSDNode::classof(), llvm::EHLabelSDNode::classof(), llvm::ExternalSymbolSDNode::classof(), llvm::CondCodeSDNode::classof(), llvm::CvtRndSatSDNode::classof(), llvm::VTSDNode::classof(), llvm::LSBaseSDNode::classof(), llvm::LoadSDNode::classof(), llvm::StoreSDNode::classof(), CloneNodeWithValues(), CombineBaseUpdate(), combineSelectAndUse(), combineShuffleToAddSub(), CombineVLDDUP(), combineX86ShuffleChain(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), ConvertSelectToConcatVector(), doNotCSE(), EltsFromConsecutiveLoads(), Expand64BitShift(), ExpandHorizontalBinOp(), ExtendUsesToFormExtLoad(), FindCallSeqStart(), findConsecutiveLoad(), findMUL_LOHI(), GenerateTBL(), getARMIndexedAddressParts(), llvm::MemSDNode::getBasePtr(), GetCostForDef(), getIndexedAddressParts(), getIntrinsicID(), llvm::SelectionDAG::getNode(), llvm::LSBaseSDNode::getOffset(), llvm::SDValue::getOpcode(), getOperationName(), llvm::ARMTargetLowering::getPostIndexedAddressParts(), llvm::BuildVectorSDNode::getSplatValue(), getT2IndexedAddressParts(), getTargetShuffleMask(), getTargetVShiftByConstNode(), HandleMergeInputChains(), hasNonFlagsUse(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), isAddSubSExt(), isAddSubZExt(), isBitfieldExtractOp(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromShr(), isBitfieldInsertOpFromOr(), isBitwiseInverse(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), llvm::ISD::isBuildVectorOfConstantSDNodes(), IsChainDependent(), llvm::AtomicSDNode::isCompareAndSwap(), isConditionalZeroOrAllOnes(), isConsecutiveLS(), isConstantOrUndef(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isExtendedBUILD_VECTOR(), llvm::TargetLowering::isGAPlusOffset(), isHorizontalBinOp(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), isOpcWithIntImmediate(), llvm::ScheduleDAGSDNodes::isPassiveNode(), isScalarLoadToVector(), llvm::ISD::isScalarToVector(), isSeveralBitsExtractOpFromShr(), isSignExtended(), isTruncateOf(), isVectorAllOnes(), isX86LogicalCmp(), isZeroExtended(), llvm::SparcTargetLowering::LowerCall_64(), LowerEXTRACT_VECTOR_ELT_SSE4(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerMUL_LOHI(), LowerShift(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLEv8i8(), llvm::LSBaseSDNode::LSBaseSDNode(), BaseIndexOffset::match(), OptimizeConditionalInDecrement(), PerformADDCombineWithOperands(), performAddSubLongCombine(), performANDCombine(), PerformANDCombine(), PerformARMBUILD_VECTORCombine(), performBitcastCombine(), PerformBUILD_VECTORCombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::MipsSETargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), llvm::SystemZTargetLowering::PerformDAGCombine(), llvm::MipsTargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), performExtendCombine(), PerformExtendCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformFMinFMaxCombine(), PerformFORCombine(), performIntegerAbsCombine(), performIntToFpCombine(), PerformMulCombine(), performNEONPostLDSTCombine(), performORCombine(), PerformOrCombine(), performPostLD1Combine(), PerformSELECTCombine(), performSetccAddFolding(), PerformShiftCombine(), PerformShuffleCombine(), performSRACombine(), PerformSTORECombine(), PerformVCVTCombine(), PerformVDIVCombine(), performVectorCompareAndMaskUnaryOpCombine(), performVSELECTCombine(), performXORCombine(), replaceInChain(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::XCoreTargetLowering::ReplaceNodeResults(), llvm::AMDGPUTargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), resetVRegCycle(), selectCCOpsAreFMaxCompatible(), llvm::SelectionDAGISel::SelectCodeCommon(), selectMADD(), selectMSUB(), shouldUseLA(), llvm::TargetLowering::SimplifyDemandedBits(), SkipExtensionForVMULL(), SplitVSETCC(), TransformVSELECTtoBlendVECTOR_SHUFFLE(), tryCombineToEXTR(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), llvm::SelectionDAG::UnrollVectorOp(), useDivRem(), useSinCos(), VerifySDNode(), WalkChainUsers(), WidenMaskArithmetic(), and WillBeConstantPoolLoad().

const SDValue& llvm::SDNode::getOperand ( unsigned  Num) const [inline]

Definition at line 608 of file SelectionDAGNodes.h.

Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddGlue(), adjustForLTGFR(), adjustForSubtraction(), llvm::ISD::allOperandsUndef(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::ARMBaseInstrInfo::areLoadsFromSameBasePtr(), BUILD_VECTORtoBlendMask(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), canFoldInAddressingMode(), CanFoldXORWithAllOnes(), ChangeVSETULTtoVSETULE(), CheckAndImm(), checkForCyclesHelper(), CheckForMaskedLoad(), CheckForPhysRegDependency(), checkHighLaneIndex(), CheckOrImm(), checkValueWidth(), CloneNodeWithValues(), CMPEQCombine(), CombineBaseUpdate(), llvm::AMDGPUTargetLowering::CombineMinMax(), combineSelectAndUseCommutative(), combineShuffleToAddSub(), CombineVLDDUP(), Compact8x32ShuffleNode(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), ConvertSelectToConcatVector(), countOperands(), DumpNodes(), DumpNodesr(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), Expand64BitShift(), ExpandBITCAST(), ExpandBVWithShuffles(), llvm::TargetLowering::expandFP_TO_SINT(), llvm::TargetLowering::expandMUL(), ExtendUsesToFormExtLoad(), FindCallSeqStart(), findChainOperand(), findEXTRHalf(), findNonImmUse(), llvm::SelectionDAG::FoldConstantArithmetic(), FoldOperand(), llvm::PPC::get_VSPLTI_elt(), getARMIndexedAddressParts(), llvm::MemSDNode::getBasePtr(), llvm::AtomicSDNode::getBasePtr(), llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), getBuildPairElt(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getCommutedVectorShuffle(), GetCostForDef(), getCTPOP16BitCounts(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeAttributes(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeTarget(), getExtractVEXTRACTImmediate(), getGluedNode(), getIndexedAddressParts(), getInputChainForNode(), getINSERTPS(), getInsertVINSERTImmediate(), getIntrinsicID(), llvm::SelectionDAG::getNode(), getNodeRegMask(), getNumOperandsNoGlue(), llvm::LSBaseSDNode::getOffset(), llvm::LoadSDNode::getOffset(), llvm::StoreSDNode::getOffset(), llvm::SDValue::getOperand(), llvm::ARMBaseInstrInfo::getOperandLatency(), getOperationName(), getReadPerformanceCounter(), getReadTimeStampCounter(), getShuffleScalarElt(), llvm::BuildVectorSDNode::getSplatValue(), getT2IndexedAddressParts(), getTargetShuffleMask(), getTargetVShiftByConstNode(), getUnderlyingExtractedFromVec(), getUsefulBitsForUse(), llvm::AtomicSDNode::getVal(), llvm::StoreSDNode::getValue(), llvm::SelectionDAG::getVectorShuffle(), HandleMergeInputChains(), hasNormalLoadOperand(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), hasPredecessorHelper(), isAddSubSExt(), isAddSubZExt(), isAllConstantBuildVector(), llvm::PPC::isAllNegativeZeroVector(), isBitfieldExtractOp(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromShr(), isBitfieldInsertOpFromOr(), isBitwiseInverse(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), llvm::ISD::isBuildVectorOfConstantSDNodes(), IsChainDependent(), isConditionalZeroOrAllOnes(), llvm::SelectionDAG::isConsecutiveLoad(), isConsecutiveLS(), llvm::BuildVectorSDNode::isConstant(), isConstantOrUndefBUILD_VECTOR(), llvm::BuildVectorSDNode::isConstantSplat(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isExtendedBUILD_VECTOR(), llvm::TargetLowering::isGAPlusOffset(), isHorizontalBinOp(), isLoadIncOrDecStore(), isNodeChanged(), isOpcWithIntImmediate(), llvm::SDValue::isOperandOf(), isScalarLoadToVector(), llvm::ISD::isScalarToVector(), isSetCCOrZExtSetCC(), isSeveralBitsExtractOpFromShr(), isSplatVector(), isTruncateOf(), isVectorAllOnes(), isVectorShiftLeft(), isVectorShiftRight(), isVEXTRACTIndex(), isVINSERTIndex(), isZeroShuffle(), LowerATOMIC_STORE(), LowerAVXExtend(), LowerBITCAST(), LowerBuildVectorv4x32(), lowerCTPOP32BitElements(), LowerCTTZ(), lowerDSPIntr(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerINSERT_SUBVECTOR(), LowerLOAD_SUB(), lowerMSABinaryBitImmIntr(), lowerMSABitClear(), lowerMSABitClearImm(), lowerMSACopyIntr(), lowerMSALoadIntr(), lowerMSASplatZExt(), lowerMSAStoreIntr(), LowerShift(), llvm::MSP430TargetLowering::LowerShifts(), LowerSIGN_EXTEND(), LowerSIGN_EXTEND_AVX512(), LowerVAARG(), LowerVECTOR_SHUFFLE_128v4(), LowerVECTOR_SHUFFLE_256(), lowerVECTOR_SHUFFLE_ILVEV(), lowerVECTOR_SHUFFLE_ILVL(), lowerVECTOR_SHUFFLE_ILVOD(), lowerVECTOR_SHUFFLE_ILVR(), lowerVECTOR_SHUFFLE_PCKEV(), lowerVECTOR_SHUFFLE_PCKOD(), lowerVECTOR_SHUFFLE_SHF(), lowerVECTOR_SHUFFLE_VSHF(), LowerVECTOR_SHUFFLEtoBlend(), LowerVECTOR_SHUFFLEv16i16(), LowerVECTOR_SHUFFLEv16i8(), LowerVECTOR_SHUFFLEv32i8(), LowerVECTOR_SHUFFLEv8i16(), LowerVectorAllZeroTest(), LowerXALUO(), LowerZERO_EXTEND_AVX512(), BaseIndexOffset::match(), matchAddSub(), NarrowVectorLoadToElement(), nodesHaveSameOperandValue(), OptimizeConditionalInDecrement(), partitionShuffleOfConcats(), PerformADCCombine(), performADDCombine(), PerformADDCombine(), PerformAddCombine(), performAddSubLongCombine(), performANDCombine(), PerformANDCombine(), PerformAndCombine(), PerformARMBUILD_VECTORCombine(), PerformBFICombine(), performBitcastCombine(), performBRCONDCombine(), PerformBrCondCombine(), PerformBTCombine(), PerformBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), PerformCMOVCombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), llvm::SystemZTargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), performDSPShiftCombine(), performExtendCombine(), PerformExtendCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformFADDCombine(), PerformFANDCombine(), PerformFANDNCombine(), PerformFMACombine(), PerformFMinFMaxCombine(), PerformFORCombine(), PerformFSUBCombine(), PerformInsertEltCombine(), PerformINSERTPSCombine(), performIntegerAbsCombine(), PerformINTRINSIC_WO_CHAINCombine(), performIntrinsicCombine(), PerformIntrinsicCombine(), performIntToFpCombine(), PerformISDSETCCCombine(), performMULCombine(), performMulCombine(), PerformMULCombine(), PerformMulCombine(), performNEONPostLDSTCombine(), performORCombine(), PerformORCombine(), PerformOrCombine(), performPostLD1Combine(), PerformSELECT_CCCombine(), performSELECTCombine(), performSelectCombine(), PerformSELECTCombine(), performSetccAddFolding(), performSETCCCombine(), PerformSETCCCombine(), PerformShiftCombine(), performShiftToAllZeros(), PerformSHLCombine(), PerformShuffleCombine(), PerformShuffleCombine256(), PerformSIGN_EXTEND_INREGCombine(), PerformSINT_TO_FPCombine(), performSRACombine(), PerformSTORECombine(), PerformSUBCombine(), PerformSubCombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVDUPLANECombine(), PerformVECTOR_SHUFFLECombine(), performVectorCompareAndMaskUnaryOpCombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVMULCombine(), performVSELECTCombine(), performVSelectCombine(), PerformVZEXT_MOVLCombine(), performVZEXTCombine(), performXORCombine(), PerformZExtCombine(), print(), printrWithDepthHelper(), PromoteSplat(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), ReplaceATOMIC_LOAD(), ReplaceBITCASTResults(), replaceInChain(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), ReplaceREADCYCLECOUNTER(), RewriteAsNarrowerShuffle(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), selectCCOpsAreFMaxCompatible(), llvm::SelectionDAGISel::SelectCodeCommon(), selectMADD(), selectMSUB(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), SkipExtensionForVMULL(), llvm::SelectionDAG::SplitVectorOperand(), SplitVSETCC(), TransformVSELECTtoBlendVECTOR_SHUFFLE(), tryCombineCRC32(), tryCombineFixedPointConvert(), tryCombineLongOpWithDup(), tryCombineShiftImm(), tryCombineToBSL(), tryCombineToEXTR(), tryLowerToSLI(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SelectionDAG::UpdateNodeOperands(), useDivRem(), useSinCos(), ValueHasExactlyOneBitSet(), VerifySDNode(), WidenMaskArithmetic(), WillBeConstantPoolLoad(), and XFormVExtractWithShuffleIntoLoad().

std::string SDNode::getOperationName ( const SelectionDAG G = nullptr) const

getOperationName - Return the opcode of this operation for printing.

Definition at line 33 of file SelectionDAGDumper.cpp.

References llvm::ISD::ADD, llvm::ISD::ADDC, llvm::ISD::ADDE, llvm::ISD::ADDRSPACECAST, llvm::ISD::ADJUST_TRAMPOLINE, llvm::ISD::AND, llvm::ISD::ANY_EXTEND, llvm::ISD::ANY_EXTEND_VECTOR_INREG, llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::ISD::ATOMIC_CMP_SWAP, llvm::ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, llvm::ISD::ATOMIC_FENCE, llvm::ISD::ATOMIC_LOAD, llvm::ISD::ATOMIC_LOAD_ADD, llvm::ISD::ATOMIC_LOAD_AND, llvm::ISD::ATOMIC_LOAD_MAX, llvm::ISD::ATOMIC_LOAD_MIN, llvm::ISD::ATOMIC_LOAD_NAND, llvm::ISD::ATOMIC_LOAD_OR, llvm::ISD::ATOMIC_LOAD_SUB, llvm::ISD::ATOMIC_LOAD_UMAX, llvm::ISD::ATOMIC_LOAD_UMIN, llvm::ISD::ATOMIC_LOAD_XOR, llvm::ISD::ATOMIC_STORE, llvm::ISD::ATOMIC_SWAP, llvm::ISD::BasicBlock, llvm::ISD::BITCAST, llvm::ISD::BlockAddress, llvm::ISD::BR, llvm::ISD::BR_CC, llvm::ISD::BR_JT, llvm::ISD::BRCOND, llvm::ISD::BRIND, llvm::ISD::BSWAP, llvm::ISD::BUILD_PAIR, llvm::ISD::BUILD_VECTOR, llvm::ISD::BUILTIN_OP_END, llvm::ISD::CALLSEQ_END, llvm::ISD::CALLSEQ_START, llvm::ISD::CARRY_FALSE, llvm::ISD::CONCAT_VECTORS, llvm::ISD::CONDCODE, llvm::ISD::Constant, llvm::ISD::ConstantFP, llvm::ISD::ConstantPool, llvm::ISD::CONVERT_RNDSAT, llvm::ISD::CopyFromReg, llvm::ISD::CopyToReg, llvm::ISD::CTLZ, llvm::ISD::CTLZ_ZERO_UNDEF, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::ISD::CTTZ_ZERO_UNDEF, llvm::ISD::CVT_FF, llvm::ISD::CVT_FS, llvm::ISD::CVT_FU, llvm::ISD::CVT_SF, llvm::ISD::CVT_SS, llvm::ISD::CVT_SU, llvm::ISD::CVT_UF, llvm::ISD::CVT_US, llvm::ISD::CVT_UU, llvm::ISD::DEBUGTRAP, llvm::ISD::DELETED_NODE, llvm::ISD::DYNAMIC_STACKALLOC, llvm::ISD::EH_LABEL, llvm::ISD::EH_RETURN, llvm::ISD::EH_SJLJ_LONGJMP, llvm::ISD::EH_SJLJ_SETJMP, llvm::ISD::EntryToken, llvm::ISD::ExternalSymbol, llvm::ISD::EXTRACT_ELEMENT, llvm::ISD::EXTRACT_SUBVECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FABS, llvm::ISD::FADD, llvm::ISD::FCEIL, llvm::ISD::FCOPYSIGN, llvm::ISD::FCOS, llvm::ISD::FDIV, llvm::ISD::FEXP, llvm::ISD::FEXP2, llvm::ISD::FFLOOR, llvm::ISD::FGETSIGN, llvm::ISD::FLOG, llvm::ISD::FLOG10, llvm::ISD::FLOG2, llvm::ISD::FLT_ROUNDS_, llvm::ISD::FMA, llvm::ISD::FMUL, llvm::ISD::FNEARBYINT, llvm::ISD::FNEG, llvm::ISD::FP16_TO_FP, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_ROUND_INREG, llvm::ISD::FP_TO_FP16, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ISD::FPOW, llvm::ISD::FPOWI, llvm::ISD::FRAME_TO_ARGS_OFFSET, llvm::ISD::FRAMEADDR, llvm::ISD::FrameIndex, llvm::ISD::FREM, llvm::ISD::FRINT, llvm::ISD::FROUND, llvm::ISD::FSIN, llvm::ISD::FSINCOS, llvm::ISD::FSQRT, llvm::ISD::FSUB, llvm::ISD::FTRUNC, llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetMachine::getIntrinsicInfo(), getMachineOpcode(), llvm::Intrinsic::getName(), getOpcode(), getOperand(), llvm::SelectionDAG::getSubtarget(), llvm::SelectionDAG::getTarget(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::TargetLowering::getTargetNodeName(), llvm::ISD::GLOBAL_OFFSET_TABLE, llvm::ISD::GlobalAddress, llvm::ISD::GlobalTLSAddress, llvm::ISD::HANDLENODE, llvm::ISD::INIT_TRAMPOLINE, llvm::ISD::INLINEASM, llvm::ISD::INSERT_SUBVECTOR, llvm::ISD::INSERT_VECTOR_ELT, llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, isMachineOpcode(), llvm::ISD::JumpTable, llvm::ISD::LIFETIME_END, llvm::ISD::LIFETIME_START, llvm_unreachable, llvm::ISD::LOAD, llvm::ISD::MDNODE_SDNODE, llvm::ISD::MERGE_VALUES, llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, Name, llvm::ISD::OR, llvm::ISD::PCMARKER, llvm::ISD::PREFETCH, llvm::ISD::READ_REGISTER, llvm::ISD::READCYCLECOUNTER, llvm::ISD::Register, llvm::ISD::RegisterMask, llvm::ISD::RETURNADDR, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SADDO, llvm::ISD::SCALAR_TO_VECTOR, llvm::ISD::SDIV, llvm::ISD::SDIVREM, llvm::ISD::SELECT, llvm::ISD::SELECT_CC, llvm::ISD::SETCC, llvm::ISD::SETEQ, llvm::ISD::SETFALSE, llvm::ISD::SETFALSE2, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETTRUE, llvm::ISD::SETTRUE2, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, llvm::ISD::SETUNE, llvm::ISD::SETUO, llvm::ISD::SHL, llvm::ISD::SHL_PARTS, llvm::ISD::SIGN_EXTEND, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SIGN_EXTEND_VECTOR_INREG, llvm::ISD::SINT_TO_FP, llvm::ISD::SMUL_LOHI, llvm::ISD::SMULO, llvm::ISD::SRA, llvm::ISD::SRA_PARTS, llvm::ISD::SRCVALUE, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SRL_PARTS, llvm::ISD::SSUBO, llvm::ISD::STACKRESTORE, llvm::ISD::STACKSAVE, llvm::ISD::STORE, llvm::ISD::SUB, llvm::ISD::SUBC, llvm::ISD::SUBE, llvm::ISD::TargetBlockAddress, llvm::ISD::TargetConstant, llvm::ISD::TargetConstantFP, llvm::ISD::TargetConstantPool, llvm::ISD::TargetExternalSymbol, llvm::ISD::TargetFrameIndex, llvm::ISD::TargetGlobalAddress, llvm::ISD::TargetGlobalTLSAddress, llvm::ISD::TargetIndex, llvm::ISD::TargetJumpTable, TII, llvm::ISD::TokenFactor, llvm::ISD::TRAP, llvm::ISD::TRUNCATE, llvm::ISD::UADDO, llvm::ISD::UDIV, llvm::ISD::UDIVREM, llvm::ISD::UINT_TO_FP, llvm::ISD::UMUL_LOHI, llvm::ISD::UMULO, llvm::ISD::UNDEF, llvm::ISD::UREM, llvm::ISD::USUBO, llvm::utostr(), llvm::ISD::VAARG, llvm::ISD::VACOPY, llvm::ISD::VAEND, llvm::ISD::VALUETYPE, llvm::ISD::VASTART, llvm::ISD::VECTOR_SHUFFLE, llvm::ISD::VSELECT, llvm::ISD::WRITE_REGISTER, llvm::ISD::XOR, llvm::ISD::ZERO_EXTEND, and llvm::ISD::ZERO_EXTEND_VECTOR_INREG.

Referenced by llvm::DOTGraphTraits< SelectionDAG * >::getSimpleNodeLabel(), and print_types().

static SDVTList llvm::SDNode::getSDVTList ( EVT  VT) [inline, static, protected]

Definition at line 752 of file SelectionDAGNodes.h.

References llvm::MipsISD::Ret.

MVT llvm::SDNode::getSimpleValueType ( unsigned  ResNo) const [inline]

getValueSizeInBits - Returns MVT::getSizeInBits(getValueType(ResNo)).

Definition at line 677 of file SelectionDAGNodes.h.

References llvm::EVT::getSizeInBits(), and getValueType().

EVT llvm::SDNode::getValueType ( unsigned  ResNo) const [inline]

getValueType - Return the type of a specified result.

Definition at line 664 of file SelectionDAGNodes.h.

Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddGlue(), AddNodeIDCustom(), adjustForSubtraction(), llvm::SITargetLowering::analyzeImmediate(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), canClobberPhysRegDefs(), canFoldInAddressingMode(), CanFoldXORWithAllOnes(), ChangeVSETULTtoVSETULE(), CheckForPhysRegDependency(), CMPEQCombine(), CombineBaseUpdate(), llvm::AMDGPUTargetLowering::CombineMinMax(), combineSelectAndUse(), combineShuffleToAddSub(), CombineVLDDUP(), ConvertSelectToConcatVector(), llvm::InstrEmitter::CountResults(), createLoadLR(), doNotCSE(), Expand64BitShift(), ExpandBITCAST(), ExpandBVWithShuffles(), llvm::TargetLowering::expandFP_TO_SINT(), llvm::TargetLowering::expandMUL(), ExpandUnalignedLoad(), ExtendUsesToFormExtLoad(), llvm::SelectionDAG::FoldConstantArithmetic(), FoldOperand(), llvm::SelectionDAG::FoldSetCC(), getAArch64XALUOOp(), getARMIndexedAddressParts(), getCTPOP16BitCounts(), getGluedNode(), llvm::ShuffleVectorSDNode::getMask(), llvm::ShuffleVectorSDNode::getMaskElt(), getPhysicalRegisterVT(), llvm::ARMTargetLowering::getSchedulingPreference(), getSimpleValueType(), llvm::ShuffleVectorSDNode::getSplatIndex(), getT2IndexedAddressParts(), GetTLSADDR(), getValueSizeInBits(), llvm::SDValue::getValueType(), hasNormalLoadOperand(), isAllConstantBuildVector(), isBitfieldExtractOp(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromShr(), isBitfieldInsertOpFromOr(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), isConditionalZeroOrAllOnes(), llvm::SelectionDAG::isConsecutiveLoad(), llvm::BuildVectorSDNode::isConstantSplat(), isConstantSplatVector(), llvm::TargetLowering::isConstFalseVal(), isConstOrConstSplat(), llvm::TargetLowering::isConstTrueVal(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isExtendedBUILD_VECTOR(), isHorizontalBinOp(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), llvm::SelectionDAGISel::IsLegalToFold(), isSeveralBitsExtractOpFromShr(), isShuffleHigh128VectorInsertLow(), isShuffleLow128VectorInsertHigh(), llvm::ShuffleVectorSDNode::isSplat(), llvm::PPC::isSplatShuffleMask(), isTruncateOf(), isVMerge(), llvm::PPC::isVSLDOIShuffleMask(), isZeroShuffle(), LowerADDC_ADDE_SUBC_SUBE(), LowerCMP_SWAP(), LowerCTPOP(), lowerCTPOP16BitElements(), lowerCTPOP32BitElements(), LowerCTTZ(), lowerDSPIntr(), LowerDYNAMIC_STACKALLOC(), LowerEXTRACT_VECTOR_ELT_SSE4(), LowerINTRINSIC_W_CHAIN(), LowerLOAD_SUB(), lowerMSABinaryBitImmIntr(), lowerMSABitClear(), lowerMSABitClearImm(), lowerMSACopyIntr(), lowerMSALoadIntr(), lowerMSASplatImm(), lowerMSASplatZExt(), lowerMSAStoreIntr(), LowerShift(), LowerToTLSExecModel(), LowerToTLSLocalDynamicModel(), LowerVAARG(), LowerXALUO(), matchAddSub(), partitionShuffleOfConcats(), PerformADCCombine(), performADDCombine(), PerformAddCombine(), performADDECombine(), performANDCombine(), PerformANDCombine(), PerformAndCombine(), PerformARMBUILD_VECTORCombine(), PerformBFICombine(), performBitcastCombine(), PerformBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), PerformCMOVCombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::SystemZTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), performExtendCombine(), PerformExtendCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformFADDCombine(), PerformFMACombine(), PerformFMinFMaxCombine(), PerformFSUBCombine(), PerformInsertEltCombine(), performIntegerAbsCombine(), performIntrinsicCombine(), PerformIntrinsicCombine(), performIntToFpCombine(), PerformISDSETCCCombine(), PerformLOADCombine(), performMULCombine(), performMulCombine(), PerformMULCombine(), PerformMulCombine(), performNEONPostLDSTCombine(), performORCombine(), PerformORCombine(), PerformOrCombine(), performPostLD1Combine(), PerformSELECT_CCCombine(), performSelectCombine(), PerformSELECTCombine(), performSetccAddFolding(), performSETCCCombine(), PerformSExtCombine(), PerformShiftCombine(), performShiftToAllZeros(), performSHLCombine(), PerformShuffleCombine(), PerformShuffleCombine256(), PerformSIGN_EXTEND_INREGCombine(), PerformSINT_TO_FPCombine(), performSRACombine(), performSRLCombine(), PerformSubCombine(), performSUBECombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVDUPLANECombine(), PerformVECTOR_SHUFFLECombine(), performVectorCompareAndMaskUnaryOpCombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVMULCombine(), performVSELECTCombine(), performVSelectCombine(), PerformVZEXT_MOVLCombine(), performVZEXTCombine(), performXORCombine(), PerformXORCombine(), PerformZExtCombine(), print_types(), RemoveUnusedGlue(), llvm::SelectionDAG::ReplaceAllUsesWith(), ReplaceBITCASTResults(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), resolveBuildVector(), llvm::DAGTypeLegalizer::run(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::TargetLowering::SimplifySetCC(), SkipExtensionForVMULL(), SplitVSETCC(), tryCombineFixedPointConvert(), tryCombineLongOpWithDup(), tryCombineShiftImm(), tryCombineToBSL(), tryCombineToEXTR(), tryLowerToSLI(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), llvm::SelectionDAG::UnrollVectorOp(), VerifySDNode(), WidenMaskArithmetic(), and XFormVExtractWithShuffleIntoLoad().

SDVTList llvm::SDNode::getVTList ( ) const [inline]
bool SDNode::hasNUsesOfValue ( unsigned  NUses,
unsigned  Value 
) const

hasNUsesOfValue - Return true if there are exactly NUSES uses of the indicated value. This method ignores uses of other values defined by this operation.

Definition at line 6287 of file SelectionDAG.cpp.

References getNumValues(), use_begin(), and use_end().

Referenced by getAArch64Cmp(), llvm::SDValue::hasOneUse(), isLoadIncOrDecStore(), performBRCONDCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformShuffleCombine256(), PerformSTORECombine(), and XFormVExtractWithShuffleIntoLoad().

bool llvm::SDNode::hasOneUse ( ) const [inline]

hasPredecessor - Return true if N is a predecessor of this node. N is either an operand of this node, or can be reached by recursively traversing up the operands. NOTE: This is an expensive method. Use it carefully.

Definition at line 6382 of file SelectionDAG.cpp.

References hasPredecessorHelper().

Referenced by isPredecessorOf().

bool SDNode::hasPredecessorHelper ( const SDNode N,
SmallPtrSetImpl< const SDNode * > &  Visited,
SmallVectorImpl< const SDNode * > &  Worklist 
) const

hasPredecesorHelper - Return true if N is a predecessor of this node. N is either an operand of this node, or can be reached by recursively traversing up the operands. In this helper the Visited and worklist sets are held externally to cache predecessors over multiple invocations. If you want to test for multiple predecessors this method is preferable to multiple calls to hasPredecessor. Be sure to clear Visited and Worklist if the DAG changes. NOTE: This is still very expensive. Use carefully.

Definition at line 6389 of file SelectionDAG.cpp.

References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImplBase::empty(), llvm::SDValue::getNode(), getNumOperands(), getOperand(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().

Referenced by hasPredecessor().

void llvm::SDNode::InitOperands ( SDUse Ops,
const SDValue Op0 
) [inline, protected]
void llvm::SDNode::InitOperands ( SDUse Ops,
const SDValue Op0,
const SDValue Op1 
) [inline, protected]

InitOperands - Initialize the operands list of this with 2 operands.

Definition at line 790 of file SelectionDAGNodes.h.

References llvm::checkForCycles().

void llvm::SDNode::InitOperands ( SDUse Ops,
const SDValue Op0,
const SDValue Op1,
const SDValue Op2 
) [inline, protected]

InitOperands - Initialize the operands list of this with 3 operands.

Definition at line 801 of file SelectionDAGNodes.h.

References llvm::checkForCycles().

void llvm::SDNode::InitOperands ( SDUse Ops,
const SDValue Op0,
const SDValue Op1,
const SDValue Op2,
const SDValue Op3 
) [inline, protected]

InitOperands - Initialize the operands list of this with 4 operands.

Definition at line 815 of file SelectionDAGNodes.h.

References llvm::checkForCycles().

void llvm::SDNode::InitOperands ( SDUse Ops,
const SDValue Vals,
unsigned  N 
) [inline, protected]

InitOperands - Initialize the operands list of this with N operands.

Definition at line 831 of file SelectionDAGNodes.h.

References llvm::checkForCycles().

bool llvm::SDNode::isMachineOpcode ( ) const [inline]
bool llvm::SDNode::isMemIntrinsic ( ) const [inline]

Test if this node is a memory intrinsic (with valid pointer information). INTRINSIC_W_CHAIN and INTRINSIC_VOID nodes are sometimes created for non-memory intrinsics (with chains) that are not really instances of MemSDNode. For such nodes, we need some extra state to determine the proper classof relationship.

Definition at line 425 of file SelectionDAGNodes.h.

References llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, and SubclassData.

Referenced by llvm::MemSDNode::classof(), and llvm::MemIntrinsicSDNode::classof().

isOnlyUserOf - Return true if this node is the only use of N.

Definition at line 6319 of file SelectionDAG.cpp.

References I, use_begin(), and use_end().

Referenced by combineRedundantDWordShuffle(), and combineX86ShufflesRecursively().

isOperandOf - Return true if this node is an operand of N.

Definition at line 6341 of file SelectionDAG.cpp.

References llvm::SDUse::getNode().

isPredecessorOf - Return true if this node is a predecessor of N. NOTE: Implemented on top of hasPredecessor and every bit as expensive. Use carefully.

Definition at line 577 of file SelectionDAGNodes.h.

References hasPredecessor().

Referenced by CombineBaseUpdate(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), performNEONPostLDSTCombine(), and performPostLD1Combine().

isTargetMemoryOpcode - Test if this node has a target-specific memory-referencing opcode (in the <target>ISD namespace and greater than FIRST_TARGET_MEMORY_OPCODE).

Definition at line 416 of file SelectionDAGNodes.h.

References llvm::ISD::FIRST_TARGET_MEMORY_OPCODE.

Referenced by AddNodeIDCustom(), llvm::MemSDNode::classof(), llvm::MemIntrinsicSDNode::classof(), and llvm::SDValue::isTargetMemoryOpcode().

bool llvm::SDNode::isTargetOpcode ( ) const [inline]

isTargetOpcode - Test if this node has a target-specific opcode (in the <target>ISD namespace).

Definition at line 411 of file SelectionDAGNodes.h.

References llvm::ISD::BUILTIN_OP_END.

Referenced by llvm::SDValue::isTargetOpcode().

op_iterator llvm::SDNode::op_begin ( ) const [inline]
op_iterator llvm::SDNode::op_end ( ) const [inline]
ArrayRef<SDUse> llvm::SDNode::ops ( ) const [inline]

Definition at line 616 of file SelectionDAGNodes.h.

References llvm::makeArrayRef(), op_begin(), and op_end().

Referenced by AddNodeIDNode(), and findConsecutiveLoad().

void SDNode::print ( raw_ostream OS,
const SelectionDAG G = nullptr 
) const
void SDNode::print_details ( raw_ostream OS,
const SelectionDAG G 
) const
void SDNode::print_types ( raw_ostream OS,
const SelectionDAG G 
) const
void SDNode::printr ( raw_ostream OS,
const SelectionDAG G = nullptr 
) const

Definition at line 562 of file SelectionDAGDumper.cpp.

References print_details(), and print_types().

Referenced by DumpNodesr().

void SDNode::printrFull ( raw_ostream O,
const SelectionDAG G = nullptr 
) const

printrFull - Print a SelectionDAG node and all children down to the leaves. The given SelectionDAG allows target-specific nodes to be printed in human-readable form. Unlike printr, this will print the whole DAG, including children that appear multiple times.

Definition at line 641 of file SelectionDAGDumper.cpp.

References printrWithDepth().

void SDNode::printrWithDepth ( raw_ostream O,
const SelectionDAG G = nullptr,
unsigned  depth = 100 
) const

printrWithDepth - Print a SelectionDAG node and children up to depth "depth." The given SelectionDAG allows target-specific nodes to be printed in human-readable form. Unlike printr, this will print children that appear multiple times wherever they are used.

Definition at line 636 of file SelectionDAGDumper.cpp.

References printrWithDepthHelper().

Referenced by dumprWithDepth(), llvm::MipsSETargetLowering::PerformDAGCombine(), and printrFull().

void SDNode::Profile ( FoldingSetNodeID ID) const

Profile - Gather unique data for the node.

Definition at line 6251 of file SelectionDAG.cpp.

References AddNodeIDNode().

void llvm::SDNode::setDebugLoc ( const DebugLoc  dl) [inline]

setDebugLoc - Set source location info. Try to avoid this, putting it in the constructor is preferable.

Definition at line 483 of file SelectionDAGNodes.h.

void llvm::SDNode::setHasDebugValue ( bool  b) [inline]

setHasDebugValue - set this bit.

Definition at line 446 of file SelectionDAGNodes.h.

Referenced by llvm::SelectionDAG::AddDbgValue().

void llvm::SDNode::setIROrder ( unsigned  Order) [inline]

setIROrder - Set the node ordering.

Definition at line 476 of file SelectionDAGNodes.h.

Referenced by llvm::NVPTXTargetLowering::LowerFormalArguments().

void llvm::SDNode::setNodeId ( int  Id) [inline]
bool llvm::SDNode::use_empty ( ) const [inline]
static use_iterator llvm::SDNode::use_end ( ) [inline, static]
size_t llvm::SDNode::use_size ( ) const [inline]

use_size - Return the number of uses of this node. This method takes time proportional to the number of uses.

Definition at line 461 of file SelectionDAGNodes.h.

References use_begin(), and use_end().

Definition at line 550 of file SelectionDAGNodes.h.

References use_begin(), and use_end().

Referenced by getUsefulBits().

Definition at line 553 of file SelectionDAGNodes.h.

References use_begin(), and use_end().

Definition at line 682 of file SelectionDAGNodes.h.

Referenced by lowerDSPIntr().

Definition at line 683 of file SelectionDAGNodes.h.

Referenced by lowerDSPIntr().


Friends And Related Function Documentation

friend struct ilist_traits< SDNode > [friend]

Definition at line 396 of file SelectionDAGNodes.h.

friend class SelectionDAG [friend]

Member Data Documentation

uint16_t llvm::SDNode::SubclassData [protected]

The documentation for this class was generated from the following files: