LLVM API Documentation
#include <SelectionDAG.h>

SelectionDAG class - This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representation suitable for instruction selection. This DAG is constructed as the first step of instruction selection in order to allow implementation of machine specific optimizations and code simplifications.
The representation used by the SelectionDAG is a target-independent representation, which has some similarities to the GCC RTL representation, but is significantly more simple, powerful, and is a graph form instead of a linear form.
Definition at line 131 of file SelectionDAG.h.
| typedef ilist<SDNode>::const_iterator llvm::SelectionDAG::allnodes_const_iterator |
Definition at line 274 of file SelectionDAG.h.
| typedef ilist<SDNode>::iterator llvm::SelectionDAG::allnodes_iterator |
Definition at line 277 of file SelectionDAG.h.
| SelectionDAG::SelectionDAG | ( | const TargetMachine & | TM, |
| llvm::CodeGenOpt::Level | OL | ||
| ) | [explicit] |
Definition at line 875 of file SelectionDAG.cpp.
References llvm::ilist< NodeTy >::push_back().
| SelectionDAG::~SelectionDAG | ( | ) |
Definition at line 891 of file SelectionDAG.cpp.
| void SelectionDAG::AddDbgValue | ( | SDDbgValue * | DB, |
| SDNode * | SD, | ||
| bool | isParameter | ||
| ) |
AddDbgValue - Add a dbg_value SDNode. If SD is non-null that means the value is produced by SD.
Definition at line 5877 of file SelectionDAG.cpp.
References llvm::SDDbgInfo::add(), and llvm::SDNode::setHasDebugValue().
Referenced by llvm::SelectionDAGBuilder::resolveDanglingDebugInfo(), and TransferDbgValues().
| allnodes_const_iterator llvm::SelectionDAG::allnodes_begin | ( | ) | const [inline] |
Definition at line 275 of file SelectionDAG.h.
References llvm::iplist< NodeTy, Traits >::begin().
Referenced by AssignTopologicalOrder(), dump(), llvm::GraphTraits< SelectionDAG * >::nodes_begin(), RemoveDeadNodes(), and llvm::DAGTypeLegalizer::run().
| allnodes_iterator llvm::SelectionDAG::allnodes_begin | ( | ) | [inline] |
Definition at line 278 of file SelectionDAG.h.
References llvm::iplist< NodeTy, Traits >::begin().
| allnodes_const_iterator llvm::SelectionDAG::allnodes_end | ( | ) | const [inline] |
Definition at line 276 of file SelectionDAG.h.
References llvm::iplist< NodeTy, Traits >::end().
Referenced by AssignTopologicalOrder(), dump(), llvm::GraphTraits< SelectionDAG * >::nodes_end(), RemoveDeadNodes(), and llvm::DAGTypeLegalizer::run().
| allnodes_iterator llvm::SelectionDAG::allnodes_end | ( | ) | [inline] |
Definition at line 279 of file SelectionDAG.h.
References llvm::iplist< NodeTy, Traits >::end().
Definition at line 280 of file SelectionDAG.h.
References llvm::iplist< NodeTy, Traits >::size().
Referenced by AssignTopologicalOrder().
AssignOrdering - Assign an order to the SDNode.
Definition at line 5864 of file SelectionDAG.cpp.
References llvm::SDNodeOrdering::add().
Referenced by llvm::SelectionDAGBuilder::AssignOrderingToNode(), and llvm::NVPTXTargetLowering::LowerFormalArguments().
| unsigned SelectionDAG::AssignTopologicalOrder | ( | ) |
AssignTopologicalOrder - Topological-sort the AllNodes list and a assign a unique node id for each node in the DAG based on their topological order. Returns the number of nodes.
AssignTopologicalOrder - Assign a unique node id for each node in the DAG based on their topological order. It returns the maximum id and a vector of the SDNodes* in assigned order by reference.
Definition at line 5778 of file SelectionDAG.cpp.
References allnodes_begin(), allnodes_end(), allnodes_size(), llvm::iplist< NodeTy, Traits >::back(), llvm::checkForCycles(), llvm::dbgs(), llvm::SDNode::dumprFull(), llvm::iplist< NodeTy, Traits >::end(), llvm::ISD::EntryToken, llvm::iplist< NodeTy, Traits >::front(), llvm::SDNode::getNodeId(), llvm::SDNode::getNumOperands(), I, llvm::ilist< NodeTy >::insert(), llvm_unreachable, P, llvm::iplist< NodeTy, Traits >::remove(), llvm::SDNode::setNodeId(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().
| SDDbgInfo::DbgIterator llvm::SelectionDAG::ByvalParmDbgBegin | ( | ) | [inline] |
Definition at line 977 of file SelectionDAG.h.
References llvm::SDDbgInfo::ByvalParmDbgBegin().
Referenced by llvm::ScheduleDAGSDNodes::EmitSchedule().
| SDDbgInfo::DbgIterator llvm::SelectionDAG::ByvalParmDbgEnd | ( | ) | [inline] |
Definition at line 980 of file SelectionDAG.h.
References llvm::SDDbgInfo::ByvalParmDbgEnd().
Referenced by llvm::ScheduleDAGSDNodes::EmitSchedule().
| void SelectionDAG::clear | ( | ) |
clear - Clear state and free memory necessary to make this SelectionDAG ready to process a new block.
Definition at line 905 of file SelectionDAG.cpp.
References llvm::SDNodeOrdering::clear(), llvm::SDDbgInfo::clear(), llvm::FoldingSetImpl::clear(), llvm::StringMap< ValueTy, AllocatorTy >::clear(), getEntryNode(), llvm::ilist< NodeTy >::push_back(), and llvm::BumpPtrAllocator::Reset().
| void SelectionDAG::clearGraphAttrs | ( | ) |
clearGraphAttrs - Clear all previously defined node graph attributes. Intended to be used from a debugging tool (eg. gdb).
Definition at line 164 of file SelectionDAGPrinter.cpp.
References llvm::errs(), and NodeGraphAttrs.
| void SelectionDAG::Combine | ( | CombineLevel | Level, |
| AliasAnalysis & | AA, | ||
| CodeGenOpt::Level | OptLevel | ||
| ) |
Combine - This iterates over the nodes in the SelectionDAG, folding certain types of nodes together, or eliminating superfluous nodes. The Level argument controls whether Combine is allowed to produce nodes and types that are illegal on the target.
run - This is the main entry point to this class.
Definition at line 10330 of file DAGCombiner.cpp.
| void SelectionDAG::ComputeMaskedBits | ( | SDValue | Op, |
| APInt & | KnownZero, | ||
| APInt & | KnownOne, | ||
| unsigned | Depth = 0 |
||
| ) | const |
ComputeMaskedBits - Determine which of the bits specified in Mask are known to be either zero or one and return them in the KnownZero/KnownOne bitsets. This code only analyzes bits in Mask, in order to short-circuit processing. Targets can implement the computeMaskedBitsForTargetNode method in the TargetLowering class to allow target nodes to be understood.
ComputeMaskedBits - Determine which of the bits specified in Mask are known to be either zero or one and return them in the KnownZero/KnownOne bitsets. This code only analyzes bits in Mask, in order to short-circuit processing.
Definition at line 1681 of file SelectionDAG.cpp.
References llvm::APInt::abs(), llvm::ISD::ADD, ADD, llvm::ISD::ADDE, Align(), llvm::ISD::AND, llvm::ISD::ANY_EXTEND, llvm::ISD::AssertZext, llvm::ISD::BUILTIN_OP_END, llvm::APInt::clearAllBits(), llvm::TargetLowering::computeMaskedBitsForTargetNode(), llvm::computeMaskedBitsLoad(), llvm::ISD::Constant, llvm::APInt::countLeadingOnes(), llvm::APInt::countTrailingOnes(), llvm::ISD::CTLZ, llvm::ISD::CTLZ_ZERO_UNDEF, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::ISD::CTTZ_ZERO_UNDEF, llvm::ISD::FGETSIGN, llvm::ISD::FrameIndex, llvm::APInt::getBitsSet(), llvm::TargetLoweringBase::getBooleanContents(), llvm::APInt::getBoolValue(), llvm::APInt::getHighBitsSet(), llvm::APInt::getLowBitsSet(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::MemSDNode::getRanges(), llvm::SDValue::getResNo(), llvm::EVT::getScalarType(), llvm::APInt::getSignBit(), llvm::EVT::getSizeInBits(), llvm::SDValue::getValueType(), InferPtrAlignment(), llvm::APInt::intersects(), llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, llvm::APInt::isNegative(), llvm::APInt::isPowerOf2(), llvm::EVT::isVector(), llvm::ISD::isZEXTLoad(), llvm::A64DB::LD, llvm::ISD::LOAD, llvm::Log2_32(), llvm::APInt::lshr(), llvm::ISD::MUL, llvm::ISD::OR, llvm::ISD::SADDO, llvm::ISD::SELECT, llvm::ISD::SELECT_CC, llvm::ISD::SETCC, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SMULO, llvm::ISD::SRA, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SSUBO, llvm::ISD::SUB, llvm::ISD::TargetFrameIndex, llvm::APInt::trunc(), llvm::ISD::TRUNCATE, llvm::ISD::UADDO, llvm::ISD::UDIV, llvm::ISD::UMULO, llvm::ISD::UREM, llvm::ISD::USUBO, llvm::ISD::XOR, llvm::ISD::ZERO_EXTEND, llvm::TargetLoweringBase::ZeroOrOneBooleanContent, and llvm::APInt::zext().
Referenced by llvm::SelectionDAGISel::CheckOrMask(), llvm::SparcTargetLowering::computeMaskedBitsForTargetNode(), llvm::AMDGPUTargetLowering::computeMaskedBitsForTargetNode(), llvm::ARMTargetLowering::computeMaskedBitsForTargetNode(), ComputeNumSignBits(), FoldMaskAndShiftToScale(), InferPtrAlignment(), isTruncateOf(), isWordAligned(), MaskedValueIsZero(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegReg(), llvm::TargetLowering::SimplifyDemandedBits(), and ValueHasExactlyOneBitSet().
ComputeNumSignBits - Return the number of times the sign bit of the register is replicated into the other bits. We know that at least 1 bit is always equal to the sign bit (itself), but other cases can give us information. For example, immediately after an "SRA X, 2", we know that the top 3 bits are all equal to each other, so we return 3. Targets can implement the ComputeNumSignBitsForTarget method in the TargetLowering class to allow target nodes to be understood.
ComputeNumSignBits - Return the number of times the sign bit of the register is replicated into the other bits. We know that at least 1 bit is always equal to the sign bit (itself), but other cases can give us information. For example, immediately after an "SRA X, 2", we know that the top 3 bits are all equal to each other, so we return 3.
Definition at line 2127 of file SelectionDAG.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::ISD::BUILTIN_OP_END, llvm::CallingConv::C, ComputeMaskedBits(), llvm::TargetLowering::ComputeNumSignBitsForTargetNode(), llvm::ISD::Constant, llvm::APInt::countLeadingZeros(), llvm::APInt::getBitWidth(), llvm::TargetLoweringBase::getBooleanContents(), llvm::APInt::getNumSignBits(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getResNo(), llvm::EVT::getScalarType(), llvm::EVT::getSizeInBits(), llvm::SDValue::getValueType(), llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, llvm::EVT::isInteger(), llvm::APInt::isNegative(), llvm::EVT::isVector(), llvm::A64DB::LD, llvm::ISD::OR, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SADDO, llvm::ISD::SELECT, llvm::ISD::SETCC, llvm::ISD::SEXTLOAD, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SMULO, llvm::ISD::SRA, llvm::ISD::SSUBO, llvm::ISD::SUB, llvm::ISD::TRUNCATE, llvm::ISD::UADDO, llvm::ISD::UMULO, llvm::ISD::USUBO, llvm::ISD::XOR, llvm::TargetLoweringBase::ZeroOrNegativeOneBooleanContent, and llvm::ISD::ZEXTLOAD.
CreateStackTemporary - Create a stack temporary, suitable for holding the specified value type. If minAlign is specified, the slot size will have at least that alignment.
CreateStackTemporary - Create a stack temporary, suitable for holding the specified value type.
Definition at line 1530 of file SelectionDAG.cpp.
References llvm::MachineFrameInfo::CreateStackObject(), getContext(), llvm::TargetLoweringBase::getDataLayout(), getFrameIndex(), llvm::MachineFunction::getFrameInfo(), getMachineFunction(), llvm::TargetLoweringBase::getPointerTy(), llvm::DataLayout::getPrefTypeAlignment(), llvm::EVT::getStoreSize(), and llvm::EVT::getTypeForEVT().
Referenced by llvm::X86TargetLowering::BuildFILD(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), and PerformEXTRACT_VECTOR_ELTCombine().
CreateStackTemporary - Create a stack temporary suitable for holding either of the specified value types.
Definition at line 1543 of file SelectionDAG.cpp.
References Align(), llvm::MachineFrameInfo::CreateStackObject(), getContext(), llvm::TargetLoweringBase::getDataLayout(), getFrameIndex(), llvm::MachineFunction::getFrameInfo(), getMachineFunction(), llvm::TargetLoweringBase::getPointerTy(), llvm::DataLayout::getPrefTypeAlignment(), llvm::EVT::getStoreSizeInBits(), and llvm::EVT::getTypeForEVT().
| SDDbgInfo::DbgIterator llvm::SelectionDAG::DbgBegin | ( | ) | [inline] |
Definition at line 975 of file SelectionDAG.h.
References llvm::SDDbgInfo::DbgBegin().
Referenced by llvm::ScheduleDAGSDNodes::EmitSchedule().
| SDDbgInfo::DbgIterator llvm::SelectionDAG::DbgEnd | ( | ) | [inline] |
Definition at line 976 of file SelectionDAG.h.
References llvm::SDDbgInfo::DbgEnd().
Referenced by llvm::ScheduleDAGSDNodes::EmitSchedule().
| void SelectionDAG::DeleteNode | ( | SDNode * | N | ) |
DeleteNode - Remove the specified node from the system. This node must have no referrers.
Definition at line 610 of file SelectionDAG.cpp.
| void SelectionDAG::dump | ( | ) | const |
Definition at line 528 of file SelectionDAGDumper.cpp.
References allnodes_begin(), allnodes_end(), llvm::dbgs(), DumpNodes(), llvm::SDValue::getNode(), getRoot(), llvm::SDNode::hasOneUse(), I, N, and llvm::iplist< NodeTy, Traits >::size().
| static const fltSemantics& llvm::SelectionDAG::EVTToAPFloatSemantics | ( | EVT | VT | ) | [inline, static] |
Returns an APFloat semantics tag appropriate for the given type. If VT is a vector type, the element semantics are returned.
Definition at line 941 of file SelectionDAG.h.
References llvm::MVT::f128, llvm::MVT::f16, llvm::MVT::f32, llvm::MVT::f64, llvm::MVT::f80, llvm::EVT::getScalarType(), llvm::EVT::getSimpleVT(), llvm::APFloat::IEEEdouble, llvm::APFloat::IEEEhalf, llvm::APFloat::IEEEquad, llvm::APFloat::IEEEsingle, llvm_unreachable, llvm::APFloat::PPCDoubleDouble, llvm::MVT::ppcf128, llvm::MVT::SimpleTy, and llvm::APFloat::x87DoubleExtended.
Referenced by getConstantFP(), getMemsetValue(), getNode(), and llvm::ConstantFPSDNode::isValueValidForType().
| SDValue SelectionDAG::FoldConstantArithmetic | ( | unsigned | Opcode, |
| EVT | VT, | ||
| SDNode * | Cst1, | ||
| SDNode * | Cst2 | ||
| ) |
FoldConstantArithmetic -.
Definition at line 2687 of file SelectionDAG.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, llvm::APInt::ashr(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::ISD::BUILD_VECTOR, llvm::SmallVectorTemplateCommon< T >::data(), llvm::dyn_cast(), getConstant(), getNode(), llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), llvm::EVT::getScalarType(), llvm::SDNode::getValueType(), I, llvm::APInt::lshr(), llvm::ISD::MUL, llvm::ISD::OR, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::ISD::ROTL, llvm::APInt::rotl(), llvm::ISD::ROTR, llvm::APInt::rotr(), llvm::ISD::SDIV, llvm::APInt::sdiv(), llvm::ISD::SHL, llvm::SmallVectorTemplateCommon< T >::size(), llvm::ISD::SRA, llvm::ISD::SREM, llvm::APInt::srem(), llvm::ISD::SRL, llvm::ISD::SUB, llvm::ISD::UDIV, llvm::APInt::udiv(), llvm::ISD::UREM, llvm::APInt::urem(), llvm::NVPTX::PTXLdStInstCode::V2, and llvm::ISD::XOR.
Referenced by getNode().
FoldSetCC - Constant fold a setcc to true or false.
Definition at line 1557 of file SelectionDAG.cpp.
References llvm::APFloat::cmpEqual, llvm::APFloat::cmpGreaterThan, llvm::APFloat::cmpLessThan, llvm::APFloat::cmpUnordered, getConstant(), llvm::SDValue::getNode(), getSetCC(), llvm::ISD::getSetCCSwappedOperands(), getUNDEF(), llvm::SDValue::getValueType(), llvm::EVT::isInteger(), llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETFALSE, llvm::ISD::SETFALSE2, 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::SETTRUE, llvm::ISD::SETTRUE2, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, llvm::ISD::SETUNE, llvm::ISD::SETUO, llvm::APInt::sge(), llvm::APInt::sgt(), llvm::APInt::sle(), llvm::APInt::slt(), llvm::APInt::uge(), llvm::APInt::ugt(), llvm::APInt::ule(), and llvm::APInt::ult().
Referenced by getNode(), and llvm::TargetLowering::SimplifySetCC().
getAnyExtOrTrunc - Convert Op, which must be of integer type, to the integer type VT, by either any-extending or truncating it.
Definition at line 925 of file SelectionDAG.cpp.
References llvm::ISD::ANY_EXTEND, llvm::EVT::bitsGT(), getNode(), llvm::SDValue::getValueType(), and llvm::ISD::TRUNCATE.
Referenced by getNode().
| SDValue SelectionDAG::getAtomic | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | MemVT, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| SDValue | Cmp, | ||
| SDValue | Swp, | ||
| MachinePointerInfo | PtrInfo, | ||
| unsigned | Alignment, | ||
| AtomicOrdering | Ordering, | ||
| SynchronizationScope | SynchScope | ||
| ) |
getAtomic - Gets a node for an atomic op, produces result and chain and takes 3 operands
Definition at line 4074 of file SelectionDAG.cpp.
References llvm::ISD::ATOMIC_LOAD, llvm::ISD::ATOMIC_STORE, getMachineFunction(), llvm::MachineFunction::getMachineMemOperand(), llvm::EVT::getStoreSize(), llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MOStore, and llvm::MachineMemOperand::MOVolatile.
Referenced by getAtomic(), LowerATOMIC_STORE(), LowerLOAD_SUB(), and ReplaceATOMIC_LOAD().
| SDValue SelectionDAG::getAtomic | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | MemVT, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| SDValue | Cmp, | ||
| SDValue | Swp, | ||
| MachineMemOperand * | MMO, | ||
| AtomicOrdering | Ordering, | ||
| SynchronizationScope | SynchScope | ||
| ) |
Definition at line 4102 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::ISD::ATOMIC_CMP_SWAP, llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::MachinePointerInfo::getAddrSpace(), llvm::MachineMemOperand::getPointerInfo(), llvm::EVT::getRawBits(), llvm::SDValue::getValueType(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::MVT::Other, and llvm::ilist< NodeTy >::push_back().
| SDValue SelectionDAG::getAtomic | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | MemVT, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| SDValue | Val, | ||
| const Value * | PtrVal, | ||
| unsigned | Alignment, | ||
| AtomicOrdering | Ordering, | ||
| SynchronizationScope | SynchScope | ||
| ) |
getAtomic - Gets a node for an atomic op, produces result (if relevant) and chain and takes 2 operands.
Definition at line 4132 of file SelectionDAG.cpp.
References llvm::ISD::ATOMIC_LOAD, llvm::ISD::ATOMIC_STORE, getAtomic(), getMachineFunction(), llvm::MachineFunction::getMachineMemOperand(), llvm::EVT::getStoreSize(), llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MOStore, and llvm::MachineMemOperand::MOVolatile.
| SDValue SelectionDAG::getAtomic | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | MemVT, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| SDValue | Val, | ||
| MachineMemOperand * | MMO, | ||
| AtomicOrdering | Ordering, | ||
| SynchronizationScope | SynchScope | ||
| ) |
Definition at line 4163 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), 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_STORE, llvm::ISD::ATOMIC_SWAP, llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::MachinePointerInfo::getAddrSpace(), llvm::MachineMemOperand::getPointerInfo(), llvm::EVT::getRawBits(), llvm::SDValue::getValueType(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::MVT::Other, and llvm::ilist< NodeTy >::push_back().
| SDValue SelectionDAG::getAtomic | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | MemVT, | ||
| EVT | VT, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| const Value * | PtrVal, | ||
| unsigned | Alignment, | ||
| AtomicOrdering | Ordering, | ||
| SynchronizationScope | SynchScope | ||
| ) |
getAtomic - Gets a node for an atomic op, produces result and chain and takes 1 operand.
Definition at line 4205 of file SelectionDAG.cpp.
References llvm::ISD::ATOMIC_LOAD, llvm::ISD::ATOMIC_STORE, getAtomic(), getMachineFunction(), llvm::MachineFunction::getMachineMemOperand(), llvm::EVT::getStoreSize(), llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MOStore, and llvm::MachineMemOperand::MOVolatile.
| SDValue SelectionDAG::getAtomic | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | MemVT, | ||
| EVT | VT, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| MachineMemOperand * | MMO, | ||
| AtomicOrdering | Ordering, | ||
| SynchronizationScope | SynchScope | ||
| ) |
Definition at line 4236 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::ISD::ATOMIC_LOAD, llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::MachinePointerInfo::getAddrSpace(), llvm::MachineMemOperand::getPointerInfo(), llvm::EVT::getRawBits(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::MVT::Other, and llvm::ilist< NodeTy >::push_back().
| SDValue SelectionDAG::getBasicBlock | ( | MachineBasicBlock * | MBB | ) |
Definition at line 1228 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::ISD::BasicBlock, llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::MVT::Other, and llvm::ilist< NodeTy >::push_back().
Referenced by AddNodeIDCustom(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::SelectionDAGBuilder::visitBitTestHeader(), llvm::SelectionDAGBuilder::visitJumpTableHeader(), and llvm::SelectionDAGBuilder::visitSwitchCase().
| SDValue llvm::SelectionDAG::getBasicBlock | ( | MachineBasicBlock * | MBB, |
| DebugLoc | dl | ||
| ) |
| SDValue SelectionDAG::getBlockAddress | ( | const BlockAddress * | BA, |
| EVT | VT, | ||
| int64_t | Offset = 0, |
||
| bool | isTarget = false, |
||
| unsigned char | TargetFlags = 0 |
||
| ) |
Definition at line 1460 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::ISD::BlockAddress, llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ilist< NodeTy >::push_back(), and llvm::ISD::TargetBlockAddress.
Referenced by getTargetBlockAddress(), and llvm::SelectionDAGBuilder::getValueImpl().
| SDValue llvm::SelectionDAG::getCALLSEQ_END | ( | SDValue | Chain, |
| SDValue | Op1, | ||
| SDValue | Op2, | ||
| SDValue | InGlue | ||
| ) | [inline] |
getCALLSEQ_END - Return a new CALLSEQ_END node, which always must have a glue result (to ensure it's not CSE'd). CALLSEQ_END does not have a useful DebugLoc.
Definition at line 530 of file SelectionDAG.h.
References llvm::ISD::CALLSEQ_END, llvm::SDValue::getNode(), getNode(), getVTList(), llvm::MVT::Glue, llvm::MVT::Other, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and llvm::SmallVectorTemplateCommon< T >::size().
Referenced by llvm::HexagonTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), and PrepareTailCall().
getCALLSEQ_START - Return a new CALLSEQ_START node, which always must have a glue result (to ensure it's not CSE'd). CALLSEQ_START does not have a useful DebugLoc.
Definition at line 521 of file SelectionDAG.h.
References llvm::ISD::CALLSEQ_START, getNode(), getVTList(), llvm::MVT::Glue, and llvm::MVT::Other.
Referenced by llvm::HexagonTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), and llvm::SparcTargetLowering::LowerCall_64().
| SDValue SelectionDAG::getCondCode | ( | ISD::CondCode | Cond | ) |
Definition at line 1275 of file SelectionDAG.cpp.
References llvm::ilist< NodeTy >::push_back().
Referenced by llvm::AArch64TargetLowering::getSelectableIntSetCC(), getSelectCC(), getSetCC(), llvm::AArch64TargetLowering::LowerBR_CC(), llvm::AArch64TargetLowering::LowerBRCOND(), llvm::AArch64TargetLowering::LowerSELECT(), llvm::AArch64TargetLowering::LowerSELECT_CC(), llvm::AArch64TargetLowering::LowerSETCC(), and llvm::TargetLowering::softenSetCCOperands().
Definition at line 964 of file SelectionDAG.cpp.
References llvm::EVT::getScalarType(), and llvm::EVT::getSizeInBits().
Referenced by AddCombineToVPADDL(), adjustSubwordCmp(), bitcastf32Toi32(), llvm::TargetLowering::BuildExactSDIV(), llvm::X86TargetLowering::BuildFILD(), BuildGetId(), BuildIntrinsicOp(), llvm::TargetLowering::BuildSDIV(), BuildSplatI(), llvm::TargetLowering::BuildUDIV(), CMPEQCombine(), CreateCopyOfByValArgument(), createFPCmp(), createLoadLR(), createStoreLR(), EmitCMP(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), Expand64BitShift(), ExpandBITCAST(), expandExp(), expandExp2(), expandf64Toi32(), expandPow(), ExpandUnalignedLoad(), ExpandUnalignedStore(), extractLOHI(), FoldConstantArithmetic(), FoldMaskAndShiftToExtract(), FoldMaskAndShiftToScale(), FoldMaskedShiftToScaledMask(), FoldSetCC(), GeneratePerfectShuffle(), getARMIndexedAddressParts(), getConstant(), getCopyFromParts(), GetExponent(), getIntPtrConstant(), getLSBForBFI(), getMemBasePlusOffset(), getMemsetStringVal(), getMemsetValue(), getNode(), getNOT(), llvm::AArch64TargetLowering::getSelectableIntSetCC(), GetSignificand(), getT2IndexedAddressParts(), getTargetConstant(), getTargetShuffleNode(), getTargetVShiftNode(), llvm::SelectionDAGBuilder::getValueImpl(), getVShift(), getZeroExtendInReg(), initAccumulator(), InsertFenceForAtomic(), isBLACompatibleAddress(), isConditionalZeroOrAllOnes(), IsSingleInstrConstant(), LowerATOMIC_FENCE(), llvm::AArch64TargetLowering::LowerBlockAddress(), llvm::AArch64TargetLowering::LowerBR_CC(), LowerBR_CC(), llvm::HexagonTargetLowering::LowerBR_JT(), llvm::AArch64TargetLowering::LowerBRCOND(), LowerBuildVectorv16i8(), llvm::HexagonTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SelectionDAGBuilder::LowerCallTo(), LowerCTLZ(), LowerCTLZ_ZERO_UNDEF(), LowerCTTZ(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), LowerDYNAMIC_STACKALLOC(), lowerFABS32(), lowerFABS64(), lowerFCOPYSIGN32(), lowerFCOPYSIGN64(), LowerFGETSIGN(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::AArch64TargetLowering::LowerGlobalAddressELFLarge(), llvm::AArch64TargetLowering::LowerGlobalAddressELFSmall(), llvm::AArch64TargetLowering::LowerGlobalTLSAddress(), LowerINTRINSIC_W_CHAIN(), LowerINTRINSIC_WO_CHAIN(), llvm::AMDGPUTargetLowering::LowerIntrinsicIABS(), llvm::AArch64TargetLowering::LowerJumpTable(), LowerLabelRef(), LowerLOAD_SUB(), LowerMemOpCallTo(), LowerMUL(), llvm::R600TargetLowering::LowerOperation(), LowerPREFETCH(), LowerREADCYCLECOUNTER(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::SparcTargetLowering::LowerReturn_64(), llvm::MSP430TargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), LowerReverse_VECTOR_SHUFFLEv16i8_v8i16(), LowerScalarImmediateShift(), LowerSDIV_v4i16(), LowerSDIV_v4i8(), llvm::AArch64TargetLowering::LowerSELECT(), llvm::AArch64TargetLowering::LowerSELECT_CC(), LowerSELECT_CC(), llvm::MSP430TargetLowering::LowerSETCC(), llvm::AArch64TargetLowering::LowerSETCC(), LowerShift(), LowerUDIV(), llvm::AArch64TargetLowering::LowerVACOPY(), llvm::AArch64TargetLowering::LowerVASTART(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLEtoBlend(), LowerVECTOR_SHUFFLEv16i8(), LowerVECTOR_SHUFFLEv32i8(), LowerVECTOR_SHUFFLEv8i16(), LowerVECTOR_SHUFFLEv8i8(), LowerVSETCC(), LowerXALUO(), llvm::SparcTargetLowering::makeAddress(), MaterializeSETB(), OptimizeConditionalInDecrement(), PerformADCCombine(), performANDCombine(), PerformANDCombine(), PerformBrCondCombine(), PerformCMOVCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDSPShiftCombine(), PerformEXTRACT_VECTOR_ELTCombine(), performIntegerAbsCombine(), PerformIntrinsicCombine(), PerformISDSETCCCombine(), PerformLOADCombine(), PerformMULCombine(), PerformMulCombine(), performORCombine(), PerformORCombine(), PerformSELECTCombine(), PerformSETCCCombine(), PerformShiftCombine(), PerformSHLCombine(), PerformSRACombine(), PerformSTORECombine(), PerformSubCombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformZExtCombine(), PrepareCall(), ReplaceATOMIC_LOAD(), llvm::X86TargetLowering::ReplaceNodeResults(), ReplaceREADCYCLECOUNTER(), llvm::AArch64TargetLowering::SaveVarArgRegisters(), llvm::SelectionDAGISel::SelectCodeCommon(), selectMADD(), selectMSUB(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedConstant(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), SkipExtensionForVMULL(), llvm::TargetLowering::softenSetCCOperands(), TranslateX86CC(), tryCombineToBFI(), tryCombineToEXTR(), tryCombineToLargerBFI(), tryFoldToZero(), UnrollVectorOp(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::SelectionDAGBuilder::visitBitTestHeader(), llvm::SelectionDAGBuilder::visitJumpTableHeader(), llvm::SelectionDAGBuilder::visitSwitchCase(), and WidenMaskArithmetic().
Definition at line 972 of file SelectionDAG.cpp.
References llvm::ConstantInt::get(), and getConstant().
| SDValue SelectionDAG::getConstant | ( | const ConstantInt & | Val, |
| EVT | VT, | ||
| bool | isTarget = false |
||
| ) |
Definition at line 976 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::SmallVectorImpl< T >::assign(), llvm::ISD::BUILD_VECTOR, llvm::ISD::Constant, llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::ConstantInt::get(), llvm::ConstantInt::getBitWidth(), getContext(), getNode(), llvm::EVT::getScalarType(), llvm::TargetLoweringBase::getTypeAction(), llvm::TargetLoweringBase::getTypeToTransformTo(), llvm::ConstantInt::getValue(), llvm::EVT::getVectorNumElements(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::EVT::isInteger(), llvm::EVT::isVector(), llvm::ilist< NodeTy >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::ISD::TargetConstant, llvm::TargetLoweringBase::TypePromoteInteger, and llvm::APInt::zext().
Definition at line 1063 of file SelectionDAG.cpp.
References llvm::lltok::APFloat, llvm::APFloat::convert(), EVTToAPFloatSemantics(), llvm::MVT::f128, llvm::MVT::f16, llvm::MVT::f32, llvm::MVT::f64, llvm::MVT::f80, llvm::EVT::getScalarType(), llvm_unreachable, llvm::MVT::ppcf128, and llvm::APFloat::rmNearestTiesToEven.
Referenced by llvm::X86TargetLowering::BuildFILD(), ExpandPowI(), getConstantFP(), getF32Constant(), getMemsetStringVal(), getMemsetValue(), GetNegatedExpression(), getNode(), getTargetConstantFP(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::AMDGPUTargetLowering::LowerIntrinsicLRP(), llvm::X86TargetLowering::ReplaceNodeResults(), and llvm::SelectionDAGISel::SelectCodeCommon().
Definition at line 1025 of file SelectionDAG.cpp.
References llvm::ConstantFP::get(), getConstantFP(), and getContext().
| SDValue SelectionDAG::getConstantFP | ( | const ConstantFP & | CF, |
| EVT | VT, | ||
| bool | isTarget = false |
||
| ) |
Definition at line 1029 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::SmallVectorImpl< T >::assign(), llvm::ISD::BUILD_VECTOR, llvm::ISD::ConstantFP, llvm::FoldingSet< T >::FindNodeOrInsertPos(), getNode(), llvm::EVT::getScalarType(), llvm::EVT::getVectorNumElements(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::EVT::isFloatingPoint(), llvm::EVT::isVector(), llvm::ilist< NodeTy >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::ISD::TargetConstantFP.
| SDValue SelectionDAG::getConstantPool | ( | const Constant * | C, |
| EVT | VT, | ||
| unsigned | Align = 0, |
||
| int | Offs = 0, |
||
| bool | isT = false, |
||
| unsigned char | TargetFlags = 0 |
||
| ) |
Definition at line 1157 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::ISD::ConstantPool, llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::TargetLoweringBase::getDataLayout(), llvm::DataLayout::getPrefTypeAlignment(), llvm::Value::getType(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ilist< NodeTy >::push_back(), and llvm::ISD::TargetConstantPool.
Referenced by llvm::X86TargetLowering::BuildFILD(), and getTargetConstantPool().
| SDValue SelectionDAG::getConstantPool | ( | MachineConstantPoolValue * | C, |
| EVT | VT, | ||
| unsigned | Align = 0, |
||
| int | Offs = 0, |
||
| bool | isT = false, |
||
| unsigned char | TargetFlags = 0 |
||
| ) |
Definition at line 1184 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::MachineConstantPoolValue::addSelectionDAGCSEId(), llvm::ISD::ConstantPool, llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::TargetLoweringBase::getDataLayout(), llvm::DataLayout::getPrefTypeAlignment(), llvm::MachineConstantPoolValue::getType(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ilist< NodeTy >::push_back(), and llvm::ISD::TargetConstantPool.
| LLVMContext* llvm::SelectionDAG::getContext | ( | ) | const [inline] |
Definition at line 243 of file SelectionDAG.h.
Referenced by llvm::X86TargetLowering::BuildFILD(), BuildVectorFromScalar(), canFoldInAddressingMode(), CreateStackTemporary(), llvm::SelectionDAGBuilder::EmitBranchForMergedCondition(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemset(), ExpandUnalignedLoad(), ExpandUnalignedStore(), ExpandVectorExtension(), Extract128BitVector(), getConstant(), getConstantFP(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), getMemcpy(), getMemcpyLoadsAndStores(), getMemmove(), getMemmoveLoadsAndStores(), getMemset(), getMemsetStores(), getMemsetStringVal(), GetRegistersForValue(), llvm::SelectionDAGBuilder::getValue(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::SelectionDAGBuilder::init(), llvm::AArch64TargetLowering::IsEligibleForTailCallOptimization(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), llvm::HexagonTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::HexagonTargetLowering::LowerCallResult(), llvm::AArch64TargetLowering::LowerCallResult(), llvm::AArch64TargetLowering::LowerF128ToCall(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::HexagonTargetLowering::LowerReturn(), llvm::AArch64TargetLowering::LowerReturn(), llvm::SystemZTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::SparcTargetLowering::LowerReturn_64(), LowerSCALAR_TO_VECTOR(), LowerToTLSExecModel(), LowerVECTOR_SHUFFLE(), llvm::TargetLowering::makeLibCall(), PerformBUILD_VECTORCombine(), PerformInsertEltCombine(), PerformLOADCombine(), PerformSTORECombine(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::TargetLowering::SimplifySetCC(), llvm::TargetLowering::softenSetCCOperands(), UnrollVectorOp(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::SelectionDAGBuilder::visitBitTestHeader(), llvm::SelectionDAGBuilder::visitJumpTableHeader(), llvm::SelectionDAGBuilder::visitSwitchCase(), and XFormVExtractWithShuffleIntoLoad().
| SDValue SelectionDAG::getConvertRndSat | ( | EVT | VT, |
| DebugLoc | dl, | ||
| SDValue | Val, | ||
| SDValue | DTy, | ||
| SDValue | STy, | ||
| SDValue | Rnd, | ||
| SDValue | Sat, | ||
| ISD::CvtCode | Code | ||
| ) |
Returns the ConvertRndSat Note: Avoid using this node because it may disappear in the future and most targets don't support it.
Definition at line 1392 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::ISD::CONVERT_RNDSAT, llvm::ISD::CVT_FF, llvm::ISD::CVT_SS, llvm::ISD::CVT_UU, llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), and llvm::ilist< NodeTy >::push_back().
| SDValue llvm::SelectionDAG::getCopyFromReg | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| unsigned | Reg, | ||
| EVT | VT | ||
| ) | [inline] |
Definition at line 468 of file SelectionDAG.h.
References llvm::ISD::CopyFromReg, getNode(), getRegister(), getVTList(), and llvm::MVT::Other.
Referenced by llvm::X86TargetLowering::BuildFILD(), GetTLSADDR(), llvm::HexagonTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::HexagonTargetLowering::LowerCallResult(), llvm::AArch64TargetLowering::LowerCallResult(), LowerCMP_SWAP(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), LowerDYNAMIC_STACKALLOC(), llvm::SITargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::MSP430TargetLowering::LowerFRAMEADDR(), llvm::HexagonTargetLowering::LowerFRAMEADDR(), LowerFRAMEADDR(), LowerINTRINSIC_W_CHAIN(), llvm::R600TargetLowering::LowerOperation(), LowerREADCYCLECOUNTER(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::HexagonTargetLowering::LowerRETURNADDR(), LowerRETURNADDR(), llvm::MSP430TargetLowering::LowerSETCC(), llvm::AArch64TargetLowering::LowerTLSDescCall(), performDivRemCombine(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::AArch64TargetLowering::SaveVarArgRegisters(), llvm::SelectionDAGBuilder::visitBitTestCase(), and llvm::SelectionDAGBuilder::visitJumpTable().
| SDValue llvm::SelectionDAG::getCopyFromReg | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| unsigned | Reg, | ||
| EVT | VT, | ||
| SDValue | Glue | ||
| ) | [inline] |
Definition at line 477 of file SelectionDAG.h.
References llvm::ISD::CopyFromReg, llvm::SDValue::getNode(), getNode(), getRegister(), getVTList(), llvm::MVT::Glue, and llvm::MVT::Other.
| SDValue llvm::SelectionDAG::getCopyToReg | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| unsigned | Reg, | ||
| SDValue | N | ||
| ) | [inline] |
Definition at line 445 of file SelectionDAG.h.
References llvm::ISD::CopyToReg, getNode(), getRegister(), llvm::SDValue::getValueType(), and llvm::MVT::Other.
Referenced by llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::MipsTargetLowering::getOpndList(), llvm::HexagonTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), LowerCMP_SWAP(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), LowerDYNAMIC_STACKALLOC(), llvm::HexagonTargetLowering::LowerEH_RETURN(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerINTRINSIC_W_CHAIN(), llvm::R600TargetLowering::LowerOperation(), llvm::HexagonTargetLowering::LowerReturn(), llvm::AArch64TargetLowering::LowerReturn(), llvm::SystemZTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::SparcTargetLowering::LowerReturn_64(), llvm::AArch64TargetLowering::LowerTLSDescCall(), LowerToTLSGeneralDynamicModel32(), LowerToTLSLocalDynamicModel(), PrepareCall(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::SelectionDAGBuilder::visitBitTestHeader(), and llvm::SelectionDAGBuilder::visitJumpTableHeader().
| SDValue llvm::SelectionDAG::getCopyToReg | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| unsigned | Reg, | ||
| SDValue | N, | ||
| SDValue | Glue | ||
| ) | [inline] |
Definition at line 453 of file SelectionDAG.h.
References llvm::ISD::CopyToReg, llvm::SDValue::getNode(), getNode(), getRegister(), llvm::SDValue::getValueType(), getVTList(), llvm::MVT::Glue, and llvm::MVT::Other.
| SDValue llvm::SelectionDAG::getCopyToReg | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| SDValue | Reg, | ||
| SDValue | N, | ||
| SDValue | Glue | ||
| ) | [inline] |
Definition at line 461 of file SelectionDAG.h.
References llvm::ISD::CopyToReg, llvm::SDValue::getNode(), getNode(), getVTList(), llvm::MVT::Glue, and llvm::MVT::Other.
| SDDbgValue * SelectionDAG::getDbgValue | ( | MDNode * | MDPtr, |
| SDNode * | N, | ||
| unsigned | R, | ||
| uint64_t | Off, | ||
| DebugLoc | DL, | ||
| unsigned | O | ||
| ) |
getDbgValue - Creates a SDDbgValue node.
Definition at line 5465 of file SelectionDAG.cpp.
Referenced by llvm::SelectionDAGBuilder::resolveDanglingDebugInfo(), and TransferDbgValues().
| SDDbgValue * SelectionDAG::getDbgValue | ( | MDNode * | MDPtr, |
| const Value * | C, | ||
| uint64_t | Off, | ||
| DebugLoc | DL, | ||
| unsigned | O | ||
| ) |
Definition at line 5471 of file SelectionDAG.cpp.
| SDDbgValue * SelectionDAG::getDbgValue | ( | MDNode * | MDPtr, |
| unsigned | FI, | ||
| uint64_t | Off, | ||
| DebugLoc | DL, | ||
| unsigned | O | ||
| ) |
Definition at line 5477 of file SelectionDAG.cpp.
| ArrayRef<SDDbgValue*> llvm::SelectionDAG::GetDbgValues | ( | const SDNode * | SD | ) | [inline] |
GetDbgValues - Get the debug values which reference the given SDNode.
Definition at line 964 of file SelectionDAG.h.
References llvm::SDDbgInfo::getSDDbgValues().
Referenced by ProcessSDDbgValues(), and TransferDbgValues().
Definition at line 1444 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::ISD::EH_LABEL, llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::MVT::Other, and llvm::ilist< NodeTy >::push_back().
Referenced by llvm::SelectionDAGBuilder::LowerCallTo().
| SDValue llvm::SelectionDAG::getEntryNode | ( | ) | const [inline] |
getEntryNode - Return the token chain corresponding to the entry of the function.
Definition at line 290 of file SelectionDAG.h.
Referenced by llvm::AArch64TargetLowering::addTokenForArgument(), llvm::X86TargetLowering::BuildFILD(), clear(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::MipsTargetLowering::getAddrGlobal(), llvm::MipsTargetLowering::getAddrGlobalLargeGOT(), llvm::MipsTargetLowering::getAddrLocal(), getFLUSHW(), getMemCmpLoad(), getStackArgumentTokenFactor(), llvm::SelectionDAGBuilder::getValue(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::SparcTargetLowering::LowerCall_32(), llvm::AArch64TargetLowering::LowerF128ToCall(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::MSP430TargetLowering::LowerFRAMEADDR(), llvm::HexagonTargetLowering::LowerFRAMEADDR(), LowerFRAMEADDR(), llvm::AArch64TargetLowering::LowerGlobalAddressELFSmall(), llvm::AArch64TargetLowering::LowerGlobalTLSAddress(), LowerINTRINSIC_W_CHAIN(), llvm::R600TargetLowering::LowerOperation(), llvm::MSP430TargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), LowerRETURNADDR(), llvm::MSP430TargetLowering::LowerSETCC(), llvm::AArch64TargetLowering::LowerTLSDescCall(), LowerToTLSExecModel(), LowerToTLSGeneralDynamicModel32(), LowerToTLSGeneralDynamicModel64(), LowerToTLSLocalDynamicModel(), llvm::SparcTargetLowering::makeAddress(), llvm::TargetLowering::makeLibCall(), performDivRemCombine(), PerformEXTRACT_VECTOR_ELTCombine(), ReplaceREADCYCLECOUNTER(), and llvm::SelectionDAGISel::SelectCodeCommon().
Definition at line 1256 of file SelectionDAG.cpp.
References llvm::ilist< NodeTy >::push_back().
Referenced by llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemset(), getMemcpy(), getMemmove(), getMemset(), llvm::AArch64TargetLowering::LowerF128ToCall(), and llvm::TargetLowering::makeLibCall().
| SDValue SelectionDAG::getExtLoad | ( | ISD::LoadExtType | ExtType, |
| DebugLoc | dl, | ||
| EVT | VT, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| MachinePointerInfo | PtrInfo, | ||
| EVT | MemVT, | ||
| bool | isVolatile, | ||
| bool | isNonTemporal, | ||
| unsigned | Alignment, | ||
| const MDNode * | TBAAInfo = 0 |
||
| ) |
Definition at line 4475 of file SelectionDAG.cpp.
References getLoad(), getUNDEF(), llvm::SDValue::getValueType(), llvm::RegState::Undef, and llvm::ISD::UNINDEXED.
Referenced by adjustSubwordCmp(), llvm::X86TargetLowering::BuildFILD(), ExpandUnalignedLoad(), ExpandUnalignedStore(), getMemcpyLoadsAndStores(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), and SkipLoadExtensionForVMULL().
Definition at line 1122 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::ISD::FrameIndex, getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ilist< NodeTy >::push_back(), and llvm::ISD::TargetFrameIndex.
Referenced by llvm::X86TargetLowering::BuildFILD(), CalculateTailCallArgDest(), CreateStackTemporary(), EmitTailCallStoreFPAndRetAddr(), EmitTailCallStoreRetAddr(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), getTargetFrameIndex(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::AArch64TargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::MSP430TargetLowering::LowerVASTART(), llvm::HexagonTargetLowering::LowerVASTART(), llvm::AArch64TargetLowering::LowerVASTART(), LowerVASTART(), and llvm::AArch64TargetLowering::SaveVarArgRegisters().
getGLOBAL_OFFSET_TABLE - Return a GLOBAL_OFFSET_TABLE node. This does not have a useful DebugLoc.
Definition at line 549 of file SelectionDAG.h.
References getNode(), and llvm::ISD::GLOBAL_OFFSET_TABLE.
Referenced by llvm::TargetLowering::getPICJumpTableRelocBase().
| SDValue SelectionDAG::getGlobalAddress | ( | const GlobalValue * | GV, |
| DebugLoc | DL, | ||
| EVT | VT, | ||
| int64_t | offset = 0, |
||
| bool | isTargetGA = false, |
||
| unsigned char | TargetFlags = 0 |
||
| ) |
Definition at line 1080 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::dyn_cast(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::PointerType::getAddressSpace(), llvm::TargetLoweringBase::getPointerTy(), llvm::MVT::getSizeInBits(), llvm::GlobalValue::getType(), getVTList(), llvm::ISD::GlobalAddress, llvm::ISD::GlobalTLSAddress, llvm::FoldingSetImpl::InsertNode(), llvm::GlobalVariable::isThreadLocal(), llvm::ilist< NodeTy >::push_back(), llvm::SignExtend64(), llvm::ISD::TargetGlobalAddress, and llvm::ISD::TargetGlobalTLSAddress.
Referenced by getTargetGlobalAddress(), and llvm::SelectionDAGBuilder::getValueImpl().
| const std::string SelectionDAG::getGraphAttrs | ( | const SDNode * | N | ) | const |
getGraphAttrs - Get graph attributes for a node. (eg. "color=red".) Used from getNodeAttributes.
Definition at line 188 of file SelectionDAGPrinter.cpp.
References llvm::errs(), I, and NodeGraphAttrs.
Referenced by llvm::DOTGraphTraits< SelectionDAG * >::getNodeAttributes().
| SDValue SelectionDAG::getIndexedLoad | ( | SDValue | OrigLoad, |
| DebugLoc | dl, | ||
| SDValue | Base, | ||
| SDValue | Offset, | ||
| ISD::MemIndexedMode | AM | ||
| ) |
Definition at line 4488 of file SelectionDAG.cpp.
References llvm::MemSDNode::getAlignment(), llvm::MemSDNode::getChain(), llvm::LoadSDNode::getExtensionType(), getLoad(), llvm::MemSDNode::getMemoryVT(), llvm::LoadSDNode::getOffset(), llvm::SDValue::getOpcode(), llvm::MemSDNode::getPointerInfo(), llvm::SDValue::getValueType(), llvm::MemSDNode::isNonTemporal(), llvm::MemSDNode::isVolatile(), llvm::A64DB::LD, and llvm::ISD::UNDEF.
| SDValue SelectionDAG::getIndexedStore | ( | SDValue | OrigStoe, |
| DebugLoc | dl, | ||
| SDValue | Base, | ||
| SDValue | Offset, | ||
| ISD::MemIndexedMode | AM | ||
| ) |
Definition at line 4621 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::MachinePointerInfo::getAddrSpace(), llvm::MemSDNode::getChain(), llvm::MemSDNode::getMemOperand(), llvm::MemSDNode::getMemoryVT(), llvm::StoreSDNode::getOffset(), llvm::SDValue::getOpcode(), llvm::MemSDNode::getPointerInfo(), llvm::EVT::getRawBits(), llvm::MemSDNode::getRawSubclassData(), llvm::StoreSDNode::getValue(), llvm::SDValue::getValueType(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::StoreSDNode::isTruncatingStore(), llvm::MVT::Other, llvm::ilist< NodeTy >::push_back(), llvm::A64DB::ST, llvm::ISD::STORE, and llvm::ISD::UNDEF.
Definition at line 1020 of file SelectionDAG.cpp.
References getConstant(), and llvm::TargetLoweringBase::getPointerTy().
Referenced by llvm::X86TargetLowering::BuildFILD(), BuildVectorFromScalar(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), ExpandVectorExtension(), Extract128BitVector(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), Insert128BitVector(), LowerBuildVectorv16i8(), LowerBuildVectorv8i16(), llvm::HexagonTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), LowerCONCAT_VECTORS(), lowerCTPOP16BitElements(), lowerCTPOP32BitElements(), llvm::HexagonTargetLowering::LowerEH_RETURN(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), LowerFRAMEADDR(), LowerINSERT_VECTOR_ELT_SSE4(), LowerINTRINSIC_W_CHAIN(), llvm::NVPTXTargetLowering::LowerReturn(), LowerRETURNADDR(), LowerScalarVariableShift(), LowerSDIV(), LowerToTLSExecModel(), LowerUDIV(), LowerVAARG(), LowerVACOPY(), LowerVASTART(), LowerVECTOR_SHUFFLE_256(), LowerVECTOR_SHUFFLEv16i8(), LowerVECTOR_SHUFFLEv8i16(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSTORECombine(), PrepareCall(), PrepareTailCall(), ReplaceATOMIC_BINARY_64(), ReplaceATOMIC_OP_64(), ReplaceLoadVector(), and llvm::PPCTargetLowering::ReplaceNodeResults().
| SDValue SelectionDAG::getJumpTable | ( | int | JTI, |
| EVT | VT, | ||
| bool | isTarget = false, |
||
| unsigned char | TargetFlags = 0 |
||
| ) |
Definition at line 1137 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ISD::JumpTable, llvm::ilist< NodeTy >::push_back(), and llvm::ISD::TargetJumpTable.
Referenced by getTargetJumpTable(), and llvm::SelectionDAGBuilder::visitJumpTable().
| SDValue SelectionDAG::getLoad | ( | EVT | VT, |
| DebugLoc | dl, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| MachinePointerInfo | PtrInfo, | ||
| bool | isVolatile, | ||
| bool | isNonTemporal, | ||
| bool | isInvariant, | ||
| unsigned | Alignment, | ||
| const MDNode * | TBAAInfo = 0, |
||
| const MDNode * | Ranges = 0 |
||
| ) |
getLoad - Loads are not normal binary operators: their result type is not determined by their operands, and they produce a value AND a token chain.
Definition at line 4462 of file SelectionDAG.cpp.
References getUNDEF(), llvm::SDValue::getValueType(), llvm::ISD::NON_EXTLOAD, llvm::RegState::Undef, and llvm::ISD::UNINDEXED.
Referenced by bitcastf32Toi32(), llvm::X86TargetLowering::BuildFILD(), convertLocVTToValVT(), EltsFromConsecutiveLoads(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), expandf64Toi32(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::MipsTargetLowering::getAddrGlobal(), llvm::MipsTargetLowering::getAddrGlobalLargeGOT(), llvm::MipsTargetLowering::getAddrLocal(), getExtLoad(), getIndexedLoad(), getLoad(), getMemCmpLoad(), getMemmoveLoadsAndStores(), llvm::HexagonTargetLowering::LowerBR_JT(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::MSP430TargetLowering::LowerFRAMEADDR(), llvm::HexagonTargetLowering::LowerFRAMEADDR(), LowerFRAMEADDR(), llvm::AArch64TargetLowering::LowerGlobalAddressELFSmall(), LowerINTRINSIC_W_CHAIN(), llvm::MSP430TargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), LowerRETURNADDR(), LowerToTLSExecModel(), LowerVAARG(), llvm::SparcTargetLowering::makeAddress(), PerformEXTRACT_VECTOR_ELTCombine(), PerformLOADCombine(), PerformSTORECombine(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::TargetLowering::SimplifySetCC(), and SkipLoadExtensionForVMULL().
| SDValue SelectionDAG::getLoad | ( | ISD::MemIndexedMode | AM, |
| ISD::LoadExtType | ExtType, | ||
| EVT | VT, | ||
| DebugLoc | dl, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| SDValue | Offset, | ||
| MachinePointerInfo | PtrInfo, | ||
| EVT | MemVT, | ||
| bool | isVolatile, | ||
| bool | isNonTemporal, | ||
| bool | isInvariant, | ||
| unsigned | Alignment, | ||
| const MDNode * | TBAAInfo = 0, |
||
| const MDNode * | Ranges = 0 |
||
| ) |
Definition at line 4382 of file SelectionDAG.cpp.
References getLoad(), getMachineFunction(), llvm::MachineFunction::getMachineMemOperand(), llvm::EVT::getStoreSize(), llvm::SDValue::getValueType(), InferPointerInfo(), llvm::MachineMemOperand::MOInvariant, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MONonTemporal, llvm::MachineMemOperand::MOVolatile, llvm::MVT::Other, and llvm::MachinePointerInfo::V.
| SDValue SelectionDAG::getLoad | ( | ISD::MemIndexedMode | AM, |
| ISD::LoadExtType | ExtType, | ||
| EVT | VT, | ||
| DebugLoc | dl, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| SDValue | Offset, | ||
| EVT | MemVT, | ||
| MachineMemOperand * | MMO | ||
| ) |
Definition at line 4415 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::EVT::bitsLT(), encodeMemSDNodeFlags(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::MachinePointerInfo::getAddrSpace(), llvm::SDValue::getOpcode(), llvm::MachineMemOperand::getPointerInfo(), llvm::EVT::getRawBits(), llvm::EVT::getScalarType(), llvm::SDValue::getValueType(), llvm::EVT::getVectorNumElements(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::EVT::isInteger(), llvm::MachineMemOperand::isInvariant(), llvm::MachineMemOperand::isNonTemporal(), llvm::EVT::isVector(), llvm::MachineMemOperand::isVolatile(), llvm::ISD::LOAD, llvm::ISD::NON_EXTLOAD, llvm::MVT::Other, llvm::ilist< NodeTy >::push_back(), llvm::ISD::UNDEF, and llvm::ISD::UNINDEXED.
| MachineFunction& llvm::SelectionDAG::getMachineFunction | ( | ) | const [inline] |
Definition at line 238 of file SelectionDAG.h.
Referenced by llvm::X86TargetLowering::BuildFILD(), CalculateParameterAndLinkageAreaSize(), CalculateTailCallSPDiff(), llvm::AMDGPUTargetLowering::CreateLiveInRegister(), CreateStackTemporary(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), ExpandPowI(), llvm::SelectionDAGBuilder::FindMergedConditions(), FindOptimalMemOpLowering(), getAtomic(), llvm::MipsTargetLowering::getGlobalReg(), llvm::DOTGraphTraits< SelectionDAG * >::getGraphName(), getLoad(), getMemcpyLoadsAndStores(), getMemIntrinsicNode(), getMemmoveLoadsAndStores(), getMemsetStores(), GetRegistersForValue(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::SparcTargetLowering::getSRetArgSize(), getStore(), GetTLSADDR(), getTruncStore(), InferPtrAlignment(), isConsecutiveLoad(), llvm::HexagonTargetLowering::IsEligibleForTailCallOptimization(), llvm::AArch64TargetLowering::IsEligibleForTailCallOptimization(), llvm::TargetLowering::isInTailCallPosition(), llvm::HexagonTargetLowering::LowerBR_JT(), llvm::HexagonTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::HexagonTargetLowering::LowerCallResult(), llvm::AArch64TargetLowering::LowerCallResult(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::HexagonTargetLowering::LowerEH_RETURN(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::MSP430TargetLowering::LowerFRAMEADDR(), llvm::HexagonTargetLowering::LowerFRAMEADDR(), LowerFRAMEADDR(), llvm::AArch64TargetLowering::LowerGlobalTLSAddress(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerINTRINSIC_W_CHAIN(), llvm::R600TargetLowering::LowerOperation(), llvm::HexagonTargetLowering::LowerReturn(), llvm::AArch64TargetLowering::LowerReturn(), llvm::SystemZTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::SparcTargetLowering::LowerReturn_64(), llvm::MSP430TargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), LowerRETURNADDR(), LowerToTLSLocalDynamicModel(), llvm::MSP430TargetLowering::LowerVASTART(), llvm::HexagonTargetLowering::LowerVASTART(), llvm::AArch64TargetLowering::LowerVASTART(), LowerVASTART(), PerformSTORECombine(), PrepareTailCall(), llvm::AArch64TargetLowering::SaveVarArgRegisters(), llvm::X86InstrInfo::unfoldMemoryOperand(), and viewGraph().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT | ||
| ) |
getMachineNode - These are used for target selectors to create a new node with specified return type(s), MachineInstr opcode, and operands.
Note that getMachineNode returns the resultant node. If there is already a node of the specified opcode and operands, it returns that node instead of the current one.
Definition at line 5268 of file SelectionDAG.cpp.
References getVTList(), and llvm::None.
Referenced by getMachineNode(), getTargetExtractSubreg(), getTargetInsertSubreg(), LowerATOMIC_FENCE(), llvm::AArch64TargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerGlobalTLSAddress(), lowerGR128Binary(), llvm::R600TargetLowering::LowerOperation(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::SelectionDAGISel::SelectCodeCommon(), and llvm::X86InstrInfo::unfoldMemoryOperand().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT, | ||
| SDValue | Op1 | ||
| ) |
Definition at line 5274 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT, | ||
| SDValue | Op1, | ||
| SDValue | Op2 | ||
| ) |
Definition at line 5281 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT, | ||
| SDValue | Op1, | ||
| SDValue | Op2, | ||
| SDValue | Op3 | ||
| ) |
Definition at line 5289 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT, | ||
| ArrayRef< SDValue > | Ops | ||
| ) |
Definition at line 5297 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT1, | ||
| EVT | VT2 | ||
| ) |
Definition at line 5304 of file SelectionDAG.cpp.
References getMachineNode(), getVTList(), and llvm::None.
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| SDValue | Op1 | ||
| ) |
Definition at line 5310 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| SDValue | Op1, | ||
| SDValue | Op2 | ||
| ) |
Definition at line 5318 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| SDValue | Op1, | ||
| SDValue | Op2, | ||
| SDValue | Op3 | ||
| ) |
Definition at line 5326 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| ArrayRef< SDValue > | Ops | ||
| ) |
Definition at line 5335 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| EVT | VT3, | ||
| SDValue | Op1, | ||
| SDValue | Op2 | ||
| ) |
Definition at line 5343 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| EVT | VT3, | ||
| SDValue | Op1, | ||
| SDValue | Op2, | ||
| SDValue | Op3 | ||
| ) |
Definition at line 5352 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| EVT | VT3, | ||
| ArrayRef< SDValue > | Ops | ||
| ) |
Definition at line 5361 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| EVT | VT3, | ||
| EVT | VT4, | ||
| ArrayRef< SDValue > | Ops | ||
| ) |
Definition at line 5369 of file SelectionDAG.cpp.
References getMachineNode(), and getVTList().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| ArrayRef< EVT > | ResultTys, | ||
| ArrayRef< SDValue > | Ops | ||
| ) |
Definition at line 5377 of file SelectionDAG.cpp.
References getMachineNode(), getVTList(), and llvm::ArrayRef< T >::size().
| MachineSDNode * SelectionDAG::getMachineNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| SDVTList | VTs, | ||
| ArrayRef< SDValue > | Ops | ||
| ) |
Definition at line 5385 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::BumpPtrAllocator::Allocate(), llvm::array_lengthof(), llvm::ArrayRef< T >::data(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::MVT::Glue, llvm::SDNode::InitOperands(), llvm::FoldingSetImpl::InsertNode(), llvm::SDVTList::NumVTs, llvm::ilist< NodeTy >::push_back(), llvm::ArrayRef< T >::size(), VerifyMachineNode(), and llvm::SDVTList::VTs.
getMDNode - Return an MDNodeSDNode which holds an MDNode.
Definition at line 1501 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ISD::MDNODE_SDNODE, llvm::MVT::Other, and llvm::ilist< NodeTy >::push_back().
Referenced by llvm::NVPTXTargetLowering::LowerCall().
| SDValue SelectionDAG::getMemcpy | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| SDValue | Dst, | ||
| SDValue | Src, | ||
| SDValue | Size, | ||
| unsigned | Align, | ||
| bool | isVol, | ||
| bool | AlwaysInline, | ||
| MachinePointerInfo | DstPtrInfo, | ||
| MachinePointerInfo | SrcPtrInfo | ||
| ) |
Definition at line 3886 of file SelectionDAG.cpp.
References Align(), llvm::dyn_cast(), llvm::TargetSelectionDAGInfo::EmitTargetCodeForMemcpy(), getContext(), llvm::TargetLoweringBase::getDataLayout(), getExternalSymbol(), llvm::DataLayout::getIntPtrType(), llvm::TargetLoweringBase::getLibcallCallingConv(), llvm::TargetLoweringBase::getLibcallName(), getMemcpyLoadsAndStores(), llvm::SDValue::getNode(), llvm::TargetLoweringBase::getPointerTy(), llvm::Type::getVoidTy(), llvm::ConstantSDNode::getZExtValue(), llvm::ConstantSDNode::isNullValue(), llvm::TargetLowering::LowerCallTo(), llvm::RTLIB::MEMCPY, llvm::TargetLowering::ArgListEntry::Node, and llvm::TargetLowering::ArgListEntry::Ty.
Referenced by CreateCopyOfByValArgument(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::AArch64TargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::AArch64TargetLowering::LowerVACOPY(), and LowerVACOPY().
| SDValue SelectionDAG::getMemIntrinsicNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| const EVT * | VTs, | ||
| unsigned | NumVTs, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps, | ||
| EVT | MemVT, | ||
| MachinePointerInfo | PtrInfo, | ||
| unsigned | Align = 0, |
||
| bool | Vol = false, |
||
| bool | ReadMem = true, |
||
| bool | WriteMem = true |
||
| ) |
getMemIntrinsicNode - Creates a MemIntrinsicNode that may produce a result and takes a list of operands. Opcode may be INTRINSIC_VOID, INTRINSIC_W_CHAIN, or a target-specific opcode with a value not less than FIRST_TARGET_MEMORY_OPCODE.
Definition at line 4277 of file SelectionDAG.cpp.
References makeVTList().
Referenced by llvm::X86TargetLowering::BuildFILD(), CombineBaseUpdate(), CombineVLDDUP(), createLoadLR(), createStoreLR(), EltsFromConsecutiveLoads(), getMemIntrinsicNode(), LowerCMP_SWAP(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformShuffleCombine256(), ReplaceATOMIC_BINARY_64(), ReplaceATOMIC_OP_64(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), and llvm::X86TargetLowering::ReplaceNodeResults().
| SDValue SelectionDAG::getMemIntrinsicNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| SDVTList | VTList, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps, | ||
| EVT | MemVT, | ||
| MachinePointerInfo | PtrInfo, | ||
| unsigned | Align = 0, |
||
| bool | Vol = false, |
||
| bool | ReadMem = true, |
||
| bool | WriteMem = true |
||
| ) |
Definition at line 4289 of file SelectionDAG.cpp.
References Align(), getMachineFunction(), llvm::MachineFunction::getMachineMemOperand(), getMemIntrinsicNode(), llvm::EVT::getStoreSize(), llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MOStore, and llvm::MachineMemOperand::MOVolatile.
| SDValue SelectionDAG::getMemIntrinsicNode | ( | unsigned | Opcode, |
| DebugLoc | dl, | ||
| SDVTList | VTList, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps, | ||
| EVT | MemVT, | ||
| MachineMemOperand * | MMO | ||
| ) |
Definition at line 4312 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::ISD::FIRST_TARGET_MEMORY_OPCODE, llvm::MachinePointerInfo::getAddrSpace(), llvm::MachineMemOperand::getPointerInfo(), llvm::MVT::Glue, llvm::FoldingSetImpl::InsertNode(), llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::LIFETIME_END, llvm::ISD::LIFETIME_START, llvm::SDVTList::NumVTs, llvm::ISD::PREFETCH, llvm::ilist< NodeTy >::push_back(), and llvm::SDVTList::VTs.
| SDValue SelectionDAG::getMemmove | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| SDValue | Dst, | ||
| SDValue | Src, | ||
| SDValue | Size, | ||
| unsigned | Align, | ||
| bool | isVol, | ||
| MachinePointerInfo | DstPtrInfo, | ||
| MachinePointerInfo | SrcPtrInfo | ||
| ) |
Definition at line 3954 of file SelectionDAG.cpp.
References Align(), llvm::dyn_cast(), llvm::TargetSelectionDAGInfo::EmitTargetCodeForMemmove(), getContext(), llvm::TargetLoweringBase::getDataLayout(), getExternalSymbol(), llvm::DataLayout::getIntPtrType(), llvm::TargetLoweringBase::getLibcallCallingConv(), llvm::TargetLoweringBase::getLibcallName(), getMemmoveLoadsAndStores(), llvm::SDValue::getNode(), llvm::TargetLoweringBase::getPointerTy(), llvm::Type::getVoidTy(), llvm::ConstantSDNode::getZExtValue(), llvm::ConstantSDNode::isNullValue(), llvm::TargetLowering::LowerCallTo(), llvm::RTLIB::MEMMOVE, llvm::TargetLowering::ArgListEntry::Node, and llvm::TargetLowering::ArgListEntry::Ty.
| SDValue SelectionDAG::getMemset | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| SDValue | Dst, | ||
| SDValue | Src, | ||
| SDValue | Size, | ||
| unsigned | Align, | ||
| bool | isVol, | ||
| MachinePointerInfo | DstPtrInfo | ||
| ) |
Definition at line 4010 of file SelectionDAG.cpp.
References Align(), llvm::EVT::bitsGT(), llvm::dyn_cast(), llvm::TargetSelectionDAGInfo::EmitTargetCodeForMemset(), getContext(), llvm::TargetLoweringBase::getDataLayout(), getExternalSymbol(), llvm::Type::getInt32Ty(), llvm::DataLayout::getIntPtrType(), llvm::TargetLoweringBase::getLibcallCallingConv(), llvm::TargetLoweringBase::getLibcallName(), getMemsetStores(), llvm::SDValue::getNode(), getNode(), llvm::TargetLoweringBase::getPointerTy(), llvm::SDValue::getValueType(), llvm::Type::getVoidTy(), llvm::ConstantSDNode::getZExtValue(), llvm::MVT::i32, llvm::ConstantSDNode::isNullValue(), llvm::TargetLowering::ArgListEntry::isSExt, llvm::TargetLowering::LowerCallTo(), llvm::RTLIB::MEMSET, llvm::TargetLowering::ArgListEntry::Node, llvm::ISD::TRUNCATE, llvm::TargetLowering::ArgListEntry::Ty, and llvm::ISD::ZERO_EXTEND.
Referenced by llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset().
getMergeValues - Create a MERGE_VALUES node from the given operands.
Definition at line 4263 of file SelectionDAG.cpp.
References getNode(), llvm::SDValue::getValueType(), getVTList(), llvm::ISD::MERGE_VALUES, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and llvm::SmallVectorImpl< T >::reserve().
Referenced by llvm::X86TargetLowering::BuildFILD(), llvm::SelectionDAGBuilder::getValueImpl(), lowerDSPIntr(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), LowerDYNAMIC_STACKALLOC(), and LowerREADCYCLECOUNTER().
getNode - Gets or creates the specified node.
Definition at line 2406 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ilist< NodeTy >::push_back(), and VerifySDNode().
Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddRequiredExtensionForVMULL(), llvm::AArch64TargetLowering::addTokenForArgument(), llvm::TargetLowering::BuildExactSDIV(), llvm::X86TargetLowering::BuildFILD(), BuildGetId(), BuildIntrinsicOp(), llvm::TargetLowering::BuildSDIV(), BuildSplatI(), llvm::TargetLowering::BuildUDIV(), BuildVectorFromScalar(), BuildVSLDOI(), CMPEQCombine(), combineSelectAndUse(), combineShlAddConstant(), Compact8x32ShuffleNode(), convertLocVTToValVT(), convertValVTToLocVT(), createCMovFP(), createFPCmp(), createLoadLR(), createStoreLR(), EltsFromConsecutiveLoads(), EmitCMP(), emitCmp(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemset(), Expand64BitShift(), ExpandBITCAST(), expandExp(), expandExp2(), expandf64Toi32(), expandLog(), expandLog10(), expandLog2(), expandPow(), ExpandPowI(), ExpandUnalignedLoad(), ExpandUnalignedStore(), ExpandVectorExtension(), Extract128BitVector(), extractLOHI(), FoldConstantArithmetic(), FoldMaskAndShiftToExtract(), FoldMaskAndShiftToScale(), FoldMaskedShiftToScaledMask(), GeneratePerfectShuffle(), llvm::MipsTargetLowering::getAddrGlobal(), llvm::MipsTargetLowering::getAddrGlobalLargeGOT(), llvm::MipsTargetLowering::getAddrLocal(), getAddrNonPIC(), getAnyExtOrTrunc(), getCALLSEQ_END(), getCALLSEQ_START(), getConstant(), getConstantFP(), llvm::SelectionDAGBuilder::getControlRoot(), getCopyFromParts(), getCopyFromPartsVector(), getCopyFromReg(), getCopyToParts(), getCopyToPartsVector(), getCopyToReg(), getCTPOP16BitCounts(), GetExponent(), getFLUSHW(), getGLOBAL_OFFSET_TABLE(), getLegalSplat(), getLSBForBFI(), getMemBasePlusOffset(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemset(), getMemsetStores(), getMemsetStringVal(), getMemsetValue(), getMergeValues(), getMOVDDup(), getMOVLowToHigh(), GetNegatedExpression(), getNode(), getNOT(), getOnesVector(), llvm::X86TargetLowering::getPICJumpTableRelocBase(), GetRegistersForValue(), llvm::SelectionDAGBuilder::getRoot(), llvm::AArch64TargetLowering::getSelectableIntSetCC(), getSelectCC(), getSetCC(), getSExtOrTrunc(), getShiftAmountOperand(), GetSignificand(), getStackArgumentTokenFactor(), getTargetShuffleNode(), getTargetVShiftNode(), GetTLSADDR(), getUNDEF(), getVAArg(), llvm::SelectionDAGBuilder::getValueImpl(), getVShift(), getVZextMovL(), getZeroExtendInReg(), getZeroVector(), getZExtOrTrunc(), HandleMergeInputChains(), initAccumulator(), Insert128BitVector(), InsertFenceForAtomic(), isLoadIncOrDecStore(), Lower256IntArith(), Lower256IntVSETCC(), LowerADDC_ADDE_SUBC_SUBE(), llvm::HexagonTargetLowering::LowerATOMIC_FENCE(), LowerATOMIC_FENCE(), LowerAVXExtend(), llvm::MSP430TargetLowering::LowerBlockAddress(), llvm::HexagonTargetLowering::LowerBlockAddress(), llvm::AArch64TargetLowering::LowerBlockAddress(), llvm::MSP430TargetLowering::LowerBR_CC(), llvm::AArch64TargetLowering::LowerBR_CC(), LowerBR_CC(), llvm::HexagonTargetLowering::LowerBR_JT(), llvm::AArch64TargetLowering::LowerBRCOND(), LowerBuildVectorv16i8(), LowerBuildVectorv8i16(), llvm::HexagonTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::AArch64TargetLowering::LowerCallResult(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), LowerCONCAT_VECTORS(), llvm::HexagonTargetLowering::LowerConstantPool(), LowerConstantPool(), LowerCTLZ(), LowerCTLZ_ZERO_UNDEF(), lowerCTPOP16BitElements(), lowerCTPOP32BitElements(), LowerCTTZ(), lowerDSPIntr(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), LowerDYNAMIC_STACKALLOC(), llvm::HexagonTargetLowering::LowerEH_RETURN(), llvm::MSP430TargetLowering::LowerExternalSymbol(), LowerEXTRACT_VECTOR_ELT(), LowerEXTRACT_VECTOR_ELT_SSE4(), lowerFABS32(), lowerFABS64(), lowerFCOPYSIGN32(), lowerFCOPYSIGN64(), LowerFGETSIGN(), llvm::SITargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), LowerFP_EXTEND(), LowerFP_TO_INT(), LowerFP_TO_SINT(), lowerFP_TO_SINT_STORE(), LowerFRAMEADDR(), llvm::NVPTXTargetLowering::LowerGlobalAddress(), llvm::MSP430TargetLowering::LowerGlobalAddress(), llvm::HexagonTargetLowering::LowerGLOBALADDRESS(), llvm::AArch64TargetLowering::LowerGlobalAddressELFLarge(), llvm::AArch64TargetLowering::LowerGlobalAddressELFSmall(), llvm::AArch64TargetLowering::LowerGlobalTLSAddress(), lowerGR128Binary(), LowerINSERT_VECTOR_ELT_SSE4(), LowerINT_TO_FP(), LowerINTRINSIC_W_CHAIN(), LowerINTRINSIC_WO_CHAIN(), llvm::AMDGPUTargetLowering::LowerIntrinsicIABS(), llvm::AMDGPUTargetLowering::LowerIntrinsicLRP(), llvm::AArch64TargetLowering::LowerJumpTable(), LowerLabelRef(), LowerLOAD_SUB(), LowerMemOpCallTo(), llvm::AMDGPUTargetLowering::LowerMinMax(), LowerMUL(), llvm::R600TargetLowering::LowerOperation(), LowerPREFETCH(), LowerREADCYCLECOUNTER(), llvm::AMDGPUTargetLowering::LowerReturn(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::HexagonTargetLowering::LowerReturn(), llvm::AArch64TargetLowering::LowerReturn(), llvm::SystemZTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::SparcTargetLowering::LowerReturn_64(), llvm::MSP430TargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), LowerRETURNADDR(), LowerReverse_VECTOR_SHUFFLEv16i8_v8i16(), LowerSCALAR_TO_VECTOR(), LowerScalarImmediateShift(), LowerScalarVariableShift(), LowerSDIV(), LowerSDIV_v4i16(), LowerSDIV_v4i8(), llvm::AArch64TargetLowering::LowerSELECT(), llvm::MSP430TargetLowering::LowerSELECT_CC(), llvm::HexagonTargetLowering::LowerSELECT_CC(), llvm::AArch64TargetLowering::LowerSELECT_CC(), LowerSELECT_CC(), llvm::MSP430TargetLowering::LowerSETCC(), llvm::AArch64TargetLowering::LowerSETCC(), LowerShift(), llvm::MSP430TargetLowering::LowerShifts(), llvm::MSP430TargetLowering::LowerSIGN_EXTEND(), LowerSINT_TO_FP(), llvm::AArch64TargetLowering::LowerTLSDescCall(), LowerToTLSExecModel(), LowerToTLSGeneralDynamicModel32(), LowerToTLSLocalDynamicModel(), LowerUDIV(), LowerVAARG(), llvm::AArch64TargetLowering::LowerVASTART(), LowerVASTART(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE_256(), LowerVECTOR_SHUFFLEtoBlend(), LowerVECTOR_SHUFFLEv16i8(), LowerVECTOR_SHUFFLEv32i8(), LowerVECTOR_SHUFFLEv8i16(), LowerVECTOR_SHUFFLEv8i8(), LowerVectorFP_TO_INT(), LowerVectorINT_TO_FP(), LowerVSETCC(), LowerXALUO(), llvm::SparcTargetLowering::makeAddress(), llvm::SparcTargetLowering::makeHiLoPair(), MaterializeSETB(), MoveBelowOrigChain(), OptimizeConditionalInDecrement(), partitionShuffleOfConcats(), PerformADCCombine(), performADDCombine(), PerformAddCombine(), performANDCombine(), PerformANDCombine(), PerformAndCombine(), PerformBFICombine(), PerformBrCondCombine(), PerformBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), PerformCMOVCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), performDSPShiftCombine(), PerformExtendCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformFADDCombine(), PerformFMACombine(), PerformFMinFMaxCombine(), PerformFSUBCombine(), PerformInsertEltCombine(), performIntegerAbsCombine(), PerformIntrinsicCombine(), PerformISDSETCCCombine(), PerformLOADCombine(), PerformMULCombine(), PerformMulCombine(), performORCombine(), PerformORCombine(), PerformOrCombine(), PerformSELECT_CCCombine(), performSELECTCombine(), PerformSELECTCombine(), performSETCCCombine(), PerformSETCCCombine(), PerformShiftCombine(), PerformSHLCombine(), PerformShuffleCombine256(), PerformSIGN_EXTEND_INREGCombine(), PerformSINT_TO_FPCombine(), PerformSRACombine(), PerformSTORECombine(), PerformSubCombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVDUPLANECombine(), PerformVECTOR_SHUFFLECombine(), PerformVMOVDRRCombine(), PerformVMULCombine(), performVSELECTCombine(), PerformVZEXT_MOVLCombine(), performVZEXTCombine(), PerformXorCombine(), PerformZExtCombine(), PrepareCall(), PrepareTailCall(), PromoteSplat(), ReplaceAllUsesWith(), ReplaceATOMIC_BINARY_64(), ReplaceATOMIC_OP_64(), replaceInChain(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), ReplaceREADCYCLECOUNTER(), RewriteAsNarrowerShuffle(), llvm::AArch64TargetLowering::SaveVarArgRegisters(), selectMADD(), selectMSUB(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedConstant(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), SkipExtensionForVMULL(), llvm::TargetLowering::softenSetCCOperands(), tryCombineToBFI(), tryCombineToEXTR(), tryCombineToLargerBFI(), tryFoldToZero(), UnrollVectorOp(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::SelectionDAGBuilder::visitBitTestHeader(), llvm::SelectionDAGBuilder::visitJumpTable(), llvm::SelectionDAGBuilder::visitJumpTableHeader(), llvm::SelectionDAGBuilder::visitSwitchCase(), WidenMaskArithmetic(), and XFormVExtractWithShuffleIntoLoad().
Definition at line 2423 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::ISD::ANY_EXTEND, llvm::lltok::APFloat, llvm::ISD::BITCAST, llvm::APFloat::bitcastToAPInt(), llvm::EVT::bitsGT(), llvm::EVT::bitsLE(), llvm::EVT::bitsLT(), llvm::ISD::BSWAP, llvm::APInt::byteSwap(), llvm::CallingConv::C, llvm::APFloat::changeSign(), llvm::APFloat::clearSign(), llvm::ISD::CONCAT_VECTORS, llvm::APFloat::convert(), llvm::APFloat::convertFromAPInt(), llvm::APFloat::convertToInteger(), llvm::APInt::countLeadingZeros(), llvm::APInt::countPopulation(), llvm::APInt::countTrailingZeros(), llvm::ISD::CTLZ, llvm::ISD::CTLZ_ZERO_UNDEF, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::ISD::CTTZ_ZERO_UNDEF, EVTToAPFloatSemantics(), llvm::ISD::EXTRACT_VECTOR_ELT, llvm::MVT::f32, llvm::MVT::f64, llvm::ISD::FABS, llvm::ISD::FCEIL, llvm::ISD::FFLOOR, llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::ISD::FNEG, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ISD::FSUB, llvm::ISD::FTRUNC, getConstant(), getConstantFP(), llvm::SDValue::getConstantOperandVal(), llvm::SDValue::getNode(), getNode(), llvm::APInt::getNullValue(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::EVT::getScalarType(), llvm::EVT::getSizeInBits(), getTarget(), getUNDEF(), llvm::SDValue::getValueType(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorNumElements(), getVTList(), llvm::APInt::getZExtValue(), llvm::MVT::Glue, llvm::MVT::i32, llvm::MVT::i64, llvm::APFloat::IEEEdouble, llvm::APFloat::IEEEsingle, llvm::FoldingSetImpl::InsertNode(), llvm::integerPartWidth, llvm::EVT::isFloatingPoint(), llvm::EVT::isInteger(), llvm::EVT::isVector(), llvm_unreachable, llvm::ISD::MERGE_VALUES, llvm::APFloat::opInexact, llvm::APFloat::opInvalidOp, llvm::APFloat::opOK, llvm::ilist< NodeTy >::push_back(), llvm::APFloat::rmNearestTiesToEven, llvm::APFloat::rmTowardNegative, llvm::APFloat::rmTowardPositive, llvm::APFloat::rmTowardZero, llvm::APFloat::roundToIntegral(), llvm::ISD::SCALAR_TO_VECTOR, llvm::APInt::sextOrTrunc(), llvm::ISD::SIGN_EXTEND, llvm::ISD::SINT_TO_FP, llvm::ISD::TokenFactor, llvm::ISD::TRUNCATE, llvm::ISD::UINT_TO_FP, llvm::ISD::UNDEF, VerifySDNode(), llvm::ISD::ZERO_EXTEND, and llvm::APInt::zextOrTrunc().
Definition at line 2796 of file SelectionDAG.cpp.
References llvm::ISD::ADD, llvm::APFloat::add(), llvm::ISD::ADDC, llvm::ISD::ADDE, AddNodeIDNode(), llvm::ISD::AND, llvm::SmallVectorImpl< T >::append(), llvm::APInt::ashr(), llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::EVT::bitsLE(), llvm::ISD::BUILD_PAIR, llvm::ISD::BUILD_VECTOR, llvm::CallingConv::C, llvm::ISD::CONCAT_VECTORS, llvm::APFloat::convert(), llvm::APFloat::copySign(), llvm::APFloat::divide(), llvm::dyn_cast(), llvm::ISD::EntryToken, EVTToAPFloatSemantics(), llvm::ISD::EXTRACT_ELEMENT, llvm::ISD::EXTRACT_SUBVECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FADD, llvm::ISD::FCOPYSIGN, llvm::ISD::FDIV, llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::ISD::FMUL, FoldConstantArithmetic(), llvm::ISD::FP_ROUND, llvm::ISD::FP_ROUND_INREG, llvm::ISD::FREM, llvm::ISD::FSUB, llvm::APInt::getAllOnesValue(), getAnyExtOrTrunc(), llvm::ConstantSDNode::getAPIntValue(), llvm::APInt::getBitWidth(), getConstant(), getConstantFP(), llvm::SDValue::getNode(), getNode(), llvm::SDValue::getNumOperands(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::EVT::getScalarType(), getSExtOrTrunc(), llvm::EVT::getSimpleVT(), llvm::EVT::getSizeInBits(), getTarget(), getUNDEF(), llvm::ConstantFPSDNode::getValueAPF(), llvm::SDValue::getValueType(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorNumElements(), getVTList(), llvm::ConstantSDNode::getZExtValue(), llvm::MVT::Glue, llvm::MVT::i1, llvm::ISD::INSERT_VECTOR_ELT, llvm::FoldingSetImpl::InsertNode(), isCommutativeBinOp(), llvm::ConstantFPSDNode::isExactlyValue(), llvm::EVT::isFloatingPoint(), llvm::EVT::isInteger(), llvm::EVT::isSimple(), llvm::EVT::isVector(), llvm::ConstantFPSDNode::isZero(), llvm::Log2_32_Ceil(), llvm::APFloat::mod(), llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, llvm::APFloat::multiply(), llvm::SDNode::op_begin(), llvm::SDNode::op_end(), llvm::APFloat::opDivByZero, llvm::APFloat::opInvalidOp, llvm::TargetMachine::Options, llvm::ISD::OR, llvm::MVT::Other, llvm::ilist< NodeTy >::push_back(), llvm::APFloat::rmNearestTiesToEven, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SDIV, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SRA, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SUB, llvm::APFloat::subtract(), llvm::swap(), llvm::ISD::TokenFactor, llvm::APInt::trunc(), llvm::ISD::UDIV, llvm::ISD::UNDEF, llvm::TargetOptions::UnsafeFPMath, llvm::ISD::UREM, llvm::NVPTX::PTXLdStInstCode::V2, VerifySDNode(), and llvm::ISD::XOR.
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| EVT | VT, | ||
| SDValue | N1, | ||
| SDValue | N2, | ||
| SDValue | N3 | ||
| ) |
Definition at line 3259 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::SmallVectorImpl< T >::append(), llvm::ISD::BITCAST, llvm::ISD::BUILD_VECTOR, llvm::ISD::CONCAT_VECTORS, llvm::dyn_cast(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::ISD::FMA, FoldSetCC(), llvm::APFloat::fusedMultiplyAdd(), getConstantFP(), llvm::SDValue::getNode(), getNode(), llvm::SDValue::getOpcode(), llvm::EVT::getSimpleVT(), llvm::ConstantFPSDNode::getValueAPF(), llvm::SDValue::getValueType(), llvm::EVT::getVectorNumElements(), getVTList(), llvm::ConstantSDNode::getZExtValue(), llvm::MVT::Glue, llvm::ISD::INSERT_SUBVECTOR, llvm::FoldingSetImpl::InsertNode(), llvm::EVT::isSimple(), llvm::EVT::isVector(), llvm_unreachable, llvm::SDNode::op_begin(), llvm::SDNode::op_end(), llvm::APFloat::opInvalidOp, llvm::ilist< NodeTy >::push_back(), llvm::APFloat::rmNearestTiesToEven, llvm::ISD::SELECT, llvm::ISD::SETCC, llvm::NVPTX::PTXLdStInstCode::V2, llvm::ISD::VECTOR_SHUFFLE, and VerifySDNode().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| EVT | VT, | ||
| SDValue | N1, | ||
| SDValue | N2, | ||
| SDValue | N3, | ||
| SDValue | N4 | ||
| ) |
Definition at line 3364 of file SelectionDAG.cpp.
References getNode().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| EVT | VT, | ||
| SDValue | N1, | ||
| SDValue | N2, | ||
| SDValue | N3, | ||
| SDValue | N4, | ||
| SDValue | N5 | ||
| ) |
Definition at line 3371 of file SelectionDAG.cpp.
References getNode().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| EVT | VT, | ||
| const SDUse * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 4654 of file SelectionDAG.cpp.
References getNode().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| EVT | VT, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 4670 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::ISD::BR_CC, llvm::FoldingSet< T >::FindNodeOrInsertPos(), getNode(), getValueType(), getVTList(), llvm::MVT::Glue, llvm::FoldingSetImpl::InsertNode(), llvm::ilist< NodeTy >::push_back(), llvm::ISD::SELECT_CC, and VerifySDNode().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| ArrayRef< EVT > | ResultTys, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 4725 of file SelectionDAG.cpp.
References getNode(), getVTList(), and llvm::ArrayRef< T >::size().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| const EVT * | VTs, | ||
| unsigned | NumVTs, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 4732 of file SelectionDAG.cpp.
References getNode(), and makeVTList().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| SDVTList | VTs, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 4740 of file SelectionDAG.cpp.
References AddNodeIDNode(), AND, llvm::FoldingSet< T >::FindNodeOrInsertPos(), getNode(), llvm::EVT::getScalarType(), llvm::EVT::getSizeInBits(), llvm::MVT::Glue, llvm::MVT::i1, llvm::FoldingSetImpl::InsertNode(), llvm::SDVTList::NumVTs, llvm::ilist< NodeTy >::push_back(), llvm::ISD::SHL_PARTS, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SRA_PARTS, llvm::ISD::SRL_PARTS, VerifySDNode(), and llvm::SDVTList::VTs.
Definition at line 4807 of file SelectionDAG.cpp.
References getNode().
Definition at line 4811 of file SelectionDAG.cpp.
References getNode().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| SDVTList | VTs, | ||
| SDValue | N1, | ||
| SDValue | N2 | ||
| ) |
Definition at line 4817 of file SelectionDAG.cpp.
References getNode().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| SDVTList | VTs, | ||
| SDValue | N1, | ||
| SDValue | N2, | ||
| SDValue | N3 | ||
| ) |
Definition at line 4823 of file SelectionDAG.cpp.
References getNode().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| SDVTList | VTs, | ||
| SDValue | N1, | ||
| SDValue | N2, | ||
| SDValue | N3, | ||
| SDValue | N4 | ||
| ) |
Definition at line 4829 of file SelectionDAG.cpp.
References getNode().
| SDValue SelectionDAG::getNode | ( | unsigned | Opcode, |
| DebugLoc | DL, | ||
| SDVTList | VTs, | ||
| SDValue | N1, | ||
| SDValue | N2, | ||
| SDValue | N3, | ||
| SDValue | N4, | ||
| SDValue | N5 | ||
| ) |
Definition at line 4836 of file SelectionDAG.cpp.
References getNode().
| SDNode * SelectionDAG::getNodeIfExists | ( | unsigned | Opcode, |
| SDVTList | VTList, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
getNodeIfExists - Get the specified node if it's already available, or else return NULL.
Definition at line 5450 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::MVT::Glue, llvm::SDVTList::NumVTs, and llvm::SDVTList::VTs.
getNOT - Create a bitwise NOT operation as (XOR Val, -1).
Definition at line 957 of file SelectionDAG.cpp.
References llvm::APInt::getAllOnesValue(), getConstant(), getNode(), llvm::EVT::getScalarType(), llvm::EVT::getSizeInBits(), and llvm::ISD::XOR.
Referenced by LowerVSETCC(), and llvm::TargetLowering::SimplifySetCC().
GetOrdering - Get the order for the SDNode.
Definition at line 5870 of file SelectionDAG.cpp.
References llvm::SDNodeOrdering::getOrder().
Referenced by llvm::SelectionDAGBuilder::AssignOrderingToNode(), and ProcessSourceNode().
Definition at line 1416 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ilist< NodeTy >::push_back(), and llvm::ISD::Register.
Referenced by llvm::AMDGPUTargetLowering::CreateLiveInRegister(), getCopyFromReg(), getCopyToReg(), llvm::MipsDAGToDAGISel::getGlobalBaseReg(), llvm::MipsTargetLowering::getGlobalReg(), llvm::MipsTargetLowering::getOpndList(), LowerATOMIC_FENCE(), llvm::HexagonTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::HexagonTargetLowering::LowerEH_RETURN(), lowerFABS32(), lowerFABS64(), LowerINTRINSIC_W_CHAIN(), LowerMemOpCallTo(), llvm::HexagonTargetLowering::LowerReturn(), llvm::AArch64TargetLowering::LowerReturn(), llvm::SystemZTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::SparcTargetLowering::LowerReturn_64(), llvm::AArch64TargetLowering::LowerTLSDescCall(), LowerVASTART(), llvm::PPCTargetLowering::PerformDAGCombine(), PrepareCall(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegRegOnly(), and llvm::SelectionDAGISel::SelectCodeCommon().
| SDValue SelectionDAG::getRegisterMask | ( | const uint32_t * | RegMask | ) |
Definition at line 1430 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ilist< NodeTy >::push_back(), llvm::ISD::RegisterMask, and llvm::MVT::Untyped.
Referenced by llvm::MipsTargetLowering::getOpndList(), llvm::AArch64TargetLowering::LowerCall(), and llvm::AArch64TargetLowering::LowerTLSDescCall().
| const SDValue& llvm::SelectionDAG::getRoot | ( | ) | const [inline] |
getRoot - Return the root tag of the SelectionDAG.
Definition at line 286 of file SelectionDAG.h.
Referenced by llvm::DOTGraphTraits< SelectionDAG * >::addCustomGraphFeatures(), llvm::checkForCycles(), dump(), llvm::SelectionDAGBuilder::getControlRoot(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), getMemCmpLoad(), llvm::SelectionDAGBuilder::getRoot(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::AArch64TargetLowering::LowerF128ToCall(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), RemoveDeadNode(), RemoveDeadNodes(), ReplaceAllUsesOfValueWith(), ReplaceAllUsesWith(), and llvm::DAGTypeLegalizer::run().
| SDValue llvm::SelectionDAG::getSelectCC | ( | DebugLoc | DL, |
| SDValue | LHS, | ||
| SDValue | RHS, | ||
| SDValue | True, | ||
| SDValue | False, | ||
| ISD::CondCode | Cond | ||
| ) | [inline] |
getSelectCC - Helper function to make it easier to build SelectCC's if you just have an ISD::CondCode instead of an SDValue.
Definition at line 623 of file SelectionDAG.h.
References getCondCode(), getNode(), llvm::SDValue::getValueType(), and llvm::ISD::SELECT_CC.
Referenced by llvm::R600TargetLowering::PerformDAGCombine().
| const TargetSelectionDAGInfo& llvm::SelectionDAG::getSelectionDAGInfo | ( | ) | const [inline] |
Definition at line 241 of file SelectionDAG.h.
| SDValue llvm::SelectionDAG::getSetCC | ( | DebugLoc | DL, |
| EVT | VT, | ||
| SDValue | LHS, | ||
| SDValue | RHS, | ||
| ISD::CondCode | Cond | ||
| ) | [inline] |
getSetCC - Helper function to make it easier to build SetCC's if you just have an ISD::CondCode instead of an SDValue.
Definition at line 611 of file SelectionDAG.h.
References getCondCode(), getNode(), llvm::SDValue::getValueType(), llvm::EVT::isVector(), and llvm::ISD::SETCC.
Referenced by llvm::X86TargetLowering::BuildFILD(), FoldSetCC(), PerformISDSETCCCombine(), performSELECTCombine(), PerformSELECTCombine(), llvm::TargetLowering::SimplifySetCC(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::SelectionDAGBuilder::visitBitTestHeader(), llvm::SelectionDAGBuilder::visitJumpTableHeader(), and llvm::SelectionDAGBuilder::visitSwitchCase().
getSExtOrTrunc - Convert Op, which must be of integer type, to the integer type VT, by either sign-extending or truncating it.
Definition at line 931 of file SelectionDAG.cpp.
References llvm::EVT::bitsGT(), getNode(), llvm::SDValue::getValueType(), llvm::ISD::SIGN_EXTEND, and llvm::ISD::TRUNCATE.
Referenced by getNode().
getShiftAmountOperand - Return the specified value casted to the target's desired shift amount type.
Definition at line 1519 of file SelectionDAG.cpp.
References llvm::EVT::bitsGT(), llvm::SDValue::getDebugLoc(), getNode(), llvm::TargetLoweringBase::getShiftAmountTy(), llvm::SDValue::getValueType(), llvm::EVT::isVector(), llvm::ISD::TRUNCATE, and llvm::ISD::ZERO_EXTEND.
Referenced by UnrollVectorOp().
getSrcValue - Construct a node to track a Value* through the backend.
Definition at line 1482 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::FoldingSetNodeID::AddPointer(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::Value::getType(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::Type::isPointerTy(), llvm::MVT::Other, llvm::ilist< NodeTy >::push_back(), and llvm::ISD::SRCVALUE.
getStackArgumentTokenFactor - Compute a TokenFactor to force all the incoming stack arguments to be loaded from the stack. This is used in tail call lowering to protect stack arguments from being clobbered.
getStackArgumentTokenFactor - Compute a TokenFactor to force all the incoming stack arguments to be loaded from the stack.
Definition at line 3380 of file SelectionDAG.cpp.
References llvm::SDValue::getDebugLoc(), getEntryNode(), getNode(), llvm::MVT::Other, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::ISD::TokenFactor.
| SDValue SelectionDAG::getStore | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| SDValue | Val, | ||
| SDValue | Ptr, | ||
| MachinePointerInfo | PtrInfo, | ||
| bool | isVolatile, | ||
| bool | isNonTemporal, | ||
| unsigned | Alignment, | ||
| const MDNode * | TBAAInfo = 0 |
||
| ) |
getStore - Helper function to build ISD::STORE nodes.
Definition at line 4499 of file SelectionDAG.cpp.
References getMachineFunction(), llvm::MachineFunction::getMachineMemOperand(), llvm::EVT::getStoreSize(), llvm::SDValue::getValueType(), InferPointerInfo(), llvm::MachineMemOperand::MONonTemporal, llvm::MachineMemOperand::MOStore, llvm::MachineMemOperand::MOVolatile, llvm::MVT::Other, and llvm::MachinePointerInfo::V.
Referenced by llvm::X86TargetLowering::BuildFILD(), EmitTailCallStoreFPAndRetAddr(), EmitTailCallStoreRetAddr(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), ExpandUnalignedLoad(), ExpandUnalignedStore(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemsetStores(), getTruncStore(), llvm::HexagonTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::HexagonTargetLowering::LowerEH_RETURN(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), lowerFP_TO_SINT_STORE(), LowerINTRINSIC_W_CHAIN(), LowerMemOpCallTo(), LowerVAARG(), llvm::MSP430TargetLowering::LowerVASTART(), llvm::HexagonTargetLowering::LowerVASTART(), llvm::AArch64TargetLowering::LowerVASTART(), LowerVASTART(), PerformEXTRACT_VECTOR_ELTCombine(), PerformSTORECombine(), llvm::AArch64TargetLowering::SaveVarArgRegisters(), ShrinkLoadReplaceStoreWithStore(), and StoreTailCallArgumentsToStackSlot().
| SDValue SelectionDAG::getStore | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| SDValue | Val, | ||
| SDValue | Ptr, | ||
| MachineMemOperand * | MMO | ||
| ) |
Definition at line 4526 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), encodeMemSDNodeFlags(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::MachinePointerInfo::getAddrSpace(), llvm::MachineMemOperand::getPointerInfo(), getUNDEF(), llvm::SDValue::getValueType(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::MachineMemOperand::isInvariant(), llvm::MachineMemOperand::isNonTemporal(), llvm::MachineMemOperand::isVolatile(), llvm::MVT::Other, llvm::ilist< NodeTy >::push_back(), llvm::ISD::STORE, llvm::RegState::Undef, and llvm::ISD::UNINDEXED.
| const TargetMachine& llvm::SelectionDAG::getTarget | ( | ) | const [inline] |
Definition at line 239 of file SelectionDAG.h.
Referenced by CalculateParameterAndLinkageAreaSize(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemset(), GetNegatedExpression(), getNode(), llvm::SDNode::getOperationName(), llvm::SelectionDAGBuilder::init(), isKnownNeverNaN(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::SparcTargetLowering::LowerReturn_64(), PerformFMinFMaxCombine(), PerformSELECT_CCCombine(), PerformSELECTCombine(), PerformSTORECombine(), and PrepareCall().
| SDValue llvm::SelectionDAG::getTargetBlockAddress | ( | const BlockAddress * | BA, |
| EVT | VT, | ||
| int64_t | Offset = 0, |
||
| unsigned char | TargetFlags = 0 |
||
| ) | [inline] |
Definition at line 439 of file SelectionDAG.h.
References getBlockAddress().
Referenced by getTargetNode(), llvm::AArch64TargetLowering::LowerAsmOperandForConstraint(), llvm::MSP430TargetLowering::LowerBlockAddress(), llvm::HexagonTargetLowering::LowerBlockAddress(), and llvm::AArch64TargetLowering::LowerBlockAddress().
Definition at line 366 of file SelectionDAG.h.
References getConstant().
Referenced by llvm::PPC::get_VSPLTI_elt(), getAL(), getAtomicLoadArithTargetConstant(), getCopyFromParts(), getOnesVector(), getTargetExtractSubreg(), getTargetInsertSubreg(), getVAArg(), getZeroVector(), isNEONModifiedImm(), llvm::SystemZTargetLowering::LowerAsmOperandForConstraint(), llvm::AArch64TargetLowering::LowerAsmOperandForConstraint(), llvm::ARMTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), llvm::TargetLowering::LowerAsmOperandForConstraint(), LowerATOMIC_FENCE(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), LowerCMP_SWAP(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerGlobalTLSAddress(), lowerGR128Binary(), llvm::R600TargetLowering::LowerOperation(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::SelectionDAGISel::SelectCodeCommon(), and llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands().
Definition at line 369 of file SelectionDAG.h.
References getConstant().
| SDValue llvm::SelectionDAG::getTargetConstant | ( | const ConstantInt & | Val, |
| EVT | VT | ||
| ) | [inline] |
Definition at line 372 of file SelectionDAG.h.
References getConstant().
Definition at line 380 of file SelectionDAG.h.
References getConstantFP().
Referenced by getZeroVector(), and llvm::AArch64TargetLowering::LowerAsmOperandForConstraint().
Definition at line 383 of file SelectionDAG.h.
References getConstantFP().
| SDValue llvm::SelectionDAG::getTargetConstantFP | ( | const ConstantFP & | Val, |
| EVT | VT | ||
| ) | [inline] |
Definition at line 386 of file SelectionDAG.h.
References getConstantFP().
| SDValue llvm::SelectionDAG::getTargetConstantPool | ( | const Constant * | C, |
| EVT | VT, | ||
| unsigned | Align = 0, |
||
| int | Offset = 0, |
||
| unsigned char | TargetFlags = 0 |
||
| ) | [inline] |
Definition at line 409 of file SelectionDAG.h.
References Align(), and getConstantPool().
Referenced by getTargetNode(), llvm::HexagonTargetLowering::LowerConstantPool(), LowerConstantPool(), llvm::AArch64TargetLowering::LowerGlobalAddressELFSmall(), and llvm::SparcTargetLowering::withTargetFlags().
| SDValue llvm::SelectionDAG::getTargetConstantPool | ( | MachineConstantPoolValue * | C, |
| EVT | VT, | ||
| unsigned | Align = 0, |
||
| int | Offset = 0, |
||
| unsigned char | TargetFlags = 0 |
||
| ) | [inline] |
Definition at line 417 of file SelectionDAG.h.
References Align(), and getConstantPool().
| SDValue SelectionDAG::getTargetExternalSymbol | ( | const char * | Sym, |
| EVT | VT, | ||
| unsigned char | TargetFlags = 0 |
||
| ) |
Definition at line 1264 of file SelectionDAG.cpp.
References llvm::ilist< NodeTy >::push_back().
Referenced by getTargetNode(), llvm::AArch64TargetLowering::LowerAsmOperandForConstraint(), llvm::HexagonTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::MSP430TargetLowering::LowerExternalSymbol(), llvm::AArch64TargetLowering::LowerGlobalTLSAddress(), PrepareCall(), and llvm::SparcTargetLowering::withTargetFlags().
getTargetExtractSubreg - A convenience function for creating TargetInstrInfo::EXTRACT_SUBREG nodes.
getTargetExtractSubreg - A convenience function for creating TargetOpcode::EXTRACT_SUBREG nodes.
Definition at line 5429 of file SelectionDAG.cpp.
References llvm::TargetOpcode::EXTRACT_SUBREG, getMachineNode(), getTargetConstant(), and llvm::MVT::i32.
Referenced by getAtomicLoadArithTargetConstant(), and llvm::R600TargetLowering::LowerOperation().
Definition at line 398 of file SelectionDAG.h.
References getFrameIndex().
Referenced by llvm::PPCTargetLowering::SelectAddressRegImm().
| SDValue llvm::SelectionDAG::getTargetGlobalAddress | ( | const GlobalValue * | GV, |
| DebugLoc | DL, | ||
| EVT | VT, | ||
| int64_t | offset = 0, |
||
| unsigned char | TargetFlags = 0 |
||
| ) | [inline] |
Definition at line 392 of file SelectionDAG.h.
References getGlobalAddress().
Referenced by getTargetNode(), GetTLSADDR(), llvm::AArch64TargetLowering::LowerAsmOperandForConstraint(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), llvm::TargetLowering::LowerAsmOperandForConstraint(), llvm::HexagonTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::NVPTXTargetLowering::LowerGlobalAddress(), llvm::MSP430TargetLowering::LowerGlobalAddress(), llvm::HexagonTargetLowering::LowerGLOBALADDRESS(), llvm::AArch64TargetLowering::LowerGlobalAddressELFLarge(), llvm::AArch64TargetLowering::LowerGlobalAddressELFSmall(), llvm::AArch64TargetLowering::LowerGlobalTLSAddress(), LowerToTLSExecModel(), LowerToTLSLocalDynamicModel(), PrepareCall(), and llvm::SparcTargetLowering::withTargetFlags().
| SDValue SelectionDAG::getTargetIndex | ( | int | Index, |
| EVT | VT, | ||
| int64_t | Offset = 0, |
||
| unsigned char | TargetFlags = 0 |
||
| ) |
Definition at line 1210 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::ilist< NodeTy >::push_back(), and llvm::ISD::TargetIndex.
| SDValue SelectionDAG::getTargetInsertSubreg | ( | int | SRIdx, |
| DebugLoc | DL, | ||
| EVT | VT, | ||
| SDValue | Operand, | ||
| SDValue | Subreg | ||
| ) |
getTargetInsertSubreg - A convenience function for creating TargetInstrInfo::INSERT_SUBREG nodes.
getTargetInsertSubreg - A convenience function for creating TargetOpcode::INSERT_SUBREG nodes.
Definition at line 5440 of file SelectionDAG.cpp.
References getMachineNode(), getTargetConstant(), llvm::MVT::i32, and llvm::TargetOpcode::INSERT_SUBREG.
| SDValue llvm::SelectionDAG::getTargetJumpTable | ( | int | JTI, |
| EVT | VT, | ||
| unsigned char | TargetFlags = 0 |
||
| ) | [inline] |
Definition at line 403 of file SelectionDAG.h.
References getJumpTable().
Referenced by getTargetNode(), llvm::HexagonTargetLowering::LowerBR_JT(), and llvm::AArch64TargetLowering::LowerJumpTable().
| const TargetLowering& llvm::SelectionDAG::getTargetLoweringInfo | ( | ) | const [inline] |
Definition at line 240 of file SelectionDAG.h.
Referenced by AddCombineToVPADDL(), EltsFromConsecutiveLoads(), ExpandBITCAST(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemsetStores(), GetNegatedExpression(), llvm::SDNode::getOperationName(), isBLACompatibleAddress(), isExtendedBUILD_VECTOR(), LowerADDC_ADDE_SUBC_SUBE(), LowerATOMIC_STORE(), LowerMemOpCallTo(), LowerVASTART(), llvm::ScheduleDAGSDNodes::newSUnit(), PerformANDCombine(), PerformBTCombine(), PerformExtendCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformFMACombine(), PerformLOADCombine(), PerformORCombine(), PerformSELECTCombine(), PerformShiftCombine(), PerformShuffleCombine(), PerformSINT_TO_FPCombine(), PerformSTORECombine(), PerformVECTOR_SHUFFLECombine(), PerformXORCombine(), PrepareCall(), llvm::X86TargetLowering::ReplaceNodeResults(), ShrinkLoadReplaceStoreWithStore(), SkipExtensionForVMULL(), WidenMaskArithmetic(), and XFormVExtractWithShuffleIntoLoad().
| const TargetTransformInfo* llvm::SelectionDAG::getTargetTransformInfo | ( | ) | const [inline] |
Definition at line 242 of file SelectionDAG.h.
Referenced by getMemsetStringVal().
| SDValue SelectionDAG::getTruncStore | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| SDValue | Val, | ||
| SDValue | Ptr, | ||
| MachinePointerInfo | PtrInfo, | ||
| EVT | TVT, | ||
| bool | isNonTemporal, | ||
| bool | isVolatile, | ||
| unsigned | Alignment, | ||
| const MDNode * | TBAAInfo = 0 |
||
| ) |
Definition at line 4552 of file SelectionDAG.cpp.
References getMachineFunction(), llvm::MachineFunction::getMachineMemOperand(), llvm::EVT::getStoreSize(), llvm::SDValue::getValueType(), InferPointerInfo(), llvm::MachineMemOperand::MONonTemporal, llvm::MachineMemOperand::MOStore, llvm::MachineMemOperand::MOVolatile, llvm::MVT::Other, and llvm::MachinePointerInfo::V.
Referenced by ExpandUnalignedLoad(), ExpandUnalignedStore(), and getMemcpyLoadsAndStores().
| SDValue SelectionDAG::getTruncStore | ( | SDValue | Chain, |
| DebugLoc | dl, | ||
| SDValue | Val, | ||
| SDValue | Ptr, | ||
| EVT | TVT, | ||
| MachineMemOperand * | MMO | ||
| ) |
Definition at line 4579 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::EVT::bitsLT(), encodeMemSDNodeFlags(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::MachinePointerInfo::getAddrSpace(), llvm::MachineMemOperand::getPointerInfo(), llvm::EVT::getRawBits(), llvm::EVT::getScalarType(), getStore(), getUNDEF(), llvm::SDValue::getValueType(), llvm::EVT::getVectorNumElements(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::EVT::isInteger(), llvm::MachineMemOperand::isInvariant(), llvm::MachineMemOperand::isNonTemporal(), llvm::EVT::isVector(), llvm::MachineMemOperand::isVolatile(), llvm::MVT::Other, llvm::ilist< NodeTy >::push_back(), llvm::ISD::STORE, llvm::RegState::Undef, and llvm::ISD::UNINDEXED.
getUNDEF - Return an UNDEF node. UNDEF does not have a useful DebugLoc.
Definition at line 543 of file SelectionDAG.h.
References getNode(), and llvm::ISD::UNDEF.
Referenced by Concat128BitVectors(), Extract128BitVector(), FoldSetCC(), getCopyFromPartsVector(), getCopyToPartsVector(), getExtLoad(), getLegalSplat(), getLoad(), getNode(), getShuffleScalarElt(), getShuffleVectorZeroOrUndef(), getStore(), getTargetVShiftNode(), getTruncStore(), llvm::SelectionDAGBuilder::getValueImpl(), getVectorShuffle(), LowerAVXExtend(), LowerBuildVectorv16i8(), LowerBuildVectorv8i16(), llvm::AArch64TargetLowering::LowerCall(), LowerCONCAT_VECTORS(), llvm::SITargetLowering::LowerFormalArguments(), LowerFP_EXTEND(), LowerSCALAR_TO_VECTOR(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE_256(), LowerVECTOR_SHUFFLEv8i16(), partitionShuffleOfConcats(), llvm::R600TargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformShuffleCombine256(), PerformSTORECombine(), PerformVECTOR_SHUFFLECombine(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), UnrollVectorOp(), and XFormVExtractWithShuffleIntoLoad().
| SDValue SelectionDAG::getVAArg | ( | EVT | VT, |
| DebugLoc | dl, | ||
| SDValue | Chain, | ||
| SDValue | Ptr, | ||
| SDValue | SV, | ||
| unsigned | Align | ||
| ) |
getVAArg - VAArg produces a result and token chain, and takes a pointer and a source value as input.
Definition at line 4646 of file SelectionDAG.cpp.
References getNode(), getTargetConstant(), getVTList(), llvm::MVT::i32, llvm::MVT::Other, and llvm::ISD::VAARG.
Definition at line 1242 of file SelectionDAG.cpp.
References llvm::EVT::getSimpleVT(), llvm::EVT::isExtended(), llvm::EVT::isSimple(), llvm::ilist< NodeTy >::push_back(), and llvm::MVT::SimpleTy.
Referenced by llvm::X86TargetLowering::BuildFILD(), convertLocVTToValVT(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), getCopyFromParts(), getNode(), llvm::SparcTargetLowering::LowerCall_64(), LowerEXTRACT_VECTOR_ELT_SSE4(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::MSP430TargetLowering::LowerSIGN_EXTEND(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), UnrollVectorOp(), and WidenMaskArithmetic().
| SDValue SelectionDAG::getVectorShuffle | ( | EVT | VT, |
| DebugLoc | dl, | ||
| SDValue | N1, | ||
| SDValue | N2, | ||
| const int * | MaskElts | ||
| ) |
getVectorShuffle - Return an ISD::VECTOR_SHUFFLE node. The number of elements in VT, which must be a vector type, must match the number of mask elements NumElts. A integer mask element equal to -1 is treated as undefined.
Definition at line 1302 of file SelectionDAG.cpp.
References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::BumpPtrAllocator::Allocate(), commuteShuffle(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::SDValue::getOpcode(), getUNDEF(), llvm::SDValue::getValueType(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorNumElements(), getVTList(), llvm::FoldingSetImpl::InsertNode(), llvm::EVT::isVector(), llvm::LibFunc::memcpy, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::ilist< NodeTy >::push_back(), llvm::ISD::UNDEF, and llvm::ISD::VECTOR_SHUFFLE.
Referenced by BuildVSLDOI(), CommuteVectorShuffle(), Compact8x32ShuffleNode(), GeneratePerfectShuffle(), getLegalSplat(), getMOVL(), getShuffleVectorZeroOrUndef(), getUnpackh(), getUnpackl(), LowerMUL(), LowerVECTOR_SHUFFLE_128v4(), LowerVECTOR_SHUFFLE_256(), LowerVECTOR_SHUFFLEv8i16(), LowerVSETCC(), PerformLOADCombine(), PerformSTORECombine(), PerformVECTOR_SHUFFLECombine(), RewriteAsNarrowerShuffle(), and XFormVExtractWithShuffleIntoLoad().
getVTList - Return an SDVTList that represents the list of values specified.
Definition at line 4843 of file SelectionDAG.cpp.
References makeVTList().
Referenced by AddCombineTo64bitMLAL(), llvm::X86TargetLowering::BuildFILD(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), CloneNodeWithValues(), CombineBaseUpdate(), CombineVLDDUP(), createLoadLR(), createStoreLR(), EltsFromConsecutiveLoads(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), Expand64BitShift(), ExpandBITCAST(), GeneratePerfectShuffle(), getAtomic(), getBasicBlock(), getBlockAddress(), getCALLSEQ_END(), getCALLSEQ_START(), getConstant(), getConstantFP(), getConstantPool(), getConvertRndSat(), getCopyFromReg(), getCopyToReg(), getEHLabel(), getFrameIndex(), getGlobalAddress(), getIndexedStore(), getJumpTable(), getLoad(), getMachineNode(), getMDNode(), getMergeValues(), getNode(), getRegister(), getRegisterMask(), getSrcValue(), getStore(), getTargetIndex(), GetTLSADDR(), getTruncStore(), getVAArg(), getVectorShuffle(), getVTList(), LowerADDC_ADDE_SUBC_SUBE(), llvm::HexagonTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), LowerCMP_SWAP(), LowerCTLZ(), LowerCTLZ_ZERO_UNDEF(), LowerCTTZ(), LowerINTRINSIC_W_CHAIN(), LowerINTRINSIC_WO_CHAIN(), LowerREADCYCLECOUNTER(), llvm::MSP430TargetLowering::LowerSELECT_CC(), llvm::MSP430TargetLowering::LowerSETCC(), llvm::AArch64TargetLowering::LowerTLSDescCall(), LowerVECTOR_SHUFFLE(), LowerXALUO(), llvm::PPCTargetLowering::PerformDAGCombine(), performIntegerAbsCombine(), PerformShuffleCombine256(), PrepareCall(), ReplaceATOMIC_BINARY_64(), ReplaceATOMIC_OP_64(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), ReplaceREADCYCLECOUNTER(), llvm::SelectionDAGISel::SelectCodeCommon(), and SelectNodeTo().
Definition at line 4847 of file SelectionDAG.cpp.
References llvm::BumpPtrAllocator::Allocate(), I, and makeVTList().
Definition at line 4861 of file SelectionDAG.cpp.
References llvm::BumpPtrAllocator::Allocate(), I, and makeVTList().
Definition at line 4877 of file SelectionDAG.cpp.
References llvm::BumpPtrAllocator::Allocate(), I, and makeVTList().
Definition at line 4894 of file SelectionDAG.cpp.
References llvm::BumpPtrAllocator::Allocate(), llvm::lltok::equal, getVTList(), I, llvm_unreachable, and makeVTList().
getZeroExtendInReg - Return the expression required to zero extend the Op value assuming it was the smaller SrcTy value.
Definition at line 943 of file SelectionDAG.cpp.
References llvm::ISD::AND, getConstant(), llvm::APInt::getLowBitsSet(), getNode(), llvm::EVT::getScalarType(), llvm::EVT::getSizeInBits(), llvm::SDValue::getValueType(), and llvm::EVT::isVector().
getZExtOrTrunc - Convert Op, which must be of integer type, to the integer type VT, by either zero-extending or truncating it.
Definition at line 937 of file SelectionDAG.cpp.
References llvm::EVT::bitsGT(), getNode(), llvm::SDValue::getValueType(), llvm::ISD::TRUNCATE, and llvm::ISD::ZERO_EXTEND.
Referenced by LowerINTRINSIC_W_CHAIN(), llvm::SelectionDAGBuilder::visitBitTestHeader(), and llvm::SelectionDAGBuilder::visitJumpTableHeader().
| bool llvm::SelectionDAG::hasDebugValues | ( | ) | const [inline] |
hasDebugValues - Return true if there are any SDDbgValue nodes associated with this SelectionDAG.
Definition at line 973 of file SelectionDAG.h.
References llvm::SDDbgInfo::empty().
Referenced by llvm::ScheduleDAGSDNodes::EmitSchedule().
InferPtrAlignment - Infer alignment of a load / store address. Return 0 if it cannot be inferred.
Definition at line 6231 of file SelectionDAG.cpp.
References Align(), ComputeMaskedBits(), llvm::SDValue::getConstantOperandVal(), llvm::TargetLoweringBase::getDataLayout(), llvm::MachineFunction::getFrameInfo(), getMachineFunction(), llvm::SDValue::getNode(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::SDValue::getOperand(), llvm::TargetLoweringBase::getPointerTy(), llvm::MVT::getSizeInBits(), isBaseWithConstantOffset(), llvm::TargetLowering::isGAPlusOffset(), and llvm::MinAlign().
Referenced by ComputeMaskedBits(), EltsFromConsecutiveLoads(), getMemcpyLoadsAndStores(), and getMemmoveLoadsAndStores().
| void SelectionDAG::init | ( | MachineFunction & | mf, |
| const TargetTransformInfo * | TTI | ||
| ) |
init - Prepare this SelectionDAG to process code in the given MachineFunction.
Definition at line 885 of file SelectionDAG.cpp.
References llvm::Function::getContext(), and llvm::MachineFunction::getFunction().
Referenced by llvm::SelectionDAGISel::runOnMachineFunction().
isBaseWithConstantOffset - Return true if the specified operand is an ISD::ADD with a ConstantSDNode on the right-hand side, or if it is an ISD::OR with a ConstantSDNode that is guaranteed to have the same semantics as an ADD. This handles the equivalence: X|Cst == X+Cst iff X&Cst = 0.
Definition at line 2346 of file SelectionDAG.cpp.
References llvm::ISD::ADD, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), MaskedValueIsZero(), llvm::ISD::OR, and OR.
Referenced by InferPtrAlignment(), and isConsecutiveLoad().
isCommutativeBinOp - Returns true if the opcode is a commutative binary operation.
Definition at line 916 of file SelectionDAG.h.
References llvm::ISD::ADD, llvm::ISD::ADDC, llvm::ISD::ADDE, llvm::ISD::AND, llvm::ISD::FADD, llvm::ISD::FMUL, llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, llvm::ISD::OR, llvm::ISD::SADDO, llvm::ISD::SMUL_LOHI, llvm::ISD::UADDO, llvm::ISD::UMUL_LOHI, and llvm::ISD::XOR.
Referenced by getNode(), and llvm::TargetLowering::SimplifySetCC().
| bool SelectionDAG::isConsecutiveLoad | ( | LoadSDNode * | LD, |
| LoadSDNode * | Base, | ||
| unsigned | Bytes, | ||
| int | Dist | ||
| ) | const |
isConsecutiveLoad - Return true if LD is loading 'Bytes' bytes from a location that is 'Dist' units away from the location that the 'Base' load is loading from.
Definition at line 6190 of file SelectionDAG.cpp.
References llvm::AArch64ISD::BFI, llvm::ISD::FrameIndex, llvm::X86II::FS, llvm::MemSDNode::getChain(), llvm::MachineFunction::getFrameInfo(), getMachineFunction(), llvm::SDValue::getNode(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineFrameInfo::getObjectSize(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::EVT::getSizeInBits(), llvm::SDNode::getValueType(), isBaseWithConstantOffset(), and llvm::TargetLowering::isGAPlusOffset().
Referenced by EltsFromConsecutiveLoads().
isEqualTo - Test whether two SDValues are known to compare equal. This is true if they are the same value, or if one is negative zero and the other positive zero.
Definition at line 2391 of file SelectionDAG.cpp.
Referenced by matchIntegerMINMAX(), PerformSELECT_CCCombine(), and PerformSELECTCombine().
isKnownNeverNan - Test whether the given SDValue is known to never be NaN.
Definition at line 2360 of file SelectionDAG.cpp.
References llvm::CallingConv::C, and getTarget().
Referenced by PerformSELECT_CCCombine(), and PerformSELECTCombine().
isKnownNeverZero - Test whether the given SDValue is known to never be positive or negative Zero.
Definition at line 2374 of file SelectionDAG.cpp.
References llvm::CallingConv::C, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), and llvm::ISD::OR.
Referenced by PerformCMOVCombine(), PerformSELECT_CCCombine(), and PerformSELECTCombine().
| void SelectionDAG::Legalize | ( | ) |
Legalize - This transforms the SelectionDAG into a SelectionDAG that is compatible with the target instruction selector, as indicated by the TargetLowering object.
Note that this is an involved process that may invalidate pointers into the graph.
run - This is the main entry point to this class.
Definition at line 3923 of file LegalizeDAG.cpp.
| bool SelectionDAG::LegalizeTypes | ( | ) |
LegalizeTypes - This transforms the SelectionDAG into a SelectionDAG that only uses types natively supported by the target. Returns "true" if it made any changes.
Note that this is an involved process that may invalidate pointers into the graph.
Definition at line 1143 of file LegalizeTypes.cpp.
References llvm::DAGTypeLegalizer::run().
| bool SelectionDAG::LegalizeVectors | ( | ) |
LegalizeVectors - This transforms the SelectionDAG into a SelectionDAG that only uses vector math operations supported by the target. This is necessary as a separate step from Legalize because unrolling a vector operation can introduce illegal types, which requires running LegalizeTypes again.
This returns true if it made any changes; in that case, LegalizeTypes is called again before Legalize.
Note that this is an involved process that may invalidate pointers into the graph.
Definition at line 774 of file LegalizeVectorOps.cpp.
MaskedValueIsZero - Return true if 'Op & Mask' is known to be zero. We use this predicate to simplify operations downstream. Op and Mask are known to be the same type.
MaskedValueIsZero - Return true if 'V & Mask' is known to be zero. We use this predicate to simplify operations downstream. Mask is known to be zero for bits that V cannot have.
Definition at line 1669 of file SelectionDAG.cpp.
References ComputeMaskedBits().
Referenced by llvm::SelectionDAGISel::CheckAndMask(), isBaseWithConstantOffset(), isTruncWithZeroHighBitsInput(), PerformORCombine(), PerformShiftCombine(), ShrinkLoadReplaceStoreWithStore(), SignBitIsZero(), and llvm::TargetLowering::SimplifySetCC().
| SDNode * SelectionDAG::MorphNodeTo | ( | SDNode * | N, |
| unsigned | Opc, | ||
| SDVTList | VTs, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
MorphNodeTo - This *mutates* the specified node to have the specified return type, opcode, and operands.
MorphNodeTo - This *mutates* the specified node to have the specified return type, opcode, and operands.
Note that MorphNodeTo returns the resultant node. If there is already a node of the specified opcode and operands, it returns that node instead of the current one. Note that the DebugLoc need not be the same.
Using MorphNodeTo is faster than creating a new node and swapping it in with ReplaceAllUsesWith both because it often avoids allocating a new node, and because it doesn't require CSE recalculation for any of the node's users.
Definition at line 5182 of file SelectionDAG.cpp.
References AddNodeIDNode(), llvm::BumpPtrAllocator::Allocate(), llvm::array_lengthof(), llvm::SmallPtrSet< PtrType, SmallSize >::begin(), llvm::SmallPtrSetImpl::empty(), llvm::SmallPtrSet< PtrType, SmallSize >::end(), llvm::FoldingSet< T >::FindNodeOrInsertPos(), llvm::SDNode::getDebugLoc(), llvm::SDUse::getNode(), llvm::MVT::Glue, I, llvm::SDNode::InitOperands(), llvm::SmallPtrSet< PtrType, SmallSize >::insert(), llvm::FoldingSetImpl::InsertNode(), llvm::SDVTList::NumVTs, llvm::SDNode::op_begin(), llvm::SDNode::op_end(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), RemoveDeadNodes(), llvm::SDNode::use_empty(), and llvm::SDVTList::VTs.
Referenced by CloneNodeWithValues(), and SelectNodeTo().
| void SelectionDAG::RemoveDeadNode | ( | SDNode * | N | ) |
RemoveDeadNode - Remove the specified node from the system. If any of its operands then becomes dead, remove them as well. Inform UpdateListener for each node deleted.
Definition at line 599 of file SelectionDAG.cpp.
References Dummy, getRoot(), and RemoveDeadNodes().
| void SelectionDAG::RemoveDeadNodes | ( | ) |
RemoveDeadNodes - This method deletes all unreachable nodes in the SelectionDAG.
Definition at line 550 of file SelectionDAG.cpp.
References allnodes_begin(), allnodes_end(), Dummy, getRoot(), llvm::HandleSDNode::getValue(), I, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and setRoot().
Referenced by MorphNodeTo(), RemoveDeadNode(), and llvm::DAGTypeLegalizer::run().
| void SelectionDAG::RemoveDeadNodes | ( | SmallVectorImpl< SDNode * > & | DeadNodes | ) |
RemoveDeadNodes - This method deletes the unreachable nodes in the given list, and any nodes that become unreachable as a result.
Definition at line 570 of file SelectionDAG.cpp.
References llvm::SmallVectorBase::empty(), llvm::SDUse::getNode(), I, N, llvm::SelectionDAG::DAGUpdateListener::Next, llvm::SDNode::op_begin(), llvm::SDNode::op_end(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and llvm::SDNode::use_empty().
| void SelectionDAG::ReplaceAllUsesOfValuesWith | ( | const SDValue * | From, |
| const SDValue * | To, | ||
| unsigned | Num | ||
| ) |
ReplaceAllUsesOfValuesWith - Like ReplaceAllUsesOfValueWith, but for multiple values at once. This correctly handles the case where there is an overlap between the From values and the To values.
ReplaceAllUsesOfValuesWith - Replace any uses of From with To, leaving uses of other values produced by From.getNode() alone. The same value may appear in both the From and To list. The Deleted vector is handled the same way as for ReplaceAllUsesWith.
Definition at line 5721 of file SelectionDAG.cpp.
References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::SDValue::getNode(), llvm::SDValue::getResNo(), llvm::SDUse::getResNo(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), ReplaceAllUsesOfValueWith(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().
Referenced by llvm::SelectionDAGISel::ReplaceUses().
ReplaceAllUsesOfValueWith - Replace any uses of From with To, leaving uses of other values produced by From.Val alone.
ReplaceAllUsesOfValueWith - Replace any uses of From with To, leaving uses of other values produced by From.getNode() alone. The Deleted vector is handled the same way as for ReplaceAllUsesWith.
Definition at line 5644 of file SelectionDAG.cpp.
References llvm::SDValue::getNode(), llvm::SDNode::getNumValues(), llvm::SDValue::getResNo(), llvm::SDUse::getResNo(), getRoot(), llvm::SDNode::use_iterator::getUse(), ReplaceAllUsesWith(), setRoot(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().
Referenced by AddCombineTo64bitMLAL(), EltsFromConsecutiveLoads(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformShuffleCombine256(), PerformSINT_TO_FPCombine(), ReplaceAllUsesOfValuesWith(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SelectionDAGISel::ReplaceUses(), llvm::SelectionDAGISel::SelectCodeCommon(), selectMADD(), and selectMSUB().
ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG. Use the first version if 'From' is known to have a single result, use the second if you have two nodes with identical results (or if 'To' has a superset of the results of 'From'), use the third otherwise.
These methods all take an optional UpdateListener, which (if not null) is informed about nodes that are deleted and modified due to recursive changes in the dag.
These functions only replace all existing uses. It's possible that as these replacements are being performed, CSE may cause the From node to be given new uses. These new uses of From are left in place, and not automatically transferred to To.
ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG.
This version assumes From has a single result value.
Definition at line 5512 of file SelectionDAG.cpp.
References llvm::SDValue::getNode(), llvm::SDNode::getNumValues(), llvm::SDValue::getResNo(), getRoot(), setRoot(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().
Referenced by FoldMaskAndShiftToExtract(), FoldMaskAndShiftToScale(), FoldMaskedShiftToScaledMask(), ReplaceAllUsesOfValueWith(), ReplaceAllUsesWith(), and llvm::SelectionDAGISel::ReplaceUses().
ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG.
This version assumes that for each value of From, there is a corresponding value in To in the same position with the same type.
Definition at line 5559 of file SelectionDAG.cpp.
References getNode(), llvm::SDNode::getNumValues(), getRoot(), llvm::SDNode::use_iterator::getUse(), llvm::SDNode::getValueType(), llvm::SDNode::hasAnyUseOfValue(), setRoot(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().
ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG.
This version can replace From with any result values. To must match the number and types of values returned by From.
Definition at line 5606 of file SelectionDAG.cpp.
References getNode(), llvm::SDNode::getNumValues(), llvm::SDUse::getResNo(), getRoot(), llvm::SDNode::use_iterator::getUse(), ReplaceAllUsesWith(), setRoot(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().
| void llvm::SelectionDAG::RepositionNode | ( | allnodes_iterator | Position, |
| SDNode * | N | ||
| ) | [inline] |
RepositionNode - Move node N in the AllNodes list to be immediately before the given iterator Position. This may be used to update the topological ordering when the list of nodes is modified.
Definition at line 910 of file SelectionDAG.h.
References llvm::ilist< NodeTy >::insert(), and llvm::iplist< NodeTy, Traits >::remove().
Referenced by insertDAGNode(), and InsertDAGNode().
SelectNodeTo - These are used for target selectors to *mutate* the specified node to have the specified return type, Target opcode, and operands. Note that target opcodes are stored as ~TargetOpcode in the node opcode field. The resultant node is returned.
SelectNodeTo - These are wrappers around MorphNodeTo that accept a machine opcode.
Definition at line 5050 of file SelectionDAG.cpp.
References getVTList().
Referenced by SelectNodeTo().
Definition at line 5056 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| EVT | VT, | ||
| SDValue | Op1, | ||
| SDValue | Op2 | ||
| ) |
Definition at line 5063 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| EVT | VT, | ||
| SDValue | Op1, | ||
| SDValue | Op2, | ||
| SDValue | Op3 | ||
| ) |
Definition at line 5071 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| EVT | VT, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 5079 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
Definition at line 5093 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 5086 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| EVT | VT3, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 5099 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | MachineOpc, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| EVT | VT3, | ||
| EVT | VT4, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 5106 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| SDValue | Op1 | ||
| ) |
Definition at line 5113 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| SDValue | Op1, | ||
| SDValue | Op2 | ||
| ) |
Definition at line 5121 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| SDValue | Op1, | ||
| SDValue | Op2, | ||
| SDValue | Op3 | ||
| ) |
Definition at line 5129 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| EVT | VT1, | ||
| EVT | VT2, | ||
| EVT | VT3, | ||
| SDValue | Op1, | ||
| SDValue | Op2, | ||
| SDValue | Op3 | ||
| ) |
Definition at line 5138 of file SelectionDAG.cpp.
References getVTList(), and SelectNodeTo().
| SDNode * SelectionDAG::SelectNodeTo | ( | SDNode * | N, |
| unsigned | TargetOpc, | ||
| SDVTList | VTs, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) |
Definition at line 5147 of file SelectionDAG.cpp.
References MorphNodeTo(), and llvm::SDNode::setNodeId().
| void SelectionDAG::setGraphAttrs | ( | const SDNode * | N, |
| const char * | Attrs | ||
| ) |
setGraphAttrs - Set graph attributes for a node. (eg. "color=red".)
Definition at line 176 of file SelectionDAGPrinter.cpp.
References llvm::errs(), and NodeGraphAttrs.
| void SelectionDAG::setGraphColor | ( | const SDNode * | N, |
| const char * | Color | ||
| ) |
setGraphColor - Convenience for setting node color attribute.
Definition at line 206 of file SelectionDAGPrinter.cpp.
References llvm::errs(), and NodeGraphAttrs.
setRoot - Set the current root tag of the SelectionDAG.
Definition at line 296 of file SelectionDAG.h.
References llvm::checkForCycles(), llvm::SDValue::getNode(), llvm::SDValue::getValueType(), and llvm::MVT::Other.
Referenced by llvm::SelectionDAGBuilder::getControlRoot(), llvm::SelectionDAGBuilder::getRoot(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::NVPTXTargetLowering::LowerFormalArguments(), RemoveDeadNodes(), ReplaceAllUsesOfValueWith(), ReplaceAllUsesWith(), llvm::DAGTypeLegalizer::run(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::SelectionDAGBuilder::visitBitTestHeader(), llvm::SelectionDAGBuilder::visitJumpTable(), llvm::SelectionDAGBuilder::visitJumpTableHeader(), and llvm::SelectionDAGBuilder::visitSwitchCase().
| void SelectionDAG::setSubgraphColor | ( | SDNode * | N, |
| const char * | Color | ||
| ) |
setGraphColor - Convenience for setting subgraph color attribute.
setSubgraphColor - Convenience for setting subgraph color attribute.
Definition at line 250 of file SelectionDAGPrinter.cpp.
References llvm::errs(), and llvm::LibFunc::strcmp.
SignBitIsZero - Return true if the sign bit of Op is known to be zero. We use this predicate to simplify operations downstream.
Definition at line 1657 of file SelectionDAG.cpp.
References llvm::EVT::getScalarType(), llvm::APInt::getSignBit(), llvm::EVT::getSizeInBits(), llvm::SDValue::getValueType(), llvm::EVT::isVector(), and MaskedValueIsZero().
Referenced by llvm::X86TargetLowering::BuildFILD().
TransferDbgValues - Transfer SDDbgValues.
Definition at line 5884 of file SelectionDAG.cpp.
References AddDbgValue(), llvm::ArrayRef< T >::begin(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::ArrayRef< T >::end(), llvm::SmallVectorTemplateCommon< T >::end(), getDbgValue(), GetDbgValues(), llvm::SDDbgValue::getDebugLoc(), llvm::SDNode::getHasDebugValue(), llvm::SDDbgValue::getKind(), llvm::SDDbgValue::getMDPtr(), llvm::SDValue::getNode(), llvm::SDDbgValue::getOffset(), llvm::SDDbgValue::getOrder(), llvm::SDValue::getResNo(), I, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and llvm::SDDbgValue::SDNODE.
UnrollVectorOp - Utility function used by legalize and lowering to "unroll" a vector operation by splitting out the scalars and operating on each element individually. If the ResNE is 0, fully unroll the vector op. If ResNE is less than the width of the vector op, unroll up to ResNE. If the ResNE is greater than the width of the vector op, unroll the vector op and fill the end of the resulting vector with UNDEFS.
Definition at line 6114 of file SelectionDAG.cpp.
References llvm::ISD::BUILD_VECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FP_ROUND_INREG, getConstant(), getContext(), llvm::SDNode::getDebugLoc(), getNode(), llvm::SDNode::getNumOperands(), llvm::SDNode::getNumValues(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::TargetLoweringBase::getPointerTy(), getShiftAmountOperand(), getUNDEF(), llvm::SDValue::getValueType(), getValueType(), llvm::SDNode::getValueType(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorVT(), llvm::EVT::isVector(), llvm::A64CC::NE, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SELECT, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND_INREG, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::ISD::SRA, llvm::ISD::SRL, and llvm::ISD::VSELECT.
Referenced by LowerVectorFP_TO_INT(), and LowerVectorINT_TO_FP().
UpdateNodeOperands - *Mutate* the specified node in-place to have the specified operands. If the resultant node already exists in the DAG, this does not modify the specified node, instead it returns the node that already exists. If the resultant node does not exist in the DAG, the input node is returned. As a degenerate case, if you specify the same input operands as the node already has, the input node is returned.
Definition at line 4927 of file SelectionDAG.cpp.
References llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), and llvm::FoldingSetImpl::InsertNode().
Referenced by EltsFromConsecutiveLoads(), MoveBelowOrigChain(), PerformShuffleCombine256(), and UpdateNodeOperands().
Definition at line 4951 of file SelectionDAG.cpp.
References llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), and llvm::FoldingSetImpl::InsertNode().
Definition at line 4980 of file SelectionDAG.cpp.
References UpdateNodeOperands().
| SDNode * SelectionDAG::UpdateNodeOperands | ( | SDNode * | N, |
| SDValue | Op1, | ||
| SDValue | Op2, | ||
| SDValue | Op3, | ||
| SDValue | Op4 | ||
| ) |
Definition at line 4986 of file SelectionDAG.cpp.
References UpdateNodeOperands().
| SDNode * SelectionDAG::UpdateNodeOperands | ( | SDNode * | N, |
| SDValue | Op1, | ||
| SDValue | Op2, | ||
| SDValue | Op3, | ||
| SDValue | Op4, | ||
| SDValue | Op5 | ||
| ) |
Definition at line 4993 of file SelectionDAG.cpp.
References UpdateNodeOperands().
Definition at line 5000 of file SelectionDAG.cpp.
References llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), and llvm::FoldingSetImpl::InsertNode().
| void SelectionDAG::viewGraph | ( | const std::string & | Title | ) |
viewGraph - Pop up a GraphViz/gv window with the DAG rendered using 'dot'.
viewGraph - Pop up a ghostview window with the reachable parts of the DAG rendered using 'dot'.
Definition at line 145 of file SelectionDAGPrinter.cpp.
References llvm::errs(), getMachineFunction(), llvm::Intrinsic::getName(), and llvm::ViewGraph().
| void SelectionDAG::viewGraph | ( | ) |
Definition at line 158 of file SelectionDAGPrinter.cpp.
friend struct DAGUpdateListener [friend] |
DAGUpdateListener is a friend so it can manipulate the listener stack.
Definition at line 208 of file SelectionDAG.h.
| std::map<const SDNode *, std::string> llvm::SelectionDAG::NodeGraphAttrs |
Definition at line 251 of file SelectionDAG.h.
Referenced by clearGraphAttrs(), getGraphAttrs(), setGraphAttrs(), and setGraphColor().