class SDValue
Declaration
class SDValue { /* full declaration omitted */ };Description
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation. Many nodes return multiple values, from loads (which define a token and a return value) to ADDC (which returns a result and a carry value), to calls (which may return an arbitrary number of values). As such, each use of a SelectionDAG computation must indicate the node that computes it as well as which return value to use from that node. This pair of information is represented with the SDValue value type.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:124
Method Overview
- public SDValue(llvm::SDNode * node, unsigned int resno)
- public SDValue()
- public inline void dump(const llvm::SelectionDAG * G) const
- public inline void dump() const
- public inline void dumpr(const llvm::SelectionDAG * G) const
- public inline void dumpr() const
- public inline const llvm::APInt & getConstantOperandAPInt(unsigned int i) const
- public inline uint64_t getConstantOperandVal(unsigned int i) const
- public inline const llvm::DebugLoc & getDebugLoc() const
- public inline unsigned int getMachineOpcode() const
- public llvm::SDNode * getNode() const
- public inline unsigned int getNumOperands() const
- public inline unsigned int getOpcode() const
- public inline const llvm::SDValue & getOperand(unsigned int i) const
- public unsigned int getResNo() const
- public llvm::TypeSize getScalarValueSizeInBits() const
- public llvm::MVT getSimpleValueType() const
- public llvm::SDValue getValue(unsigned int R) const
- public llvm::TypeSize getValueSizeInBits() const
- public inline llvm::EVT getValueType() const
- public inline bool hasOneUse() const
- public inline bool isMachineOpcode() const
- public bool isOperandOf(const llvm::SDNode * N) const
- public inline bool isTargetMemoryOpcode() const
- public inline bool isTargetOpcode() const
- public inline bool isUndef() const
- public bool operator bool() const
- public bool reachesChainWithoutSideEffects(llvm::SDValue Dest, unsigned int Depth = 2) const
- public void setNode(llvm::SDNode * N)
- public inline bool use_empty() const
Methods
¶SDValue(llvm::SDNode* node, unsigned int resno)
SDValue(llvm::SDNode* node, unsigned int resno)Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:132
Parameters
- llvm::SDNode* node
- unsigned int resno
¶SDValue()
SDValue()Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:131
¶inline void dump(
const llvm::SelectionDAG* G) const
inline void dump(
const llvm::SelectionDAG* G) constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:199
Parameters
- const llvm::SelectionDAG* G
¶inline void dump() const
inline void dump() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:198
¶inline void dumpr(
const llvm::SelectionDAG* G) const
inline void dumpr(
const llvm::SelectionDAG* G) constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:201
Parameters
- const llvm::SelectionDAG* G
¶inline void dumpr() const
inline void dumpr() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:200
¶inline const llvm::APInt& getConstantOperandAPInt(
unsigned int i) const
inline const llvm::APInt& getConstantOperandAPInt(
unsigned int i) constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:191
Parameters
- unsigned int i
¶inline uint64_t getConstantOperandVal(
unsigned int i) const
inline uint64_t getConstantOperandVal(
unsigned int i) constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:190
Parameters
- unsigned int i
¶inline const llvm::DebugLoc& getDebugLoc() const
inline const llvm::DebugLoc& getDebugLoc() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:197
¶inline unsigned int getMachineOpcode() const
inline unsigned int getMachineOpcode() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:196
¶llvm::SDNode* getNode() const
llvm::SDNode* getNode() constDescription
get the SDNode which holds the desired result
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:138
¶inline unsigned int getNumOperands() const
inline unsigned int getNumOperands() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:188
¶inline unsigned int getOpcode() const
inline unsigned int getOpcode() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:187
¶inline const llvm::SDValue& getOperand(
unsigned int i) const
inline const llvm::SDValue& getOperand(
unsigned int i) constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:189
Parameters
- unsigned int i
¶unsigned int getResNo() const
unsigned int getResNo() constDescription
get the index which selects a specific result in the SDNode
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:135
¶llvm::TypeSize getScalarValueSizeInBits() const
llvm::TypeSize getScalarValueSizeInBits() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:182
¶llvm::MVT getSimpleValueType() const
llvm::MVT getSimpleValueType() constDescription
Return the simple ValueType of the referenced return value.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:169
¶llvm::SDValue getValue(unsigned int R) const
llvm::SDValue getValue(unsigned int R) constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:158
Parameters
- unsigned int R
¶llvm::TypeSize getValueSizeInBits() const
llvm::TypeSize getValueSizeInBits() constDescription
Returns the size of the value in bits. If the value type is a scalable vector type, the scalable property will be set and the runtime size will be a positive integer multiple of the base size.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:178
¶inline llvm::EVT getValueType() const
inline llvm::EVT getValueType() constDescription
Return the ValueType of the referenced return value.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:166
¶inline bool hasOneUse() const
inline bool hasOneUse() constDescription
Return true if there is exactly one node using value ResNo of Node.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:215
¶inline bool isMachineOpcode() const
inline bool isMachineOpcode() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:194
¶bool isOperandOf(const llvm::SDNode* N) const
bool isOperandOf(const llvm::SDNode* N) constDescription
Return true if this node is an operand of N.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:163
Parameters
- const llvm::SDNode* N
¶inline bool isTargetMemoryOpcode() const
inline bool isTargetMemoryOpcode() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:192
¶inline bool isTargetOpcode() const
inline bool isTargetOpcode() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:193
¶inline bool isUndef() const
inline bool isUndef() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:195
¶bool operator bool() const
bool operator bool() constDeclared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:154
¶bool reachesChainWithoutSideEffects(
llvm::SDValue Dest,
unsigned int Depth = 2) const
bool reachesChainWithoutSideEffects(
llvm::SDValue Dest,
unsigned int Depth = 2) constDescription
Return true if this operand (which must be a chain) reaches the specified operand without crossing any side-effecting instructions. In practice, this looks through token factors and non-volatile loads. In order to remain efficient, this only looks a couple of nodes in, it does not do an exhaustive search.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:208
Parameters
- llvm::SDValue Dest
- unsigned int Depth = 2
¶void setNode(llvm::SDNode* N)
void setNode(llvm::SDNode* N)Description
set the SDNode
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:141
Parameters
- llvm::SDNode* N
¶inline bool use_empty() const
inline bool use_empty() constDescription
Return true if there are no nodes using value ResNo of Node.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:212