LLVM  3.7.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
llvm::SDNode Class Reference

Represents one node in the SelectionDAG. More...

#include <SelectionDAGNodes.h>

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

Classes

class  use_iterator
 This class provides iterator support for SDUse operands that use a specific SDNode. More...
 
struct  value_op_iterator
 Iterator for directly iterating over the operand SDValue's. More...
 

Public Types

typedef SDUseop_iterator
 
typedef const EVTvalue_iterator
 

Public Member Functions

unsigned getOpcode () const
 Return the SelectionDAG opcode value for this node. More...
 
bool isTargetOpcode () const
 Test if this node has a target-specific opcode (in the <target>ISD namespace). More...
 
bool isTargetMemoryOpcode () const
 Test if this node has a target-specific memory-referencing opcode (in the <target>ISD namespace and greater than FIRST_TARGET_MEMORY_OPCODE). More...
 
bool isMemIntrinsic () const
 Test if this node is a memory intrinsic (with valid pointer information). More...
 
bool isMachineOpcode () const
 Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode. More...
 
unsigned getMachineOpcode () const
 This may only be called if isMachineOpcode returns true. More...
 
bool getHasDebugValue () const
 Get this bit. More...
 
void setHasDebugValue (bool b)
 Set this bit. More...
 
bool use_empty () const
 Return true if there are no uses of this node. More...
 
bool hasOneUse () const
 Return true if there is exactly one use of this node. More...
 
size_t use_size () const
 Return the number of uses of this node. More...
 
int getNodeId () const
 Return the unique node id. More...
 
void setNodeId (int Id)
 Set unique node id. More...
 
unsigned getIROrder () const
 Return the node ordering. More...
 
void setIROrder (unsigned Order)
 Set the node ordering. More...
 
const DebugLocgetDebugLoc () const
 Return the source location info. More...
 
void setDebugLoc (DebugLoc dl)
 Set source location info. More...
 
use_iterator use_begin () const
 Provide iteration support to walk over all uses of an SDNode. More...
 
iterator_range< use_iteratoruses ()
 
iterator_range< use_iteratoruses () const
 
bool hasNUsesOfValue (unsigned NUses, unsigned Value) const
 Return true if there are exactly NUSES uses of the indicated value. More...
 
bool hasAnyUseOfValue (unsigned Value) const
 Return true if there are any use of the indicated value. More...
 
bool isOnlyUserOf (const SDNode *N) const
 Return true if this node is the only use of N. More...
 
bool isOperandOf (const SDNode *N) const
 Return true if this node is an operand of N. More...
 
bool isPredecessorOf (const SDNode *N) const
 Return true if this node is a predecessor of N. More...
 
bool hasPredecessor (const SDNode *N) const
 Return true if N is a predecessor of this node. More...
 
bool hasPredecessorHelper (const SDNode *N, SmallPtrSetImpl< const SDNode * > &Visited, SmallVectorImpl< const SDNode * > &Worklist) const
 Return true if N is a predecessor of this node. More...
 
unsigned getNumOperands () const
 Return the number of values used by this operation. More...
 
uint64_t getConstantOperandVal (unsigned Num) const
 Helper method returns the integer value of a ConstantSDNode operand. More...
 
const SDValuegetOperand (unsigned Num) const
 
op_iterator op_begin () const
 
op_iterator op_end () const
 
ArrayRef< SDUseops () const
 
iterator_range< value_op_iteratorop_values () const
 
SDVTList getVTList () const
 
SDNodegetGluedNode () const
 If this node has a glue operand, return the node to which the glue operand points. More...
 
const SDNodegetGluedMachineNode () const
 
SDNodegetGluedUser () const
 If this node has a glue value with a user, return the user (there is at most one). More...
 
unsigned getNumValues () const
 Return the number of values defined/returned by this operator. More...
 
EVT getValueType (unsigned ResNo) const
 Return the type of a specified result. More...
 
MVT getSimpleValueType (unsigned ResNo) const
 Return the type of a specified result as a simple type. More...
 
unsigned getValueSizeInBits (unsigned ResNo) const
 Returns MVT::getSizeInBits(getValueType(ResNo)). More...
 
value_iterator value_begin () const
 
value_iterator value_end () const
 
std::string getOperationName (const SelectionDAG *G=nullptr) const
 Return the opcode of this operation for printing. More...
 
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
 Print a SelectionDAG node and all children down to the leaves. More...
 
void printrWithDepth (raw_ostream &O, const SelectionDAG *G=nullptr, unsigned depth=100) const
 Print a SelectionDAG node and children up to depth "depth." The given SelectionDAG allows target-specific nodes to be printed in human-readable form. More...
 
void dump () const
 Dump this node, for debugging. More...
 
