LLVM API Documentation
#include <SelectionDAGNodes.h>
Public Member Functions | |
bool | isConstantSplat (APInt &SplatValue, APInt &SplatUndef, unsigned &SplatBitSize, bool &HasAnyUndefs, unsigned MinSplatBits=0, bool isBigEndian=false) |
![]() | |
unsigned | getOpcode () const |
bool | isTargetOpcode () const |
bool | isTargetMemoryOpcode () const |
bool | isMachineOpcode () const |
unsigned | getMachineOpcode () const |
bool | getHasDebugValue () const |
getHasDebugValue - get this bit. More... | |
void | setHasDebugValue (bool b) |
setHasDebugValue - set this bit. More... | |
bool | use_empty () const |
bool | hasOneUse () const |
size_t | use_size () const |
int | getNodeId () const |
void | setNodeId (int Id) |
setNodeId - Set unique node id. More... | |
unsigned | getIROrder () const |
void | setIROrder (unsigned Order) |
const DebugLoc | getDebugLoc () const |
getDebugLoc - Return the source location info. More... | |
void | setDebugLoc (const DebugLoc dl) |
use_iterator | use_begin () 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, SmallPtrSet< const SDNode *, 32 > &Visited, SmallVectorImpl< const SDNode * > &Worklist) const |
unsigned | getNumOperands () const |
uint64_t | getConstantOperandVal (unsigned Num) const |
const SDValue & | getOperand (unsigned Num) const |
op_iterator | op_begin () const |
op_iterator | op_end () const |
SDVTList | getVTList () const |
SDNode * | getGluedNode () const |
const SDNode * | getGluedMachineNode () const |
SDNode * | getGluedUser () 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=0) 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=0) const |
void | printr (raw_ostream &OS, const SelectionDAG *G=0) const |
void | printrFull (raw_ostream &O, const SelectionDAG *G=0) const |
void | printrWithDepth (raw_ostream &O, const SelectionDAG *G=0, unsigned depth=100) const |
void | dump () const |
dump - Dump this node, for debugging. More... | |
void | dumpr () const |
dumpr - Dump (recursively) this node and its use-def subgraph. More... | |
void | dump (const SelectionDAG *G) const |
void | dumpr (const SelectionDAG *G) const |
void | dumprFull (const SelectionDAG *G=0) const |
void | dumprWithDepth (const SelectionDAG *G=0, unsigned depth=100) const |
void | Profile (FoldingSetNodeID &ID) const |
void | addUse (SDUse &U) |
![]() | |
Node () | |
void * | getNextInBucket () const |
void | SetNextInBucket (void *N) |
![]() | |
SDNode * | getPrevNode () |
Get the previous node, or 0 for the list head. More... | |
const SDNode * | getPrevNode () const |
Get the previous node, or 0 for the list head. More... | |
SDNode * | getNextNode () |
Get the next node, or 0 for the list tail. More... | |
const SDNode * | getNextNode () const |
Get the next node, or 0 for the list tail. More... | |
Static Public Member Functions | |
static bool | classof (const SDNode *N) |
![]() | |
static use_iterator | use_end () |
static const char * | getIndexedModeName (ISD::MemIndexedMode AM) |
Additional Inherited Members | |
![]() | |
typedef SDUse * | op_iterator |
typedef const EVT * | value_iterator |
![]() | |
SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs, const SDValue *Ops, unsigned NumOps) | |
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. More... | |
void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1) |
InitOperands - Initialize the operands list of this with 2 operands. More... | |
void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2) |
InitOperands - 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) |
InitOperands - Initialize the operands list of this with 4 operands. More... | |
void | InitOperands (SDUse *Ops, const SDValue *Vals, unsigned N) |
InitOperands - Initialize the operands list of this with N operands. More... | |
void | DropOperands () |
![]() | |
ilist_node () | |
![]() | |
static SDVTList | getSDVTList (EVT VT) |
![]() | |
uint16_t | SubclassData: 14 |
BuildVectorSDNode - A "pseudo-class" with methods for operating on BUILD_VECTORs.
Definition at line 1474 of file SelectionDAGNodes.h.
Definition at line 1491 of file SelectionDAGNodes.h.
References llvm::ISD::BUILD_VECTOR, and llvm::SDNode::getOpcode().
bool BuildVectorSDNode::isConstantSplat | ( | APInt & | SplatValue, |
APInt & | SplatUndef, | ||
unsigned & | SplatBitSize, | ||
bool & | HasAnyUndefs, | ||
unsigned | MinSplatBits = 0 , |
||
bool | isBigEndian = false |
||
) |
isConstantSplat - Check if this is a constant splat, and if so, find the smallest element size that splats the vector. If MinSplatBits is nonzero, the element size must be at least that large. Note that the splat element may be the entire vector (i.e., a one element vector). Returns the splat element value in SplatValue. Any undefined bits in that value are zero, and the corresponding bits in the SplatUndef mask are set. The SplatBitSize value is set to the splat element size in bits. HasAnyUndefs is set to true if any bits in the vector are undefined. isBigEndian describes the endianness of the target.
Definition at line 6455 of file SelectionDAG.cpp.
References llvm::APInt::getBitsSet(), llvm::SDNode::getNumOperands(), llvm::SDValue::getOpcode(), llvm::SDNode::getOperand(), llvm::EVT::getSizeInBits(), llvm::SDNode::getValueType(), llvm::EVT::getVectorElementType(), llvm::EVT::isVector(), llvm::APInt::lshr(), llvm::APInt::trunc(), llvm::ISD::UNDEF, and llvm::APInt::zextOrTrunc().
Referenced by getVShiftImm(), llvm::PPC::isAllNegativeZeroVector(), isConstantSplatVector(), isVectorAllOnes(), isVSplat(), llvm::AArch64TargetLowering::LowerBUILD_VECTOR(), LowerSDIV(), PerformANDCombine(), performDSPShiftCombine(), and PerformORCombine().