LLVM
8.0.1
|
#include "llvm/CodeGen/SelectionDAGNodes.h"
Public Member Functions | |
const ConstantInt * | getConstantIntValue () const |
const APInt & | getAPIntValue () const |
uint64_t | getZExtValue () const |
int64_t | getSExtValue () const |
uint64_t | getLimitedValue (uint64_t Limit=UINT64_MAX) |
bool | isOne () const |
bool | isNullValue () const |
bool | isAllOnesValue () const |
bool | isOpaque () const |
Public Member Functions inherited from llvm::SDNode | |
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 | isUndef () const |
Return true if the type of the node type undefined. More... | |
bool | isMemIntrinsic () const |
Test if this node is a memory intrinsic (with valid pointer information). More... | |
bool | isStrictFPOpcode () |
Test if this node is a strict floating point pseudo-op. 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 |
void | setHasDebugValue (bool b) |
bool | isDivergent () const |
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 DebugLoc & | getDebugLoc () 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_iterator > | uses () |
iterator_range< use_iterator > | uses () 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... | |
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 SDValue & | getOperand (unsigned Num) const |
op_iterator | op_begin () const |
op_iterator | op_end () const |
ArrayRef< SDUse > | ops () const |
iterator_range< value_op_iterator > | op_values () const |
SDVTList | getVTList () const |
SDNode * | getGluedNode () const |
If this node has a glue operand, return the node to which the glue operand points. More... | |
SDNode * | getGluedUser () const |
If this node has a glue value with a user, return the user (there is at most one). More... | |
const SDNodeFlags | getFlags () const |
void | setFlags (SDNodeFlags NewFlags) |
bool | isFast () |
void | intersectFlagsWith (const SDNodeFlags Flags) |
Clear any flags in this node that aren't also set in Flags. 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::FoldingSetBase::Node | |
Node ()=default | |
void * | getNextInBucket () const |
void | SetNextInBucket (void *N) |
Public Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< SDNode, Options... >::type > | |
self_iterator | getIterator () |
const_self_iterator | getIterator () const |
reverse_self_iterator | getReverseIterator () |
const_reverse_self_iterator | getReverseIterator () const |
bool | isSentinel () const |
Check whether this is the sentinel node. More... | |
Static Public Member Functions | |
static bool | classof (const SDNode *N) |
Static Public Member Functions inherited from llvm::SDNode | |
static use_iterator | use_end () |
static bool | hasPredecessorHelper (const SDNode *N, SmallPtrSetImpl< const SDNode *> &Visited, SmallVectorImpl< const SDNode *> &Worklist, unsigned int MaxSteps=0, bool TopologicalPrune=false) |
Returns true if N is a predecessor of any node in Worklist. More... | |
static bool | areOnlyUsersOf (ArrayRef< const SDNode *> Nodes, const SDNode *N) |
Return true if all the users of N are contained in Nodes. More... | |
static const char * | getIndexedModeName (ISD::MemIndexedMode AM) |
Friends | |
class | SelectionDAG |
Definition at line 1502 of file SelectionDAGNodes.h.
Definition at line 1529 of file SelectionDAGNodes.h.
References llvm::ISD::Constant, llvm::SDNode::getOpcode(), and llvm::ISD::TargetConstant.
Definition at line 1516 of file SelectionDAGNodes.h.
References llvm::ConstantInt::getValue().
Referenced by bitOpWithConstantIsReducible(), calculateByteProvider(), llvm::SelectionDAGISel::CheckAndMask(), llvm::SelectionDAGISel::CheckOrMask(), combineAddToSUBUS(), combineSelect(), combineShiftLeft(), CombineVMOVDRRCandidateWithVecOp(), llvm::SelectionDAG::computeKnownBits(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SelectionDAG::ComputeNumSignBits(), convertShiftLeftToScale(), detectAVGPattern(), extractShiftForRotate(), foldAddSubOfSignBit(), foldBitcastedFPLogic(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::GetDemandedBits(), getFPTernOp(), llvm::SelectionDAG::getNode(), getPermuteMask(), getPowerOf2Factor(), getTargetVShiftByConstNode(), isBooleanFlip(), isBSwapHWordElement(), isConstantOrConstantVector(), llvm::TargetLowering::isConstFalseVal(), isConstOrDemandedConstSplat(), llvm::TargetLowering::isExtendedTrueVal(), isMemOPCandidate(), isPowerOf2Constant(), IsSingleInstrConstant(), llvm::SelectionDAG::isSplatValue(), isTargetConstant(), isTruncateOf(), llvm::HexagonTargetLowering::LowerSETCC(), matchRotateSub(), minMaxOpcToMin3Max3Opc(), performANDCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), performMulCombine(), PerformORCombineToBFI(), replaceShuffleOfInsert(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyDivRem(), skipExtensionForVectorMULL(), SkipExtensionForVMULL(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), tryFoldToZero(), TryMULWIDECombine(), and UnrollVectorShift().
|
inline |
Definition at line 1515 of file SelectionDAGNodes.h.
Referenced by AddNodeIDCustom(), and canFoldInAddressingMode().
|
inline |
Definition at line 1519 of file SelectionDAGNodes.h.
References llvm::ConstantInt::getLimitedValue().
Referenced by calculateByteProvider().
|
inline |
Definition at line 1518 of file SelectionDAGNodes.h.
References llvm::ConstantInt::getSExtValue().
Referenced by llvm::X86InstrInfo::areLoadsFromSameBasePtr(), canFoldInAddressingMode(), checkHighLaneIndex(), CheckInteger(), combineMul(), llvm::createARCISelDag(), createCMovFP(), llvm::createXCoreISelDag(), foldMaskedShiftToBEXTR(), llvm::SelectionDAG::FoldSymbolOffset(), getConstantValue(), getEstimate(), isExtendedBUILD_VECTOR(), isStackPtrRelative(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::ARMTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::TargetLowering::LowerAsmOperandForConstraint(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), llvm::LanaiTargetLowering::LowerMUL(), mayTailCallThisCC(), mayUseP9Setb(), PerformMULCombine(), performORCombine(), performSELECTCombine(), selectI64Imm(), and tryFoldToZero().
|
inline |
Definition at line 1517 of file SelectionDAGNodes.h.
References llvm::ConstantInt::getZExtValue().
Referenced by AddCombineBUILD_VECTORToVPADDL(), adjustForTestUnderMask(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), bitOpWithConstantIsReducible(), calculateByteProvider(), checkBoolTestSetCCCombine(), combineADDToADDZE(), CombineANDShift(), CombineBaseUpdate(), combineBVOfVecSExt(), combineCCMask(), combineConcatVectorOfExtracts(), combineMul(), llvm::SelectionDAG::computeKnownBits(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), ConstantBuildVector(), ConvertCarryFlagToBooleanCarry(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), foldAddSubOfSignBit(), getAArch64Cmp(), getConstantValue(), getContiguousRangeOfSetBits(), getEstimate(), getExtendTypeForNode(), getMad64_32(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), llvm::SelectionDAG::getNode(), getPermuteMask(), llvm::HexagonTargetLowering::getTargetNodeName(), insertDAGNode(), isAllConstantBuildVector(), isBLACompatibleAddress(), isBSwapHWordElement(), isMemOPCandidate(), isPerfectIncrement(), isSimpleShift(), llvm::SelectionDAG::isSplatValue(), isStackPtrRelative(), isWorthFoldingSHL(), LowerAndToBT(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::TargetLowering::LowerAsmOperandForConstraint(), LowerATOMIC_FENCE(), lowerVectorShuffleAsBroadcast(), maskMatters(), mayTailCallThisCC(), performANDCombine(), PerformANDCombine(), PerformBFICombine(), performCMovFPCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performORCombine(), PerformORCombineToBFI(), performSELECTCombine(), llvm::AMDGPUTargetLowering::performShlCombine(), performSHLCombine(), llvm::AMDGPUTargetLowering::performSraCombine(), performSRACombine(), llvm::AMDGPUTargetLowering::performSrlCombine(), replaceSplatVectorStore(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyDivRem(), stripModuloOnShift(), llvm::AArch64TargetLowering::targetShrinkDemandedConstant(), llvm::ARMTargetLowering::targetShrinkDemandedConstant(), tryCombineCRC32(), tryCombineToBSL(), tryFoldToZero(), and tryLowerToSLI().
|
inline |
Definition at line 1525 of file SelectionDAGNodes.h.
References llvm::ConstantInt::isMinusOne().
Referenced by getMad64_32(), llvm::isAllOnesConstant(), llvm::isAllOnesOrAllOnesSplat(), llvm::isBitwiseNot(), isBooleanFlip(), llvm::TargetLowering::isExtendedTrueVal(), LowerXOR(), mayTailCallThisCC(), parseTexFail(), llvm::TargetLowering::SimplifyDemandedBits(), and simplifyDivRem().
|
inline |
Definition at line 1524 of file SelectionDAGNodes.h.
References llvm::ConstantInt::isZero().
Referenced by ConvertSelectToConcatVector(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::AArch64SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), getAArch64Cmp(), getExpandedMinMaxOps(), getMad64_32(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), llvm::TargetLowering::isConstFalseVal(), llvm::SelectionDAG::isKnownNeverZero(), llvm::isNullConstant(), llvm::isNullOrNullSplat(), LowerXOR(), mayTailCallThisCC(), mayUseP9Setb(), llvm::AMDGPUTargetLowering::performCtlz_CttzCombine(), replaceShuffleOfInsert(), selectI64Imm(), and simplifyDivRem().
|
inline |
Definition at line 1523 of file SelectionDAGNodes.h.
References llvm::ConstantInt::isOne().
Referenced by getAArch64Cmp(), isBooleanFlip(), llvm::TargetLowering::isExtendedTrueVal(), llvm::isOneConstant(), llvm::isOneOrOneSplat(), isSetCC(), mayTailCallThisCC(), llvm::TargetLowering::SimplifyDemandedBits(), and simplifyDivRem().
|
inline |
Definition at line 1527 of file SelectionDAGNodes.h.
Referenced by AddNodeIDCustom(), calculateByteProvider(), llvm::SelectionDAG::FoldConstantArithmetic(), getAsNonOpaqueConstant(), isBSwapHWordElement(), isConstantOrConstantVector(), and simplifyDivRem().
|
friend |
Definition at line 1503 of file SelectionDAGNodes.h.