void dumpr () const
 Dump (recursively) this node and its use-def subgraph. More...
 
void dump (const SelectionDAG *G) const
 Dump this node, for debugging. More...
 
void dumpr (const SelectionDAG *G) const
 Dump (recursively) this node and its use-def subgraph. More...
 
void dumprFull (const SelectionDAG *G=nullptr) const
 printrFull to dbgs(). More...
 
void dumprWithDepth (const SelectionDAG *G=nullptr, unsigned depth=100) const
 printrWithDepth to dbgs(). More...
 
void Profile (FoldingSetNodeID &ID) const
 Gather unique data for the node. More...
 
void addUse (SDUse &U)
 This method should only be used by the SDUse class. More...
 
- Public Member Functions inherited from llvm::FoldingSetImpl::Node
 Node ()
 
void * getNextInBucket () const
 
void SetNextInBucket (void *N)
 
- Public Member Functions inherited from llvm::ilist_node< SDNode >
SDNodegetPrevNode ()
 Get the previous node, or 0 for the list head. More...
 
const SDNodegetPrevNode () const
 Get the previous node, or 0 for the list head. More...
 
SDNodegetNextNode ()
 Get the next node, or 0 for the list tail. More...
 
const SDNodegetNextNode () const
 Get the next node, or 0 for the list tail. More...
 

Static Public Member Functions

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

Protected Member Functions

 SDNode (unsigned Opc, unsigned Order, DebugLoc dl, SDVTList VTs, ArrayRef< SDValue > Ops)
 
 SDNode (unsigned Opc, unsigned Order, DebugLoc dl, SDVTList VTs)
 This constructor adds no operands itself; operands can be set later with InitOperands. More...
 
void InitOperands (SDUse *Ops, const SDValue &Op0)
 Initialize the operands list of this with 1 operand. More...
 
void InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1)
 Initialize the operands list of this with 2 operands. More...
 
void InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2)
 Initialize the operands list of this with 3 operands. More...
 
void InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2, const SDValue &Op3)
 Initialize the operands list of this with 4 operands. More...
 
void InitOperands (SDUse *Ops, const SDValue *Vals, unsigned N)
 Initialize the operands list of this with N operands. More...
 
void DropOperands ()
 Release the operands and set this node to have zero operands. More...
 
- Protected Member Functions inherited from llvm::ilist_node< SDNode >
 ilist_node ()
 

Static Protected Member Functions

static SDVTList getSDVTList (EVT VT)
 

Protected Attributes

uint16_t SubclassData: 14
 This member is defined by this class, but is not used for anything. More...
 

Friends

class SelectionDAG
 
struct ilist_traits< SDNode >
 

Detailed Description

Represents one node in the SelectionDAG.

Definition at line 324 of file SelectionDAGNodes.h.

Member Typedef Documentation

Definition at line 577 of file SelectionDAGNodes.h.

Definition at line 657 of file SelectionDAGNodes.h.

Constructor & Destructor Documentation

llvm::SDNode::SDNode ( unsigned  Opc,
unsigned  Order,
DebugLoc  dl,
SDVTList  VTs,
ArrayRef< SDValue Ops 
)
inlineprotected
llvm::SDNode::SDNode ( unsigned  Opc,
unsigned  Order,
DebugLoc  dl,
SDVTList  VTs 
)
inlineprotected

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

Definition at line 751 of file SelectionDAGNodes.h.

References llvm::DebugLoc::hasTrivialDestructor(), and llvm::SDVTList::NumVTs.

Member Function Documentation

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

This method should only be used by the SDUse class.

Definition at line 721 of file SelectionDAGNodes.h.

void SDNode::DropOperands ( )
protected

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

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

Definition at line 5684 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 this node, for debugging.

The given SelectionDAG allows target-specific nodes to be printed in human-readable form.

Definition at line 356 of file SelectionDAGDumper.cpp.

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

void SDNode::dumpr ( ) const

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

Definition at line 615 of file SelectionDAGDumper.cpp.

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

Referenced by llvm::SDValue::dumpr(), and llvm::HexagonTargetLowering::LowerOperation().

void SDNode::dumpr ( const SelectionDAG G) const

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 620 of file SelectionDAGDumper.cpp.

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

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

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 661 of file SelectionDAGDumper.cpp.

References dumprWithDepth().

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

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

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 657 of file SelectionDAGDumper.cpp.

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

Referenced by dumprFull().

uint64_t SDNode::getConstantOperandVal ( unsigned  Num) const
const DebugLoc& llvm::SDNode::getDebugLoc ( ) const
inline

Return the source location info.

Definition at line 451 of file SelectionDAGNodes.h.

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

const SDNode* llvm::SDNode::getGluedMachineNode ( ) const
inline

Definition at line 615 of file SelectionDAGNodes.h.

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

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

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

