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) const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:199
Parameters
- const llvm::SelectionDAG* G
¶inline void dump() const
inline void dump() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:198
¶inline void dumpr(
const llvm::SelectionDAG* G) const
inline void dumpr(
const llvm::SelectionDAG* G) const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:201
Parameters
- const llvm::SelectionDAG* G
¶inline void dumpr() const
inline void dumpr() const
Declared 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) const
Declared 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) const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:190
Parameters
- unsigned int i
¶inline const llvm::DebugLoc& getDebugLoc() const
inline const llvm::DebugLoc& getDebugLoc() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:197
¶inline unsigned int getMachineOpcode() const
inline unsigned int getMachineOpcode() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:196
¶llvm::SDNode* getNode() const
llvm::SDNode* getNode() const
Description
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() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:188
¶inline unsigned int getOpcode() const
inline unsigned int getOpcode() const
Declared 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) const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:189
Parameters
- unsigned int i
¶unsigned int getResNo() const
unsigned int getResNo() const
Description
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() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:182
¶llvm::MVT getSimpleValueType() const
llvm::MVT getSimpleValueType() const
Description
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) const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:158
Parameters
- unsigned int R
¶llvm::TypeSize getValueSizeInBits() const
llvm::TypeSize getValueSizeInBits() const
Description
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() const
Description
Return the ValueType of the referenced return value.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:166
¶inline bool hasOneUse() const
inline bool hasOneUse() const
Description
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() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:194
¶bool isOperandOf(const llvm::SDNode* N) const
bool isOperandOf(const llvm::SDNode* N) const
Description
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() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:192
¶inline bool isTargetOpcode() const
inline bool isTargetOpcode() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:193
¶inline bool isUndef() const
inline bool isUndef() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:195
¶bool operator bool() const
bool operator bool() const
Declared 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) const
Description
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() const
Description
Return true if there are no nodes using value ResNo of Node.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:212