LLVM API Documentation

llvm::SDOperand Class Reference

#include <SelectionDAGNodes.h>

Collaboration diagram for llvm::SDOperand:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SDOperand ()
 SDOperand (SDNode *val, unsigned resno)
bool operator== (const SDOperand &O) const
bool operator!= (const SDOperand &O) const
bool operator< (const SDOperand &O) const
SDOperand getValue (unsigned R) const
bool isOperand (SDNode *N) const
MVT::ValueType getValueType () const
unsigned getOpcode () const
unsigned getNodeDepth () const
unsigned getNumOperands () const
const SDOperandgetOperand (unsigned i) const
bool isTargetOpcode () const
unsigned getTargetOpcode () const
bool hasOneUse () const

Public Attributes

SDNodeVal
unsigned ResNo

Detailed Description

SDOperand - 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 SDOperand value type.

Definition at line 626 of file SelectionDAGNodes.h.


Constructor & Destructor Documentation

llvm::SDOperand::SDOperand (  )  [inline]

Definition at line 631 of file SelectionDAGNodes.h.

Referenced by getValue().

llvm::SDOperand::SDOperand ( SDNode val,
unsigned  resno 
) [inline]

Definition at line 632 of file SelectionDAGNodes.h.


Member Function Documentation

bool llvm::SDOperand::operator== ( const SDOperand O  )  const [inline]

Definition at line 634 of file SelectionDAGNodes.h.

References ResNo, and Val.

Referenced by operator!=().

bool llvm::SDOperand::operator!= ( const SDOperand O  )  const [inline]

Definition at line 637 of file SelectionDAGNodes.h.

References operator==().

bool llvm::SDOperand::operator< ( const SDOperand O  )  const [inline]

Definition at line 640 of file SelectionDAGNodes.h.

References ResNo, and Val.

SDOperand llvm::SDOperand::getValue ( unsigned  R  )  const [inline]

Definition at line 644 of file SelectionDAGNodes.h.

References SDOperand(), and Val.