Otherwise return NULL.

Definition at line 631 of file SelectionDAGNodes.h.

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

Referenced by AddCombineTo64bitMLAL(), and findGluedUser().

bool llvm::SDNode::getHasDebugValue ( ) const
inline
const char * SDNode::getIndexedModeName ( ISD::MemIndexedMode  AM)
static
unsigned llvm::SDNode::getIROrder ( ) const
inline

Return the node ordering.

Definition at line 445 of file SelectionDAGNodes.h.

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

unsigned llvm::SDNode::getMachineOpcode ( ) const
inline
int llvm::SDNode::getNodeId ( ) const
inline
unsigned llvm::SDNode::getNumOperands ( ) const
inline

Return the number of values used by this operation.

Definition at line 567 of file SelectionDAGNodes.h.

Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddGlue(), llvm::ISD::allOperandsUndef(), llvm::SelectionDAG::AssignTopologicalOrder(), BUILD_VECTORtoBlendMask(), CombineBaseUpdate(), ConvertSelectToConcatVector(), countOperands(), DumpNodesr(), llvm::SDNodeIterator::end(), ExpandBVWithShuffles(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::PPC::get_VSPLTI_elt(), getGluedNode(), getInputChainForNode(), llvm::SDValue::getNumOperands(), getNumOperandsNoGlue(), getReadPerformanceCounter(), getReadTimeStampCounter(), llvm::BuildVectorSDNode::getSplatValue(), getTargetShuffleMask(), getTargetVShiftByConstNode(), llvm::ISD::isBuildVectorAllOnes(), isCommonSplatElement(), isConstantOrUndefBUILD_VECTOR(), llvm::BuildVectorSDNode::isConstantSplat(), isExtendedBUILD_VECTOR(), llvm::ISD::isScalarToVector(), isSplatVector(), llvm::SITargetLowering::legalizeTargetIndependentNode(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), lowerDSPIntr(), llvm::SparcTargetLowering::LowerF128Op(), llvm::HexagonTargetLowering::LowerINLINEASM(), llvm::SelectionDAGBuilder::LowerStatepoint(), performANDCombine(), PerformANDCombine(), PerformBUILD_VECTORCombine(), performConcatVectorsCombine(), performNEONPostLDSTCombine(), PerformSELECTCombine(), performSRACombine(), PerformSTORECombine(), print(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), replaceInChain(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::SelectionDAGISel::SelectCodeCommon(), simplifyShuffleOperandRecursively(), tryBuildVectorByteMask(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SelectionDAG::UpdateNodeOperands(), and VerifySDNode().

unsigned llvm::SDNode::getNumValues ( ) const
inline
unsigned llvm::SDNode::getOpcode ( ) const
inline

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 385 of file SelectionDAGNodes.h.

Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddNodeIDCustom(), AddNodeIDNode(), adjustForFNeg(), adjustForLTGFR(), adjustForSubtraction(), canEnableCoalescing(), canFoldInAddressingMode(), CanFoldXORWithAllOnes(), CheckAndImm(), checkBoolTestAndOrSetCCCombine(), 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::MCSymbolSDNode::classof(), llvm::CondCodeSDNode::classof(), llvm::CvtRndSatSDNode::classof(), llvm::VTSDNode::classof(), llvm::LSBaseSDNode::classof(), llvm::LoadSDNode::classof(), llvm::StoreSDNode::classof(), llvm::MaskedLoadStoreSDNode::classof(), llvm::MaskedLoadSDNode::classof(), llvm::MaskedStoreSDNode::classof(), llvm::MaskedGatherScatterSDNode::classof(), llvm::MaskedGatherSDNode::classof(), llvm::MaskedScatterSDNode::classof(), CloneNodeWithValues(), CombineBaseUpdate(), combineSelectAndUse(), combineShuffleToAddSub(), CombineVLDDUP(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), ConvertSelectToConcatVector(), doNotCSE(), EltsFromConsecutiveLoads(), Expand64BitShift(), ExpandHorizontalBinOp(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), ExtendUsesToFormExtLoad(), FindCallSeqStart(), findConsecutiveLoad(), findMUL_LOHI(), FoldIntToFPToInt(), GenerateTBL(), getARMIndexedAddressParts(), llvm::MemSDNode::getBasePtr(), GetCostForDef(), getIndexedAddressParts(), getIntrinsicID(), llvm::SelectionDAG::getNode(), llvm::LSBaseSDNode::getOffset(), llvm::SDValue::getOpcode(), getOperationName(), getPhysicalRegisterVT(), 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::isBuildVectorOfConstantFPSDNodes(), llvm::ISD::isBuildVectorOfConstantSDNodes(), IsChainDependent(), llvm::AtomicSDNode::isCompareAndSwap(), isConditionalZeroOrAllOnes(), isConsecutiveLS(), isConstantOrUndef(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isExtendedBUILD_VECTOR(), isFloatingPointZero(), llvm::X86TargetLowering::isGAPlusOffset(), llvm::TargetLowering::isGAPlusOffset(), isHorizontalBinOp(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), isOpcWithIntImmediate(), llvm::ScheduleDAGSDNodes::isPassiveNode(), llvm::isPositiveHalfWord(), llvm::ISD::isScalarToVector(), isSeveralBitsExtractOpFromShr(), isSignExtended(), isTruncateOf(), isVectorAllOnes(), llvm::ARMTargetLowering::isVectorLoadExtDesirable(), isX86LogicalCmp(), isZeroExtended(), llvm::SparcTargetLowering::LowerCall_64(), lowerCallFromStatepoint(), LowerCTTZ(), LowerEXTRACT_VECTOR_ELT_SSE4(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerMUL_LOHI(), LowerShift(), LowerToHorizontalOp(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLEv8i8(), llvm::LSBaseSDNode::LSBaseSDNode(), OptimizeConditionalInDecrement(), PerformADDCombineWithOperands(), performAddSubLongCombine(), performANDCombine(), PerformANDCombine(), PerformARMBUILD_VECTORCombine(), performBitcastCombine(), PerformBITCASTCombine(), performCMovFPCombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::MipsSETargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::MipsTargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::SystemZTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::X86TargetLowering::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(), llvm::X86TargetLowering::ReplaceNodeResults(), resetVRegCycle(), selectCCOpsAreFMaxCompatible(), llvm::SelectionDAGISel::SelectCodeCommon(), selectMADD(), selectMSUB(), shouldUseLA(), llvm::TargetLowering::SimplifyDemandedBits(), skipExtensionForVectorMULL(), SkipExtensionForVMULL(), SplitVSETCC(), transformVSELECTtoBlendVECTOR_SHUFFLE(), tryCombineToEXTR(), tryExtendDUPToExtractHigh(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), llvm::SelectionDAG::UnrollVectorOp(), useDivRem(), useSinCos(), VerifySDNode(), WalkChainUsers(), and WidenMaskArithmetic().

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

Definition at line 572 of file SelectionDAGNodes.h.

Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddGlue(), adjustForLTGFR(), adjustForSubtraction(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::ARMBaseInstrInfo::areLoadsFromSameBasePtr(), llvm::X86InstrInfo::areLoadsFromSameBasePtr(), BUILD_VECTORtoBlendMask(), llvm::TargetLowering::BuildSDIV(), llvm::PPCTargetLowering::BuildSDIVPow2(), llvm::TargetLowering::BuildUDIV(), canFoldInAddressingMode(), CanFoldXORWithAllOnes(), ChangeVSETULTtoVSETULE(), CheckAndImm(), checkBoolTestAndOrSetCCCombine(), CheckForMaskedLoad(), CheckForPhysRegDependency(), checkHighLaneIndex(), CheckOrImm(), checkValueWidth(), CMPEQCombine(), combineAcrossLanesIntrinsic(), CombineBaseUpdate(), combineConcatVectorOfScalars(), combineSelectAndUseCommutative(), combineShuffleToAddSub(), CombineVLDDUP(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), computeZeroableShuffleElements(), ConvertSelectToConcatVector(), countOperands(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), Expand64BitShift(), ExpandBITCAST(), ExpandBVWithShuffles(), llvm::TargetLowering::expandFP_TO_SINT(), llvm::TargetLowering::expandMUL(), ExpandREAD_REGISTER(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), ExtendUsesToFormExtLoad(), findChainOperand(), findEXTRHalf(), llvm::SelectionDAG::FoldConstantArithmetic(), FoldIntToFPToInt(), FoldOperand(), llvm::PPC::get_VSPLTI_elt(), getARMIndexedAddressParts(), llvm::MemSDNode::getBasePtr(), llvm::AtomicSDNode::getBasePtr(), llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), llvm::MaskedLoadStoreSDNode::getBasePtr(), llvm::MaskedGatherScatterSDNode::getBasePtr(), getBuildPairElt(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getCommutedVectorShuffle(), GetCostForDef(), getCTPOP16BitCounts(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeAttributes(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeTarget(), getExtractVEXTRACTImmediate(), getGluedNode(), llvm::MaskedGatherScatterSDNode::getIndex(), getIndexedAddressParts(), getInputChainForNode(), getInsertVINSERTImmediate(), getIntrinsicID(), llvm::MaskedLoadStoreSDNode::getMask(), llvm::MaskedGatherScatterSDNode::getMask(), llvm::SelectionDAG::getNode(), getNumOperandsNoGlue(), llvm::LSBaseSDNode::getOffset(), llvm::LoadSDNode::getOffset(), llvm::StoreSDNode::getOffset(), llvm::SDValue::getOperand(), llvm::ARMBaseInstrInfo::getOperandLatency(), getOperationName(), getReadPerformanceCounter(), getReadTimeStampCounter(), getShuffleScalarElt(), llvm::BuildVectorSDNode::getSplatValue(), llvm::MaskedLoadSDNode::getSrc0(), getT2IndexedAddressParts(), getTargetShuffleMask(), getTargetVShiftByConstNode(), getUnderlyingExtractedFromVec(), getUsefulBitsForUse(), llvm::AtomicSDNode::getVal(), llvm::StoreSDNode::getValue(), llvm::MaskedStoreSDNode::getValue(), llvm::MaskedGatherScatterSDNode::getValue(), llvm::SelectionDAG::getVectorShuffle(), hasNormalLoadOperand(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), isAddSubSExt(), isAddSubZExt(), isAllConstantBuildVector(), isBitfieldExtractOp(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromShr(), isBitfieldInsertOpFromOr(), isBitwiseInverse(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), isCommonSplatElement(), isConditionalZeroOrAllOnes(), llvm::SelectionDAG::isConsecutiveLoad(), isConsecutiveLS(), isConstantOrUndefBUILD_VECTOR(), llvm::BuildVectorSDNode::isConstantSplat(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isExtendedBUILD_VECTOR(), isFloatingPointZero(), llvm::X86TargetLowering::isGAPlusOffset(), llvm::TargetLowering::isGAPlusOffset(), isHorizontalBinOp(), isLoadIncOrDecStore(), isOpcWithIntImmediate(), llvm::ISD::isScalarToVector(), isSetCCOrZExtSetCC(), isSeveralBitsExtractOpFromShr(), isSplatVector(), isTruncateOf(), isVectorAllOnes(), isVEXTRACTIndex(), isVINSERTIndex(), llvm::SITargetLowering::legalizeTargetIndependentNode(), LowerATOMIC_STORE(), LowerAVXExtend(), LowerBITCAST(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), LowerBuildVectorv4x32(), lowerCallFromStatepoint(), lowerCTPOP32BitElements(), LowerCTTZ(), lowerDSPIntr(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerLOAD_SUB(), LowerMGATHER(), lowerMSABinaryBitImmIntr(), lowerMSABitClear(), lowerMSABitClearImm(), lowerMSACopyIntr(), lowerMSALoadIntr(), lowerMSASplatZExt(), lowerMSAStoreIntr(), LowerMSCATTER(), LowerShift(), llvm::MSP430TargetLowering::LowerShifts(), LowerSIGN_EXTEND(), LowerSIGN_EXTEND_AVX512(), LowerSIGN_EXTEND_VECTOR_INREG(), llvm::SelectionDAGBuilder::LowerStatepoint(), LowerToAddSub(), LowerToHorizontalOp(), lowerUINT_TO_FP_vXi32(), LowerVAARG(), LowerVECTOR_SHIFT(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE_ILVEV(), lowerVECTOR_SHUFFLE_ILVL(), lowerVECTOR_SHUFFLE_ILVOD(), lowerVECTOR_SHUFFLE_ILVR(), lowerVECTOR_SHUFFLE_PCKEV(), lowerVECTOR_SHUFFLE_PCKOD(), lowerVECTOR_SHUFFLE_SHF(), lowerVECTOR_SHUFFLE_VSHF(), LowerVectorAllZeroTest(), lowerVSELECTtoVectorShuffle(), LowerWRITE_REGISTER(), LowerXALUO(), LowerZERO_EXTEND_AVX512(), NarrowVectorLoadToElement(), nodesHaveSameOperandValue(), llvm::SDNodeIterator::operator*(), OptimizeConditionalInDecrement(), partitionShuffleOfConcats(), PerformADCCombine(), performADDCombine(), PerformADDCombine(), PerformAddCombine(), performAddSubLongCombine(), performANDCombine(), PerformANDCombine(), PerformAndCombine(), PerformARMBUILD_VECTORCombine(), PerformBFICombine(), performBitcastCombine(), PerformBITCASTCombine(), PerformBLENDICombine(), performBRCONDCombine(), PerformBrCondCombine(), PerformBTCombine(), PerformBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), PerformCMOVCombine(), performCMovFPCombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::SystemZTargetLowering::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(), performNVCASTCombine(), performORCombine(), PerformORCombine(), PerformOrCombine(), performPostLD1Combine(), PerformSELECT_CCCombine(), performSelectCCCombine(), performSELECTCombine(), performSelectCombine(), PerformSELECTCombine(), performSetccAddFolding(), performSETCCCombine(), PerformSETCCCombine(), PerformSExtCombine(), PerformShiftCombine(), performShiftToAllZeros(), PerformSHLCombine(), PerformShuffleCombine(), PerformShuffleCombine256(), PerformSIGN_EXTEND_INREGCombine(), PerformSINT_TO_FPCombine(), performSRACombine(), PerformSTORECombine(), PerformSUBCombine(), PerformSubCombine(), PerformUINT_TO_FPCombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVDUPLANECombine(), PerformVECTOR_SHUFFLECombine(), performVectorCompareAndMaskUnaryOpCombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVMULCombine(), performVSELECTCombine(), performVSelectCombine(), PerformVZEXT_MOVLCombine(), performVZEXTCombine(), performXORCombine(), PerformZExtCombine(), print(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), ReplaceBITCASTResults(), replaceInChain(), ReplaceINTRINSIC_W_CHAIN(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), ReplaceREADCYCLECOUNTER(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), selectCCOpsAreFMaxCompatible(), llvm::SelectionDAGISel::SelectCodeCommon(), selectMADD(), selectMSUB(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), simplifyShuffleOperandRecursively(), skipExtensionForVectorMULL(), SkipExtensionForVMULL(), splitAndLowerVectorShuffle(), llvm::SelectionDAG::SplitVectorOperand(), SplitVSETCC(), transformVSELECTtoBlendVECTOR_SHUFFLE(), tryBuildVectorByteMask(), tryBuildVectorShuffle(), tryCombineCRC32(), tryCombineFixedPointConvert(), tryCombineLongOpWithDup(), tryCombineShiftImm(), tryCombineToBSL(), tryCombineToEXTR(), tryLowerToSLI(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SelectionDAG::UpdateNodeOperands(), useDivRem(), useSinCos(), ValueHasExactlyOneBitSet(), VectorZextCombine(), VerifySDNode(), WidenMaskArithmetic(), and XFormVExtractWithShuffleIntoLoad().

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

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::FMAD, llvm::ISD::FMAXNUM, llvm::ISD::FMINNUM, 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::ISD::GC_TRANSITION_END, llvm::ISD::GC_TRANSITION_START, 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::LOCAL_RECOVER, llvm::ISD::MCSymbol, llvm::ISD::MDNODE_SDNODE, llvm::ISD::MERGE_VALUES, llvm::ISD::MGATHER, llvm::ISD::MLOAD, llvm::ISD::MSCATTER, llvm::ISD::MSTORE, llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, llvm::Intrinsic::num_intrinsics, 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::SMAX, llvm::ISD::SMIN, 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::UMAX, llvm::ISD::UMIN, 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)
inlinestaticprotected

Definition at line 724 of file SelectionDAGNodes.h.

References llvm::MipsISD::Ret.

MVT llvm::SDNode::getSimpleValueType ( unsigned  ResNo) const
inline
unsigned llvm::SDNode::getValueSizeInBits ( unsigned  ResNo) const
inline

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

Definition at line 653 of file SelectionDAGNodes.h.

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

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

Return the type of a specified result.

Definition at line 642 of file SelectionDAGNodes.h.

Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddGlue(), AddNodeIDCustom(), adjustForSubtraction(), llvm::TargetLowering::BuildSDIV(), llvm::PPCTargetLowering::BuildSDIVPow2(), llvm::TargetLowering::BuildUDIV(), CanFoldXORWithAllOnes(), ChangeVSETULTtoVSETULE(), CMPEQCombine(), combineAcrossLanesIntrinsic(), CombineBaseUpdate(), combineConcatVectorOfScalars(), combineSelectAndUse(), combineShuffleToAddSub(), CombineVLDDUP(), ConvertSelectToConcatVector(), llvm::InstrEmitter::CountResults(), createLoadLR(), doNotCSE(), EltsFromConsecutiveLoads(), emitIntrinsicWithGlue(), Expand64BitShift(), ExpandBITCAST(), ExpandBVWithShuffles(), llvm::TargetLowering::expandFP_TO_SINT(), llvm::TargetLowering::expandMUL(), ExpandREAD_REGISTER(), ExpandUnalignedLoad(), llvm::PPCTargetLowering::expandVSXLoadForLE(), ExtendUsesToFormExtLoad(), llvm::SelectionDAG::FoldConstantArithmetic(), FoldIntToFPToInt(), FoldOperand(), llvm::SelectionDAG::FoldSetCC(), getAArch64XALUOOp(), getARMIndexedAddressParts(), getCTPOP16BitCounts(), getGluedNode(), llvm::ShuffleVectorSDNode::getMask(), llvm::ShuffleVectorSDNode::getMaskElt(), llvm::ARMTargetLowering::getSchedulingPreference(), getSimpleValueType(), llvm::ShuffleVectorSDNode::getSplatIndex(), getT2IndexedAddressParts(), GetTLSADDR(), getValueSizeInBits(), llvm::SDValue::getValueType(), llvm::SelectionDAG::getVectorShuffle(), getVPermMask(), 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(), isFloatingPointZero(), isHorizontalBinOp(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), llvm::SelectionDAGISel::IsLegalToFold(), llvm::PPC::isQVALIGNIShuffleMask(), isSeveralBitsExtractOpFromShr(), isShuffleHigh128VectorInsertLow(), isShuffleLow128VectorInsertHigh(), llvm::ShuffleVectorSDNode::isSplat(), llvm::PPC::isSplatShuffleMask(), isTruncateOf(), isVMerge(), llvm::PPC::isVSLDOIShuffleMask(), LowerADDC_ADDE_SUBC_SUBE(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), 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(), LowerToAddSub(), LowerToHorizontalOp(), LowerToTLSExecModel(), LowerToTLSLocalDynamicModel(), lowerUINT_TO_FP_vXi32(), LowerVAARG(), LowerXALUO(), llvm::MaskedGatherSDNode::MaskedGatherSDNode(), llvm::MaskedScatterSDNode::MaskedScatterSDNode(), partitionShuffleOfConcats(), PerformADCCombine(), performADDCombine(), PerformAddCombine(), performADDECombine(), performANDCombine(), PerformANDCombine(), PerformAndCombine(), PerformARMBUILD_VECTORCombine(), PerformBFICombine(), performBitcastCombine(), PerformBITCASTCombine(), PerformBLENDICombine(), 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(), PerformMLOADCombine(), performMULCombine(), performMulCombine(), PerformMULCombine(), PerformMulCombine(), performNEONPostLDSTCombine(), performNVCASTCombine(), performORCombine(), PerformORCombine(), PerformOrCombine(), performPostLD1Combine(), PerformSELECT_CCCombine(), performSelectCCCombine(), performSelectCombine(), PerformSELECTCombine(), performSetccAddFolding(), performSETCCCombine(), PerformSExtCombine(), PerformShiftCombine(), performShiftToAllZeros(), performSHLCombine(), PerformShuffleCombine(), PerformShuffleCombine256(), PerformSIGN_EXTEND_INREGCombine(), PerformSINT_TO_FPCombine(), performSRACombine(), performSRLCombine(), PerformSubCombine(), performSUBECombine(), PerformUINT_TO_FPCombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVDUPLANECombine(), PerformVECTOR_SHUFFLECombine(), performVectorCompareAndMaskUnaryOpCombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVMULCombine(), performVSELECTCombine(), performVSelectCombine(), PerformVZEXT_MOVLCombine(), performXORCombine(), PerformXORCombine(), PerformZExtCombine(), print_types(), RemoveUnusedGlue(), llvm::SelectionDAG::ReplaceAllUsesWith(), ReplaceBITCASTResults(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), resolveBuildVector(), llvm::DAGTypeLegalizer::run(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::AMDGPUTargetLowering::shouldReduceLoadWidth(), llvm::X86InstrInfo::shouldScheduleLoadsNear(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), simplifyShuffleOperands(), skipExtensionForVectorMULL(), SkipExtensionForVMULL(), SplitVSETCC(), tryBuildVectorByteMask(), tryBuildVectorShuffle(), tryCombineFixedPointConvert(), tryCombineLongOpWithDup(), tryCombineShiftImm(), tryCombineToBSL(), tryCombineToEXTR(), tryLowerToSLI(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), VerifySDNode(), WidenMaskArithmetic(), and XFormVExtractWithShuffleIntoLoad().

SDVTList llvm::SDNode::getVTList ( ) const
inline
bool SDNode::hasAnyUseOfValue ( unsigned  Value) const

Return true if there are any use of the indicated value.

hasAnyUseOfValue - Return true if there are any use of the indicated value.

This method ignores uses of other values defined by this operation.

Definition at line 6660 of file SelectionDAG.cpp.

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

Referenced by llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::ARMTargetLowering::AdjustInstrPostInstrSelection(), llvm::ScheduleDAGSDNodes::RegDefIter::Advance(), canClobberPhysRegDefs(), checkBoolTestSetCCCombine(), EltsFromConsecutiveLoads(), performDivRemCombine(), RemoveUnusedGlue(), llvm::SelectionDAG::ReplaceAllUsesWith(), and llvm::SDValue::use_empty().

bool SDNode::hasNUsesOfValue ( unsigned  NUses,
unsigned  Value 
) const

Return true if there are exactly NUSES uses of the indicated value.

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 6641 of file SelectionDAG.cpp.

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

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

bool llvm::SDNode::hasOneUse ( ) const
inline
bool SDNode::hasPredecessor ( const SDNode N) const

Return true if N is a predecessor of this node.

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 6736 of file SelectionDAG.cpp.

References hasPredecessorHelper().

Referenced by isPredecessorOf().

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

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 6743 of file SelectionDAG.cpp.

References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImplBase::empty(), llvm::SDValue::getNode(), llvm::SmallPtrSetImpl< PtrType >::insert(), op_values(), 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 
)
inlineprotected
void llvm::SDNode::InitOperands ( SDUse Ops,
const SDValue Op0,
const SDValue Op1 
)
inlineprotected

Initialize the operands list of this with 2 operands.

Definition at line 771 of file SelectionDAGNodes.h.

References llvm::checkForCycles().

void llvm::SDNode::InitOperands ( SDUse Ops,
const SDValue Op0,
const SDValue Op1,
const SDValue Op2 
)
inlineprotected

Initialize the operands list of this with 3 operands.

Definition at line 782 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 
)
inlineprotected

Initialize the operands list of this with 4 operands.

Definition at line 796 of file SelectionDAGNodes.h.

References llvm::checkForCycles().

void llvm::SDNode::InitOperands ( SDUse Ops,
const SDValue Vals,
unsigned  N 
)
inlineprotected

Initialize the operands list of this with N operands.

Definition at line 812 of file SelectionDAGNodes.h.

References llvm::checkForCycles(), and N.

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 403 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().

bool SDNode::isOnlyUserOf ( const SDNode N) const

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

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

Definition at line 6673 of file SelectionDAG.cpp.

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

Referenced by combineRedundantDWordShuffle(), combineX86ShufflesRecursively(), and llvm::ARMTargetLowering::isVectorLoadExtDesirable().

bool SDNode::isOperandOf ( const SDNode N) const

Return true if this node is an operand of N.

Definition at line 6695 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and op_values().

bool llvm::SDNode::isPredecessorOf ( const SDNode N) const
inline

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 543 of file SelectionDAGNodes.h.

References hasPredecessor().

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

bool llvm::SDNode::isTargetMemoryOpcode ( ) const
inline

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 394 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

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

Definition at line 389 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
iterator_range<value_op_iterator> llvm::SDNode::op_values ( ) const
inline
ArrayRef<SDUse> llvm::SDNode::ops ( ) const
inline
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 575 of file SelectionDAGDumper.cpp.

Referenced by DumpNodesr().

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

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 652 of file SelectionDAGDumper.cpp.

References printrWithDepth().

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

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 647 of file SelectionDAGDumper.cpp.

References printrWithDepthHelper().

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

void SDNode::Profile ( FoldingSetNodeID ID) const

Gather unique data for the node.

Profile - Gather unique data for the node.

Definition at line 6605 of file SelectionDAG.cpp.

References AddNodeIDNode().

void llvm::SDNode::setDebugLoc ( DebugLoc  dl)
inline

Set source location info.

Try to avoid this, putting it in the constructor is preferable.

Definition at line 455 of file SelectionDAGNodes.h.

Referenced by llvm::SelectionDAGBuilder::getNonRegisterValue().

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

Set this bit.

Definition at line 424 of file SelectionDAGNodes.h.

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

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

Set the node ordering.

Definition at line 448 of file SelectionDAGNodes.h.

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

void llvm::SDNode::setNodeId ( int  Id)
inline
use_iterator llvm::SDNode::use_begin ( ) const
inline
bool llvm::SDNode::use_empty ( ) const
inline
static use_iterator llvm::SDNode::use_end ( )
inlinestatic
size_t llvm::SDNode::use_size ( ) const
inline

Return the number of uses of this node.

This method takes time proportional to the number of uses.

Definition at line 436 of file SelectionDAGNodes.h.

References use_begin(), and use_end().

iterator_range<use_iterator> llvm::SDNode::uses ( )
inline
iterator_range<use_iterator> llvm::SDNode::uses ( ) const
inline

Definition at line 522 of file SelectionDAGNodes.h.

References use_begin(), and use_end().

value_iterator llvm::SDNode::value_begin ( ) const
inline

Definition at line 658 of file SelectionDAGNodes.h.

Referenced by AddGlue(), lowerDSPIntr(), and RemoveUnusedGlue().

value_iterator llvm::SDNode::value_end ( ) const
inline

Definition at line 659 of file SelectionDAGNodes.h.

Referenced by AddGlue(), and lowerDSPIntr().

Friends And Related Function Documentation

friend struct ilist_traits< SDNode >
friend

Definition at line 374 of file SelectionDAGNodes.h.

friend class SelectionDAG
friend

Definition at line 373 of file SelectionDAGNodes.h.

Member Data Documentation

uint16_t llvm::SDNode::SubclassData
protected

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