LLVM API Documentation
#include <SelectionDAGNodes.h>
Public Types | |
| typedef SDUse * | op_iterator |
| typedef const MVT * | value_iterator |
Public Member Functions | |
| unsigned | getOpcode () const |
| bool | isTargetOpcode () const |
| bool | isMachineOpcode () const |
| unsigned | getMachineOpcode () const |
| bool | use_empty () const |
| bool | hasOneUse () const |
| size_t | use_size () const |
| int | getNodeId () const |
| void | setNodeId (int Id) |
| setNodeId - Set unique node id. | |
| const DebugLoc | getDebugLoc () const |
| getDebugLoc - Return the source location info. | |
| 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 (SDNode *N) 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 * | getFlaggedNode () const |
| const SDNode * | getFlaggedMachineNode () const |
| unsigned | getNumValues () const |
| MVT | getValueType (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 (raw_ostream &OS, const SelectionDAG *G=0) const |
| void | dump () const |
| void | dump (const SelectionDAG *G) const |
| void | Profile (FoldingSetNodeID &ID) const |
| void | addUse (SDUse &U) |
Static Public Member Functions | |
| static use_iterator | use_end () |
| static const char * | getIndexedModeName (ISD::MemIndexedMode AM) |
| static bool | classof (const SDNode *) |
Protected Member Functions | |
| SDNode (unsigned Opc, SDVTList VTs, const SDValue *Ops, unsigned NumOps) | |
| SDNode (unsigned Opc, SDVTList VTs) | |
| SDNode (unsigned Opc, const DebugLoc dl, SDVTList VTs, const SDValue *Ops, unsigned NumOps) | |
| SDNode (unsigned Opc, const DebugLoc dl, SDVTList VTs) | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0) |
| InitOperands - Initialize the operands list of this with 1 operand. | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1) |
| InitOperands - Initialize the operands list of this with 2 operands. | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2) |
| InitOperands - Initialize the operands list of this with 3 operands. | |
| 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. | |
| void | InitOperands (SDUse *Ops, const SDValue *Vals, unsigned N) |
| InitOperands - Initialize the operands list of this with N operands. | |
| void | DropOperands () |
Static Protected Member Functions | |
| static SDVTList | getSDVTList (MVT VT) |
Protected Attributes | |
| unsigned short | SubclassData: 15 |
Friends | |
| class | SelectionDAG |
| struct | ilist_traits< SDNode > |
Classes | |
| class | use_iterator |
Definition at line 1073 of file SelectionDAGNodes.h.
| typedef SDUse* llvm::SDNode::op_iterator |
Definition at line 1272 of file SelectionDAGNodes.h.
| typedef const MVT* llvm::SDNode::value_iterator |
Definition at line 1324 of file SelectionDAGNodes.h.
| llvm::SDNode::SDNode | ( | unsigned | Opc, | |
| SDVTList | VTs, | |||
| const SDValue * | Ops, | |||
| unsigned | NumOps | |||
| ) | [inline, protected] |
The constructors that supply DebugLoc explicitly should be preferred for new code.
Definition at line 1354 of file SelectionDAGNodes.h.
References llvm::SDUse::setInitial(), and llvm::SDUse::setUser().
This constructor adds no operands itself; operands can be set later with InitOperands.
Definition at line 1370 of file SelectionDAGNodes.h.
| llvm::SDNode::SDNode | ( | unsigned | Opc, | |
| const DebugLoc | dl, | |||
| SDVTList | VTs, | |||
| const SDValue * | Ops, | |||
| unsigned | NumOps | |||
| ) | [inline, protected] |
The next two constructors specify DebugLoc explicitly; the intent is that they will replace the above two over time, and eventually the ones above can be removed.
Definition at line 1379 of file SelectionDAGNodes.h.
References llvm::SDUse::setInitial(), and llvm::SDUse::setUser().
This constructor adds no operands itself; operands can be set later with InitOperands.
Definition at line 1395 of file SelectionDAGNodes.h.
| unsigned llvm::SDNode::getOpcode | ( | ) | const [inline] |
getOpcode - Return the SelectionDAG opcode value for this node. For pre-isel nodes (those for which isMachineOpcode returns false), these are the opcode values in the ISD and <target>ISD namespaces. For post-isel opcodes, see getMachineOpcode.
Definition at line 1125 of file SelectionDAGNodes.h.
Referenced by AddNodeIDCustom(), AddNodeIDNode(), CheckForPhysRegDependency(), llvm::StoreSDNode::classof(), llvm::LoadSDNode::classof(), llvm::LSBaseSDNode::classof(), llvm::VTSDNode::classof(), llvm::CallSDNode::classof(), llvm::ARG_FLAGSSDNode::classof(), llvm::CvtRndSatSDNode::classof(), llvm::CondCodeSDNode::classof(), llvm::ExternalSymbolSDNode::classof(), llvm::LabelSDNode::classof(), llvm::DbgStopPointSDNode::classof(), llvm::RegisterSDNode::classof(), llvm::MemOperandSDNode::classof(), llvm::SrcValueSDNode::classof(), llvm::BasicBlockSDNode::classof(), llvm::ConstantPoolSDNode::classof(), llvm::JumpTableSDNode::classof(), llvm::FrameIndexSDNode::classof(), llvm::GlobalAddressSDNode::classof(), llvm::ConstantFPSDNode::classof(), llvm::ConstantSDNode::classof(), llvm::MemIntrinsicSDNode::classof(), llvm::AtomicSDNode::classof(), llvm::MemSDNode::classof(), combineSelectAndUse(), doNotCSE(), EltsFromConsecutiveLoads(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::ScheduleDAGSDNodes::EmitNode(), ExpandSRx(), ExtendUsesToFormExtLoad(), FindCallEndFromCallStart(), FindCallStartFromCall(), FindCallStartFromCallEnd(), llvm::SPUHazardRecognizer::getHazardType(), llvm::PPCHazardRecognizer970::getHazardType(), getIndexedAddressParts(), llvm::SelectionDAG::getNode(), getOperationName(), hasCopyToRegUse(), llvm::PPC::isAllNegativeZeroVector(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), isCommutedMOVL(), isCommutedSHUFP(), isCopyFromLiveIn(), llvm::ISD::isDebugLabel(), llvm::X86TargetLowering::isGAPlusOffset(), llvm::TargetLowering::isGAPlusOffset(), isI16IntU10Immediate(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), llvm::X86::isMOVDDUPMask(), llvm::X86::isMOVHLPS_v_undef_Mask(), llvm::X86::isMOVHLPSMask(), llvm::X86::isMOVHPMask(), llvm::X86::isMOVLMask(), llvm::X86::isMOVLPMask(), llvm::X86::isMOVSHDUPMask(), llvm::X86::isMOVSLDUPMask(), isOpcWithIntImmediate(), llvm::ScheduleDAGSDNodes::isPassiveNode(), llvm::X86::isPSHUFDMask(), isPSHUFHW_PSHUFLWMask(), llvm::X86::isPSHUFHWMask(), llvm::X86::isPSHUFLWMask(), isScalarLoadToVector(), llvm::ISD::isScalarToVector(), llvm::X86::isSHUFPMask(), llvm::X86::isSplatLoMask(), llvm::X86::isSplatMask(), isSplatMask(), llvm::PPC::isSplatShuffleMask(), isSplatVector(), isUndefShuffle(), llvm::X86::isUNPCKH_v_undef_Mask(), llvm::X86::isUNPCKHMask(), llvm::X86::isUNPCKL_v_undef_Mask(), llvm::X86::isUNPCKLMask(), isVMerge(), llvm::PPC::isVSLDOIShuffleMask(), isZeroShuffle(), LowerByteImmed(), llvm::AlphaTargetLowering::LowerOperation(), LowerSCALAR_TO_VECTOR(), PerformBuildVectorCombine(), llvm::X86TargetLowering::PerformDAGCombine(), llvm::SPUTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::PIC16TargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), PerformFORCombine(), PerformShiftCombine(), PerformSTORECombine(), print(), llvm::XCoreTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::SPUTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::PIC16TargetLowering::ReplaceNodeResults(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::AlphaTargetLowering::ReplaceNodeResults(), and llvm::DAGTypeLegalizer::run().
| bool llvm::SDNode::isTargetOpcode | ( | ) | const [inline] |
isTargetOpcode - Test if this node has a target-specific opcode (in the <target>ISD namespace).
Definition at line 1129 of file SelectionDAGNodes.h.
References llvm::ISD::BUILTIN_OP_END.
Referenced by llvm::MemIntrinsicSDNode::classof(), llvm::MemSDNode::classof(), and print().
| bool llvm::SDNode::isMachineOpcode | ( | ) | const [inline] |
isMachineOpcode - Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode.
Definition at line 1133 of file SelectionDAGNodes.h.
Referenced by CheckForPhysRegDependency(), llvm::ScheduleDAGSDNodes::ComputeLatency(), llvm::ScheduleDAGSDNodes::EmitNode(), getFlaggedMachineNode(), getMachineOpcode(), getOperationName(), llvm::ISD::isDebugLabel(), llvm::SelectionDAG::MorphNodeTo(), and llvm::X86InstrInfo::unfoldMemoryOperand().
| unsigned llvm::SDNode::getMachineOpcode | ( | ) | const [inline] |
getMachineOpcode - This may only be called if isMachineOpcode returns true. It returns the MachineInstr opcode value that the node's opcode corresponds to.
Definition at line 1138 of file SelectionDAGNodes.h.
References isMachineOpcode().
Referenced by canClobberPhysRegDefs(), CheckForPhysRegDependency(), llvm::ScheduleDAGSDNodes::ComputeLatency(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::ScheduleDAGSDNodes::EmitNode(), llvm::PPCHazardRecognizer970::getHazardType(), getOperationName(), getPhysicalRegisterVT(), llvm::ISD::isDebugLabel(), and llvm::X86InstrInfo::unfoldMemoryOperand().
| bool llvm::SDNode::use_empty | ( | ) | const [inline] |
use_empty - Return true if there are no uses of this node.
Definition at line 1145 of file SelectionDAGNodes.h.
Referenced by FindCallEndFromCallStart(), hasOneUse(), llvm::TargetLowering::LowerArguments(), llvm::SelectionDAG::MorphNodeTo(), and llvm::SelectionDAG::RemoveDeadNodes().
| bool llvm::SDNode::hasOneUse | ( | ) | const [inline] |
hasOneUse - Return true if there is exactly one use of this node.
Definition at line 1149 of file SelectionDAGNodes.h.
References llvm::next(), use_begin(), use_empty(), and use_end().
Referenced by combineShlAddConstant(), isOneUseSetCC(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::TargetLowering::SimplifyDemandedBits(), and llvm::TargetLowering::SimplifySetCC().
| size_t llvm::SDNode::use_size | ( | ) | const [inline] |
use_size - Return the number of uses of this node. This method takes time proportional to the number of uses.
Definition at line 1156 of file SelectionDAGNodes.h.
References use_begin(), and use_end().
| int llvm::SDNode::getNodeId | ( | ) | const [inline] |
getNodeId - Return the unique node id.
Definition at line 1160 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), findNonImmUse(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), and llvm::DAGTypeLegalizer::run().
| void llvm::SDNode::setNodeId | ( | int | Id | ) | [inline] |
setNodeId - Set unique node id.
Definition at line 1163 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), and llvm::DAGTypeLegalizer::run().
| const DebugLoc llvm::SDNode::getDebugLoc | ( | ) | const [inline] |
getDebugLoc - Return the source location info.
Definition at line 1166 of file SelectionDAGNodes.h.
Referenced by llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), combineSelectAndUse(), llvm::ScheduleDAGSDNodes::EmitNode(), ExpandFCOPYSIGNToBitwiseOps(), ExpandLibCall(), ExpandUnalignedLoad(), ExpandUnalignedStore(), getMemBasePlusOffset(), llvm::SelectionDAG::getShuffleScalarElt(), and llvm::TargetLowering::SimplifyDemandedBits().
| void llvm::SDNode::setDebugLoc | ( | const DebugLoc | dl | ) | [inline] |
setDebugLoc - Set source location info. Try to avoid this, putting it in the constructor is preferable.
Definition at line 1170 of file SelectionDAGNodes.h.
| use_iterator llvm::SDNode::use_begin | ( | ) | const [inline] |
use_begin/use_end - Provide iteration support to walk over all uses of an SDNode.
Definition at line 1229 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), ExtendUsesToFormExtLoad(), FindCallEndFromCallStart(), findFlagUse(), hasAnyUseOfValue(), hasNUsesOfValue(), hasOneUse(), isOnlyUserOf(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::DAGTypeLegalizer::run(), and use_size().
| static use_iterator llvm::SDNode::use_end | ( | ) | [inline, static] |
Definition at line 1233 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), ExtendUsesToFormExtLoad(), FindCallEndFromCallStart(), findFlagUse(), hasAnyUseOfValue(), hasNUsesOfValue(), hasOneUse(), isOnlyUserOf(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::DAGTypeLegalizer::run(), and use_size().
hasNUsesOfValue - Return true if there are exactly NUSES uses of the indicated value. This method ignores uses of other values defined by this operation.
hasNUsesOfValue - Return true if there are exactly NUSES uses of the indicated value. This method ignores uses of other values defined by this operation.
Definition at line 5435 of file SelectionDAG.cpp.
References E, getNumValues(), use_begin(), and use_end().
Referenced by llvm::PPCTargetLowering::PerformDAGCombine(), and llvm::PIC16TargetLowering::PerformPIC16LoadCombine().
| bool SDNode::hasAnyUseOfValue | ( | unsigned | Value | ) | const |
hasAnyUseOfValue - Return true if there are any use of the indicated value. This method ignores uses of other values defined by this operation.
hasAnyUseOfValue - Return true if there are any use of the indicated value. This method ignores uses of other values defined by this operation.
Definition at line 5454 of file SelectionDAG.cpp.
References E, getNumValues(), use_begin(), and use_end().
Referenced by canClobberPhysRegDefs(), and llvm::ScheduleDAGSDNodes::EmitNode().
| bool SDNode::isOnlyUserOf | ( | SDNode * | N | ) | const |
isOnlyUserOf - Return true if this node is the only use of N.
Definition at line 5467 of file SelectionDAG.cpp.
References E, use_begin(), and use_end().
| bool SDNode::isOperandOf | ( | SDNode * | N | ) | const |
isOperandOf - Return true if this node is an operand of N.
Definition at line 5489 of file SelectionDAG.cpp.
References llvm::SDUse::getNode(), NumOperands, and OperandList.
Referenced by isRMWLoad().
| bool SDNode::isPredecessorOf | ( | SDNode * | N | ) | const |
isPredecessorOf - Return true if this node is a predecessor of N. This node is either an operand of N or it can be reached by recursively traversing up the operands. NOTE: this is an expensive method. Use it carefully.
isPredecessorOf - Return true if this node is a predecessor of N. This node is either an operand of N or it can be reached by recursively traversing up the operands. NOTE: this is an expensive method. Use it carefully.
Definition at line 5546 of file SelectionDAG.cpp.
References findPredecessor(), and Visited.
| unsigned llvm::SDNode::getNumOperands | ( | ) | const [inline] |
getNumOperands - Return the number of values used by this operation.
Definition at line 1261 of file SelectionDAGNodes.h.
Referenced by AddNodeIDNode(), llvm::CCState::AnalyzeReturn(), llvm::SelectionDAG::AssignTopologicalOrder(), llvm::ScheduleDAGSDNodes::ComputeMemOperandsEnd(), llvm::ScheduleDAGSDNodes::EmitNode(), llvm::SDNodeIterator::end(), ExtendUsesToFormExtLoad(), FindCallEndFromCallStart(), findNonImmUse(), findPredecessor(), llvm::PPC::get_VSPLTI_elt(), GetConstantBuildVectorBits(), getFlaggedNode(), getInputChainForNode(), llvm::X86::getShuffleSHUFImmediate(), getSplatMaskEltNo(), getVecImm(), llvm::PPC::isAllNegativeZeroVector(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), isCommutedMOVL(), isCommutedSHUFP(), isCopyFromLiveIn(), isIdentityMask(), llvm::X86::isMOVDDUPMask(), llvm::X86::isMOVHLPS_v_undef_Mask(), llvm::X86::isMOVHLPSMask(), llvm::X86::isMOVHPMask(), llvm::X86::isMOVLMask(), llvm::X86::isMOVLPMask(), llvm::X86::isMOVSHDUPMask(), llvm::X86::isMOVSLDUPMask(), llvm::SDValue::isOperandOf(), llvm::X86::isPSHUFDMask(), isPSHUFHW_PSHUFLWMask(), llvm::X86::isPSHUFHWMask(), llvm::X86::isPSHUFLWMask(), llvm::ISD::isScalarToVector(), llvm::X86TargetLowering::isShuffleMaskLegal(), llvm::X86::isSHUFPMask(), llvm::X86::isSplatLoMask(), llvm::X86::isSplatMask(), isSplatMask(), llvm::PPC::isSplatShuffleMask(), isSplatVector(), llvm::X86::isUNPCKH_v_undef_Mask(), llvm::X86::isUNPCKHMask(), llvm::X86::isUNPCKL_v_undef_Mask(), llvm::X86::isUNPCKLMask(), isVMerge(), llvm::PPC::isVSLDOIShuffleMask(), MoveBelowCallSeqStart(), MoveBelowTokenFactor(), PerformBuildVectorCombine(), PerformSTORECombine(), print(), llvm::DAGTypeLegalizer::run(), ShouldXformToMOVHLPS(), ShouldXformToMOVLP(), llvm::X86InstrInfo::unfoldMemoryOperand(), and llvm::SelectionDAG::UpdateNodeOperands().
| uint64_t SDNode::getConstantOperandVal | ( | unsigned | Num | ) | const |
getConstantOperandVal - Helper method returns the integer value of a ConstantSDNode operand.
Definition at line 5553 of file SelectionDAG.cpp.
Definition at line 1267 of file SelectionDAGNodes.h.
Referenced by llvm::CCState::AnalyzeFormalArguments(), llvm::CCState::AnalyzeReturn(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), CheckForPhysRegDependency(), combineSelectAndUse(), llvm::ScheduleDAGSDNodes::ComputeMemOperandsEnd(), llvm::ScheduleDAGSDNodes::CountOperands(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::ScheduleDAGSDNodes::EmitNode(), ExpandBIT_CONVERT(), ExpandFCOPYSIGNToBitwiseOps(), ExpandSRx(), ExtendUsesToFormExtLoad(), FindCallEndFromCallStart(), FindCallStartFromCall(), FindCallStartFromCallEnd(), findNonImmUse(), findPredecessor(), llvm::PPC::get_VSPLTI_elt(), getBuildPairElt(), GetConstantBuildVectorBits(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeTarget(), getFlaggedNode(), llvm::PPCHazardRecognizer970::getHazardType(), getIndexedAddressParts(), getInputChainForNode(), llvm::SelectionDAG::getNode(), getOperationName(), llvm::X86::getShufflePSHUFHWImmediate(), llvm::X86::getShufflePSHUFLWImmediate(), llvm::SelectionDAG::getShuffleScalarElt(), llvm::X86::getShuffleSHUFImmediate(), getSplatMaskEltNo(), getVecImm(), llvm::PPC::getVSPLTImmediate(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), llvm::TargetLowering::isConsecutiveLoad(), isCopyFromLiveIn(), llvm::X86TargetLowering::isGAPlusOffset(), llvm::TargetLowering::isGAPlusOffset(), isIdentityMask(), llvm::X86::isMOVDDUPMask(), llvm::X86::isMOVHLPS_v_undef_Mask(), llvm::X86::isMOVHLPSMask(), llvm::X86::isMOVHPMask(), llvm::X86::isMOVLPMask(), llvm::X86::isMOVSHDUPMask(), llvm::X86::isMOVSLDUPMask(), isOpcWithIntImmediate(), llvm::SDValue::isOperandOf(), llvm::X86::isPSHUFDMask(), isPSHUFHW_PSHUFLWMask(), llvm::X86::isPSHUFHWMask(), llvm::X86::isPSHUFLWMask(), isScalarLoadToVector(), llvm::ISD::isScalarToVector(), llvm::X86::isSplatLoMask(), isSplatMask(), llvm::PPC::isSplatShuffleMask(), isSplatVector(), isUndefShuffle(), llvm::X86::isUNPCKH_v_undef_Mask(), llvm::X86::isUNPCKL_v_undef_Mask(), isVMerge(), llvm::PPC::isVPKUHUMShuffleMask(), llvm::PPC::isVPKUWUMShuffleMask(), llvm::PPC::isVSLDOIShuffleMask(), isZeroShuffle(), llvm::PIC16TargetLowering::LowerShift(), LowerVAARG(), PerformBTCombine(), PerformBuildVectorCombine(), llvm::SPUTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformFANDCombine(), PerformFMRRDCombine(), PerformFORCombine(), llvm::PIC16TargetLowering::PerformPIC16LoadCombine(), PerformSELECTCombine(), PerformShiftCombine(), PerformShuffleCombine(), PerformSTORECombine(), print(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::DAGTypeLegalizer::run(), ShouldXformToMOVHLPS(), ShouldXformToMOVLP(), llvm::TargetLowering::SimplifySetCC(), llvm::X86InstrInfo::unfoldMemoryOperand(), and llvm::SelectionDAG::UpdateNodeOperands().
| op_iterator llvm::SDNode::op_begin | ( | ) | const [inline] |
Definition at line 1273 of file SelectionDAGNodes.h.
Referenced by AddNodeIDNode(), DropOperands(), llvm::SelectionDAG::getNode(), isCommutedMOVL(), isCommutedSHUFP(), llvm::X86::isMOVLMask(), llvm::X86::isSHUFPMask(), llvm::X86::isUNPCKHMask(), llvm::X86::isUNPCKLMask(), LowerVECTOR_SHUFFLEv8i16(), llvm::SelectionDAG::MorphNodeTo(), and llvm::SelectionDAG::RemoveDeadNodes().
| op_iterator llvm::SDNode::op_end | ( | ) | const [inline] |
Definition at line 1274 of file SelectionDAGNodes.h.
Referenced by DropOperands(), llvm::SelectionDAG::getNode(), LowerVECTOR_SHUFFLEv8i16(), llvm::SelectionDAG::MorphNodeTo(), and llvm::SelectionDAG::RemoveDeadNodes().
| SDVTList llvm::SDNode::getVTList | ( | ) | const [inline] |
Definition at line 1276 of file SelectionDAGNodes.h.
References X.
Referenced by AddNodeIDNode(), LowerCALL(), llvm::PIC16TargetLowering::LowerFORMAL_ARGUMENTS(), LowerFORMAL_ARGUMENTS(), and llvm::SelectionDAG::ReplaceAllUsesWith().
| SDNode* llvm::SDNode::getFlaggedNode | ( | ) | const [inline] |
getFlaggedNode - If this node has a flag operand, return the node to which the flag operand points. Otherwise return NULL.
Definition at line 1283 of file SelectionDAGNodes.h.
References llvm::MVT::Flag, llvm::SDValue::getNode(), getNumOperands(), getOperand(), and getValueType().
Referenced by llvm::ScheduleDAGSDNodes::ComputeLatency(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::ScheduleDAGSDNodes::EmitSchedule(), getFlaggedMachineNode(), and llvm::ScheduleDAGSDNodes::getGraphNodeLabel().
| const SDNode* llvm::SDNode::getFlaggedMachineNode | ( | ) | const [inline] |
Definition at line 1292 of file SelectionDAGNodes.h.
References getFlaggedNode(), and isMachineOpcode().
Referenced by llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::SPUHazardRecognizer::getHazardType(), and llvm::PPCHazardRecognizer970::getHazardType().
| unsigned llvm::SDNode::getNumValues | ( | ) | const [inline] |
getNumValues - Return the number of values defined/returned by this operator.
Definition at line 1309 of file SelectionDAGNodes.h.
Referenced by llvm::CCState::AnalyzeFormalArguments(), ArgsAreStructReturn(), canClobberPhysRegDefs(), llvm::TargetLowering::CheckTailCallReturnConstraints(), llvm::ScheduleDAGSDNodes::CountResults(), doNotCSE(), FindCallEndFromCallStart(), findFlagUse(), llvm::SelectionDAGLowering::getValue(), hasAnyUseOfValue(), hasNUsesOfValue(), llvm::TargetLowering::LowerArguments(), LowerFORMAL_ARGUMENTS(), llvm::PIC16TargetLowering::LowerOperationWrapper(), llvm::DAGTypeLegalizer::NoteDeletion(), print(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::DAGTypeLegalizer::run(), and llvm::X86InstrInfo::unfoldMemoryOperand().
getValueType - Return the type of a specified result.
Definition at line 1313 of file SelectionDAGNodes.h.
Referenced by llvm::CCState::AnalyzeFormalArguments(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), canClobberPhysRegDefs(), CheckForPhysRegDependency(), combineSelectAndUse(), llvm::ScheduleDAGSDNodes::CountResults(), doNotCSE(), ExpandBIT_CONVERT(), ExpandConstantFP(), ExpandFCOPYSIGNToBitwiseOps(), llvm::PIC16TargetLowering::ExpandFrameIndex(), ExpandLibCall(), llvm::PIC16TargetLowering::ExpandLoad(), ExpandSRx(), ExpandUnalignedLoad(), ExtendUsesToFormExtLoad(), FindCallEndFromCallStart(), getFlaggedNode(), getPhysicalRegisterVT(), llvm::SelectionDAG::getShuffleScalarElt(), getValueSizeInBits(), llvm::TargetLowering::isConsecutiveLoad(), isFPS16Immediate(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), LowerCALL(), llvm::PIC16TargetLowering::LowerFORMAL_ARGUMENTS(), llvm::AlphaTargetLowering::LowerOperation(), LowerToTLSExecModel(), LowerToTLSGeneralDynamicModel32(), LowerToTLSGeneralDynamicModel64(), LowerVAARG(), PerformBuildVectorCombine(), llvm::SPUTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformSELECTCombine(), PerformShiftCombine(), PerformShuffleCombine(), print(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::SPUTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::AlphaTargetLowering::ReplaceNodeResults(), llvm::DAGTypeLegalizer::run(), and llvm::X86InstrInfo::unfoldMemoryOperand().
getValueSizeInBits - Returns MVT::getSizeInBits(getValueType(ResNo)).
Definition at line 1320 of file SelectionDAGNodes.h.
References llvm::MVT::getSizeInBits(), and getValueType().
| value_iterator llvm::SDNode::value_begin | ( | ) | const [inline] |
Definition at line 1325 of file SelectionDAGNodes.h.
| value_iterator llvm::SDNode::value_end | ( | ) | const [inline] |
Definition at line 1326 of file SelectionDAGNodes.h.
| std::string SDNode::getOperationName | ( | const SelectionDAG * | G = 0 |
) | const |
getOperationName - Return the opcode of this operation for printing.
Definition at line 5558 of file SelectionDAG.cpp.
References llvm::ISD::ADD, llvm::ISD::ADDC, llvm::ISD::ADDE, llvm::ISD::AND, llvm::ISD::ANY_EXTEND, llvm::ISD::ARG_FLAGS, llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::ISD::ATOMIC_CMP_SWAP, llvm::ISD::ATOMIC_LOAD_ADD, llvm::ISD::ATOMIC_LOAD_AND, llvm::ISD::ATOMIC_LOAD_MAX, llvm::ISD::ATOMIC_LOAD_MIN, llvm::ISD::ATOMIC_LOAD_NAND, llvm::ISD::ATOMIC_LOAD_OR, llvm::ISD::ATOMIC_LOAD_SUB, llvm::ISD::ATOMIC_LOAD_UMAX, llvm::ISD::ATOMIC_LOAD_UMIN, llvm::ISD::ATOMIC_LOAD_XOR, llvm::ISD::ATOMIC_SWAP, llvm::ISD::BasicBlock, llvm::ISD::BIT_CONVERT, llvm::ISD::BR, llvm::ISD::BR_CC, llvm::ISD::BR_JT, llvm::ISD::BRCOND, llvm::ISD::BRIND, llvm::ISD::BSWAP, llvm::ISD::BUILD_PAIR, llvm::ISD::BUILD_VECTOR, llvm::ISD::BUILTIN_OP_END, llvm::ISD::CALL, llvm::ISD::CALLSEQ_END, llvm::ISD::CALLSEQ_START, llvm::ISD::CARRY_FALSE, llvm::ISD::CONCAT_VECTORS, llvm::ISD::CONDCODE, llvm::ISD::Constant, llvm::ISD::ConstantFP, llvm::ISD::ConstantPool, llvm::ISD::CONVERT_RNDSAT, llvm::ISD::CopyFromReg, llvm::ISD::CopyToReg, llvm::ISD::CTLZ, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::ISD::CVT_FF, llvm::ISD::CVT_FS, llvm::ISD::CVT_FU, llvm::ISD::CVT_SF, llvm::ISD::CVT_SS, llvm::ISD::CVT_SU, llvm::ISD::CVT_UF, llvm::ISD::CVT_US, llvm::ISD::CVT_UU, llvm::ISD::DBG_LABEL, llvm::ISD::DBG_STOPPOINT, llvm::ISD::DEBUG_LOC, llvm::ISD::DECLARE, llvm::ISD::DELETED_NODE, llvm::ISD::DYNAMIC_STACKALLOC, llvm::ISD::EH_LABEL, llvm::ISD::EH_RETURN, llvm::ISD::EHSELECTION, llvm::ISD::EntryToken, llvm::ISD::EXCEPTIONADDR, llvm::ISD::ExternalSymbol, llvm::ISD::EXTRACT_ELEMENT, llvm::ISD::EXTRACT_SUBREG, llvm::ISD::EXTRACT_SUBVECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FABS, llvm::ISD::FADD, llvm::ISD::FCEIL, llvm::ISD::FCOPYSIGN, llvm::ISD::FCOS, llvm::ISD::FDIV, llvm::ISD::FFLOOR, llvm::ISD::FGETSIGN, llvm::ISD::FLT_ROUNDS_, llvm::ISD::FMUL, llvm::ISD::FNEARBYINT, llvm::ISD::FNEG, llvm::ISD::FORMAL_ARGUMENTS, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_ROUND_INREG, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ISD::FPOW, llvm::ISD::FPOWI, llvm::ISD::FRAME_TO_ARGS_OFFSET, llvm::ISD::FRAMEADDR, llvm::ISD::FrameIndex, llvm::ISD::FREM, llvm::ISD::FRINT, llvm::ISD::FSIN, llvm::ISD::FSQRT, llvm::ISD::FSUB, llvm::ISD::FTRUNC, llvm::TargetInstrInfo::get(), llvm::TargetMachine::getInstrInfo(), getMachineOpcode(), llvm::Intrinsic::getName(), llvm::TargetInstrDesc::getName(), llvm::TargetInstrInfo::getNumOpcodes(), getOpcode(), getOperand(), llvm::SelectionDAG::getTarget(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::TargetLowering::getTargetNodeName(), llvm::ISD::GLOBAL_OFFSET_TABLE, llvm::ISD::GlobalAddress, llvm::ISD::GlobalTLSAddress, llvm::ISD::HANDLENODE, llvm::ISD::INLINEASM, llvm::ISD::INSERT_SUBREG, llvm::ISD::INSERT_VECTOR_ELT, llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, isMachineOpcode(), llvm::ISD::JumpTable, llvm::ISD::LOAD, llvm::ISD::MEMBARRIER, llvm::ISD::MEMOPERAND, llvm::ISD::MERGE_VALUES, llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, Name, llvm::ISD::OR, llvm::ISD::PCMARKER, llvm::ISD::PREFETCH, llvm::ISD::READCYCLECOUNTER, llvm::ISD::Register, llvm::ISD::RET, llvm::ISD::RETURNADDR, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SADDO, llvm::ISD::SCALAR_TO_VECTOR, llvm::ISD::SDIV, llvm::ISD::SDIVREM, llvm::ISD::SELECT, llvm::ISD::SELECT_CC, llvm::ISD::SETCC, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, llvm::ISD::SETUNE, llvm::ISD::SETUO, llvm::ISD::SHL, llvm::ISD::SHL_PARTS, llvm::ISD::SIGN_EXTEND, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SINT_TO_FP, llvm::ISD::SMUL_LOHI, llvm::ISD::SMULO, llvm::ISD::SRA, llvm::ISD::SRA_PARTS, llvm::ISD::SRCVALUE, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SRL_PARTS, llvm::ISD::SSUBO, llvm::ISD::STACKRESTORE, llvm::ISD::STACKSAVE, llvm::ISD::STORE, llvm::ISD::SUB, llvm::ISD::SUBC, llvm::ISD::SUBE, llvm::ISD::TargetConstant, llvm::ISD::TargetConstantFP, llvm::ISD::TargetConstantPool, llvm::ISD::TargetExternalSymbol, llvm::ISD::TargetFrameIndex, llvm::ISD::TargetGlobalAddress, llvm::ISD::TargetGlobalTLSAddress, llvm::ISD::TargetJumpTable, TII, TLI, llvm::ISD::TokenFactor, llvm::ISD::TRAMPOLINE, llvm::ISD::TRAP, llvm::ISD::TRUNCATE, llvm::ISD::UADDO, llvm::ISD::UDIV, llvm::ISD::UDIVREM, llvm::ISD::UINT_TO_FP, llvm::ISD::UMUL_LOHI, llvm::ISD::UMULO, llvm::ISD::UNDEF, llvm::ISD::UREM, llvm::ISD::USUBO, llvm::ISD::VAARG, llvm::ISD::VACOPY, llvm::ISD::VAEND, llvm::ISD::VALUETYPE, llvm::ISD::VASTART, llvm::ISD::VECTOR_SHUFFLE, llvm::ISD::VSETCC, llvm::ISD::XOR, and llvm::ISD::ZERO_EXTEND.
Referenced by print().
| const char * SDNode::getIndexedModeName | ( | ISD::MemIndexedMode | AM | ) | [static] |
Definition at line 5827 of file SelectionDAG.cpp.
References llvm::ISD::POST_DEC, llvm::ISD::POST_INC, llvm::ISD::PRE_DEC, and llvm::ISD::PRE_INC.
| void SDNode::print | ( | raw_ostream & | OS, | |
| const SelectionDAG * | G = 0 | |||
| ) | const |
Definition at line 5872 of file SelectionDAG.cpp.
References llvm::MVT::getMVTString(), llvm::SDValue::getNode(), getNumOperands(), getNumValues(), llvm::SDValue::getOpcode(), getOpcode(), getOperand(), getOperationName(), getValueType(), llvm::APFloat::IEEEdouble, llvm::APFloat::IEEEsingle, isTargetOpcode(), offset, llvm::MVT::Other, llvm::ISD::UNDEF, llvm::ISD::VECTOR_SHUFFLE, and llvm::WriteAsOperand().
Referenced by dump().
| void SDNode::dump | ( | ) | const |
Definition at line 5866 of file SelectionDAG.cpp.
Referenced by llvm::ScheduleDAGSDNodes::dumpNode(), llvm::ScheduleDAGSDNodes::EmitNode(), llvm::SPUTargetLowering::LowerOperation(), LowerSTORE(), llvm::SPUTargetLowering::PerformDAGCombine(), llvm::SPUTargetLowering::ReplaceNodeResults(), and llvm::DAGTypeLegalizer::run().
| void SDNode::dump | ( | const SelectionDAG * | G | ) | const |
Definition at line 5867 of file SelectionDAG.cpp.
References llvm::errs(), llvm::raw_ostream::flush(), and print().
| static bool llvm::SDNode::classof | ( | const SDNode * | ) | [inline, static] |
Reimplemented in llvm::MemSDNode, llvm::AtomicSDNode, llvm::MemIntrinsicSDNode, llvm::ConstantSDNode, llvm::ConstantFPSDNode, llvm::GlobalAddressSDNode, llvm::FrameIndexSDNode, llvm::JumpTableSDNode, llvm::ConstantPoolSDNode, llvm::BasicBlockSDNode, llvm::SrcValueSDNode, llvm::MemOperandSDNode, llvm::RegisterSDNode, llvm::DbgStopPointSDNode, llvm::LabelSDNode, llvm::ExternalSymbolSDNode, llvm::CondCodeSDNode, llvm::CvtRndSatSDNode, llvm::ARG_FLAGSSDNode, llvm::CallSDNode, llvm::VTSDNode, llvm::LSBaseSDNode, llvm::LoadSDNode, and llvm::StoreSDNode.
Definition at line 1336 of file SelectionDAGNodes.h.
| void SDNode::Profile | ( | FoldingSetNodeID & | ID | ) | const |
Profile - Gather unique data for the node.
Definition at line 5415 of file SelectionDAG.cpp.
References AddNodeIDNode().
| void llvm::SDNode::addUse | ( | SDUse & | U | ) | [inline] |
addUse - This method should only be used by the SDUse class.
Definition at line 1344 of file SelectionDAGNodes.h.
References llvm::SDUse::addToList().
Definition at line 1347 of file SelectionDAGNodes.h.
References llvm::MipsISD::Ret.
Referenced by llvm::SelectionDAG::getNode().
InitOperands - Initialize the operands list of this with 1 operand.
Definition at line 1402 of file SelectionDAGNodes.h.
References llvm::SDUse::setInitial(), and llvm::SDUse::setUser().
| void llvm::SDNode::InitOperands | ( | SDUse * | Ops, | |
| const SDValue & | Op0, | |||
| const SDValue & | Op1 | |||
| ) | [inline, protected] |
InitOperands - Initialize the operands list of this with 2 operands.
Definition at line 1410 of file SelectionDAGNodes.h.
References llvm::SDUse::setInitial(), and llvm::SDUse::setUser().
| void llvm::SDNode::InitOperands | ( | SDUse * | Ops, | |
| const SDValue & | Op0, | |||
| const SDValue & | Op1, | |||
| const SDValue & | Op2 | |||
| ) | [inline, protected] |
InitOperands - Initialize the operands list of this with 3 operands.
Definition at line 1420 of file SelectionDAGNodes.h.
References llvm::SDUse::setInitial(), and llvm::SDUse::setUser().
| void llvm::SDNode::InitOperands | ( | SDUse * | Ops, | |
| const SDValue & | Op0, | |||
| const SDValue & | Op1, | |||
| const SDValue & | Op2, | |||
| const SDValue & | Op3 | |||
| ) | [inline, protected] |
InitOperands - Initialize the operands list of this with 4 operands.
Definition at line 1433 of file SelectionDAGNodes.h.
References llvm::SDUse::setInitial(), and llvm::SDUse::setUser().
| void llvm::SDNode::InitOperands | ( | SDUse * | Ops, | |
| const SDValue * | Vals, | |||
| unsigned | N | |||
| ) | [inline, protected] |
InitOperands - Initialize the operands list of this with N operands.
Definition at line 1448 of file SelectionDAGNodes.h.
References llvm::SDUse::setInitial(), and llvm::SDUse::setUser().
| void SDNode::DropOperands | ( | ) | [protected] |
DropOperands - Release the operands and set this node to have zero operands.
DropOperands - Release the operands and set this node to have zero operands.
Definition at line 4504 of file SelectionDAG.cpp.
References E, op_begin(), op_end(), and llvm::SDUse::set().
Referenced by llvm::HandleSDNode::~HandleSDNode().
friend class SelectionDAG [friend] |
Reimplemented in llvm::ConstantSDNode, llvm::ConstantFPSDNode, llvm::GlobalAddressSDNode, llvm::FrameIndexSDNode, llvm::JumpTableSDNode, llvm::ConstantPoolSDNode, llvm::BasicBlockSDNode, llvm::SrcValueSDNode, llvm::MemOperandSDNode, llvm::RegisterSDNode, llvm::DbgStopPointSDNode, llvm::LabelSDNode, llvm::ExternalSymbolSDNode, llvm::CondCodeSDNode, llvm::CvtRndSatSDNode, llvm::ARG_FLAGSSDNode, llvm::CallSDNode, llvm::VTSDNode, llvm::LoadSDNode, and llvm::StoreSDNode.
Definition at line 1113 of file SelectionDAGNodes.h.
friend struct ilist_traits< SDNode > [friend] |
Definition at line 1114 of file SelectionDAGNodes.h.
unsigned short llvm::SDNode::SubclassData [protected] |
SubclassData - This member is defined by this class, but is not used for anything. Subclasses can use it to hold whatever state they find useful. This field is initialized to zero by the ctor.
Definition at line 1087 of file SelectionDAGNodes.h.
Referenced by llvm::MemSDNode::MemSDNode().