Referenced by llvm::SelectionDAGLowering::getLoadFrom(), llvm::PPC::isSplatShuffleMask(), llvm::IA64TargetLowering::LowerArguments(), LowerCALL(), llvm::TargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), llvm::AlphaTargetLowering::LowerCallTo(), LowerINTRINSIC_WO_CHAIN(), llvm::IA64TargetLowering::LowerOperation(), LowerRET(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::SelectionDAGLowering::visitInlineAsm(), llvm::SelectionDAGLowering::visitIntrinsicCall(), llvm::SelectionDAGLowering::visitJumpTable(), llvm::SelectionDAGLowering::visitMemIntrinsic(), and llvm::SelectionDAGLowering::visitTargetIntrinsic().

bool SDOperand::isOperand ( SDNode N  )  const

Definition at line 2766 of file SelectionDAG.cpp.

References llvm::SDNode::getNumOperands(), and llvm::SDNode::getOperand().

MVT::ValueType llvm::SDOperand::getValueType (  )  const [inline]

getValueType - Return the ValueType of the referenced return value.

Definition at line 1049 of file SelectionDAGNodes.h.

References llvm::SDNode::getValueType(), ResNo, and Val.

Referenced by BuildIntrinsicOp(), CommuteVectorShuffle(), CountOperands(), llvm::ScheduleDAG::EmitNode(), FindCallStartFromCall(), FindCallStartFromCallEnd(), GeneratePerfectShuffle(), GetConstantBuildVectorBits(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getNode(), llvm::ISD::isBuildVectorAllOnes(), LowerCALL(), llvm::TargetLowering::LowerCallTo(), LowerFORMAL_ARGUMENTS(), LowerSELECT_CC(), LowerVECTOR_SHUFFLE(), NormalizeMask(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::SelectionDAGLowering::visitBinary(), llvm::SelectionDAGLowering::visitBr(), llvm::SelectionDAGLowering::visitCast(), llvm::SelectionDAGLowering::visitGetElementPtr(), llvm::SelectionDAGLowering::visitInlineAsm(), llvm::SelectionDAGLowering::visitShift(), llvm::SelectionDAGLowering::visitSwitch(), and llvm::SelectionDAGLowering::visitSwitchCase().

unsigned llvm::SDOperand::getOpcode (  )  const [inline]

Definition at line 1043 of file SelectionDAGNodes.h.

References llvm::SDNode::getOpcode(), and Val.

Referenced by llvm::PPC::get_VSPLTI_elt(), llvm::SelectionDAG::getNode(), llvm::X86::getShufflePSHUFHWImmediate(), llvm::X86::getShufflePSHUFLWImmediate(), llvm::X86::getShuffleSHUFImmediate(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), isConsecutiveLoad(), isSetCCEquivalent(), llvm::PPC::isSplatShuffleMask(), llvm::PPC::isVSLDOIShuffleMask(), LookThroughSetCC(), LowerVECTOR_SHUFFLE(), NormalizeMask(), llvm::PPCTargetLowering::PerformDAGCombine(), and PerformShuffleCombine().

unsigned llvm::SDOperand::getNodeDepth (  )  const [inline]

Definition at line 1046 of file SelectionDAGNodes.h.

References llvm::SDNode::getNodeDepth(), and Val.

unsigned llvm::SDOperand::getNumOperands (  )  const [inline]

Definition at line 1052 of file SelectionDAGNodes.h.

References llvm::SDNode::getNumOperands(), and Val.

Referenced by CommuteVectorShuffle(), llvm::SelectionDAG::getNode(), getShuffleScalarElt(), LowerVECTOR_SHUFFLE(), NormalizeMask(), OperandConvertibleToType(), PerformShuffleCombine(), and PromoteSplat().

const SDOperand & llvm::SDOperand::getOperand ( unsigned  i  )  const [inline]

Definition at line 1055 of file SelectionDAGNodes.h.

References llvm::SDNode::getOperand(), and Val.

Referenced by CommuteVectorShuffle(), getAltivecCompareInfo(), llvm::SelectionDAG::getNode(), getShuffleScalarElt(), isSetCCEquivalent(), LookThroughSetCC(), LowerVECTOR_SHUFFLE(), NormalizeMask(), llvm::PPCTargetLowering::PerformDAGCombine(), and PerformShuffleCombine().

bool llvm::SDOperand::isTargetOpcode (  )  const [inline]

Definition at line 1058 of file SelectionDAGNodes.h.

References llvm::SDNode::isTargetOpcode(), and Val.

unsigned llvm::SDOperand::getTargetOpcode (  )  const [inline]

Definition at line 1061 of file SelectionDAGNodes.h.

References llvm::SDNode::getTargetOpcode(), and Val.

bool llvm::SDOperand::hasOneUse (  )  const [inline]

hasOneUse - Return true if there is exactly one operation using this result value of the defining operator.

Definition at line 1064 of file SelectionDAGNodes.h.

References llvm::SDNode::hasNUsesOfValue(), ResNo, and Val.

Referenced by llvm::PPCTargetLowering::PerformDAGCombine().


Member Data Documentation

SDNode* llvm::SDOperand::Val

Definition at line 628 of file SelectionDAGNodes.h.

Referenced by llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), llvm::ScheduleDAG::CalculateDepths(), llvm::ScheduleDAG::CalculateHeights(), DumpNodes(), llvm::PPC::get_VSPLTI_elt(), getDefUsePredecessor(), llvm::SelectionDAG::getNode(), getNodeDepth(), getNumOperands(), getOpcode(), getOperand(), llvm::SelectionDAG::getTargetNode(), getTargetOpcode(), getValue(), llvm::SelectionDAGLowering::getValue(), getValueType(), hasOneUse(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), isConsecutiveLoad(), isGAPlusOffset(), isInt32Immediate(), isInvertibleForFree(), isOneUseSetCC(), isOpcWithIntImmediate(), llvm::SDNode::isOperand(), isRotateAndMask(), isScalarLoadToVector(), isSplatMask(), isTargetOpcode(), llvm::TargetLowering::LowerArguments(), LowerCALL(), llvm::TargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), LowerVECTOR_SHUFFLE(), llvm::SDNodeIterator::operator *(), operator<(), operator==(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformShuffleCombine(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::SDNode::SDNode(), llvm::SDNode::setOperands(), llvm::SelectionDAG::UpdateNodeOperands(), llvm::SelectionDAGLowering::visitExtractElement(), llvm::SelectionDAGLowering::visitInsertElement(), llvm::SelectionDAGLowering::visitShuffleVector(), and llvm::SelectionDAGLowering::visitTargetIntrinsic().

unsigned llvm::SDOperand::ResNo

Definition at line 629 of file SelectionDAGNodes.h.

Referenced by getValueType(), hasOneUse(), operator<(), operator==(), and llvm::SelectionDAG::UpdateNodeOperands().


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