LLVM API Documentation
#include <ArrayRef.h>
Public Types | |
typedef const T * | iterator |
typedef const T * | const_iterator |
typedef size_t | size_type |
typedef std::reverse_iterator < iterator > | reverse_iterator |
Public Member Functions | |
Constructors | |
ArrayRef () | |
Construct an empty ArrayRef. More... | |
ArrayRef (NoneType) | |
Construct an empty ArrayRef from None. More... | |
ArrayRef (const T &OneElt) | |
Construct an ArrayRef from a single element. More... | |
ArrayRef (const T *data, size_t length) | |
Construct an ArrayRef from a pointer and length. More... | |
ArrayRef (const T *begin, const T *end) | |
Construct an ArrayRef from a range. More... | |
template<typename U > | |
ArrayRef (const SmallVectorTemplateCommon< T, U > &Vec) | |
template<typename A > | |
ArrayRef (const std::vector< T, A > &Vec) | |
Construct an ArrayRef from a std::vector. More... | |
template<size_t N> | |
LLVM_CONSTEXPR | ArrayRef (const T(&Arr)[N]) |
Construct an ArrayRef from a C array. More... | |
Simple Operations | |
iterator | begin () const |
iterator | end () const |
reverse_iterator | rbegin () const |
reverse_iterator | rend () const |
bool | empty () const |
empty - Check if the array is empty. More... | |
const T * | data () const |
size_t | size () const |
size - Get the array size. More... | |
const T & | front () const |
front - Get the first element. More... | |
const T & | back () const |
back - Get the last element. More... | |
bool | equals (ArrayRef RHS) const |
equals - Check for element-wise equality. More... | |
ArrayRef< T > | slice (unsigned N) const |
slice(n) - Chop off the first N elements of the array. More... | |
ArrayRef< T > | slice (unsigned N, unsigned M) const |
Operator Overloads | |
const T & | operator[] (size_t Index) const |
Expensive Operations | |
std::vector< T > | vec () const |
Conversion operators | |
operator std::vector< T > () const | |
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory), i.e. a start pointer and a length. It allows various APIs to take consecutive elements easily and conveniently.
This class does not own the underlying data, it is expected to be used in situations where the data resides in some other buffer, whose lifetime extends past that of the ArrayRef. For this reason, it is not in general safe to store an ArrayRef.
This is intended to be trivially copyable, so it should be passed by value.
Definition at line 31 of file ArrayRef.h.
typedef const T* llvm::ArrayRef< T >::const_iterator |
Definition at line 34 of file ArrayRef.h.
typedef const T* llvm::ArrayRef< T >::iterator |
Definition at line 33 of file ArrayRef.h.
typedef std::reverse_iterator<iterator> llvm::ArrayRef< T >::reverse_iterator |
Definition at line 37 of file ArrayRef.h.
typedef size_t llvm::ArrayRef< T >::size_type |
Definition at line 35 of file ArrayRef.h.
|
inline |
Construct an empty ArrayRef.
Definition at line 51 of file ArrayRef.h.
|
inline |
Construct an empty ArrayRef from None.
Definition at line 54 of file ArrayRef.h.
|
inline |
Construct an ArrayRef from a single element.
Definition at line 57 of file ArrayRef.h.
|
inline |
Construct an ArrayRef from a pointer and length.
Definition at line 61 of file ArrayRef.h.
|
inline |
Construct an ArrayRef from a range.
Definition at line 65 of file ArrayRef.h.
|
inline |
Construct an ArrayRef from a SmallVector. This is templated in order to avoid instantiating SmallVectorTemplateCommon<T> whenever we copy-construct an ArrayRef.
Definition at line 72 of file ArrayRef.h.
|
inline |
Construct an ArrayRef from a std::vector.
Definition at line 78 of file ArrayRef.h.
|
inline |
Construct an ArrayRef from a C array.
Definition at line 83 of file ArrayRef.h.
|
inline |
back - Get the last element.
Definition at line 118 of file ArrayRef.h.
Referenced by llvm::ConstantFoldInstOperands().
|
inline |
Definition at line 97 of file ArrayRef.h.
Referenced by llvm::SpillPlacement::addConstraints(), llvm::SpillPlacement::addLinks(), llvm::SpillPlacement::addPrefSpill(), llvm::AllocationOrder::AllocationOrder(), buildExtractionBlockSet(), buildFixItLine(), BuildSubAggregate(), llvm::LiveIntervals::checkRegMaskInterference(), llvm::SchedDFSResult::compute(), llvm::ScheduleDAGMI::computeCyclicCriticalPath(), llvm::ComputeLinearIndex(), llvm::ConstantArray::ConstantArray(), ConstantFoldGetElementPtrImpl(), llvm::ConstantStruct::ConstantStruct(), llvm::ConstantVector::ConstantVector(), llvm::sys::UnicodeCharSet::contains(), containsReg(), llvm::convertUTF16ToUTF8String(), llvm::DIBuilder::createComplexVariable(), llvm::discoverAndMapSubloop(), llvm::TargetLoweringObjectFileMachO::emitModuleFlags(), llvm::TargetLoweringObjectFileCOFF::emitModuleFlags(), llvm::FindInsertedValue(), llvm::gep_type_begin(), llvm::AttributeSetNode::get(), llvm::AttributeSet::get(), llvm::ConstantArray::get(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), llvm::RegPressureTracker::initLiveThru(), llvm::ScheduleDAGMI::initQueues(), isHorizontalBinOp(), isIntegerWideningViable(), isVectorPromotionViable(), LowerVECTOR_SHUFFLEv8i8(), ProfileBitsInit(), ProfileDagInit(), ProfileListInit(), ReadWideAPInt(), llvm::ArrayRef< uint8_t >::rend(), llvm::MachineModuleInfo::setCallSiteLandingPad(), llvm::PMTopLevelManager::setLastUser(), llvm::MachineInstr::setPhysRegsDeadExcept(), llvm::SimplifyCall(), llvm::SelectionDAG::TransferDbgValues(), UpdateAnalysisInformation(), and llvm::object::yaml::BinaryRef::writeAsHex().
|
inline |
Definition at line 106 of file ArrayRef.h.
Referenced by llvm::MutableArrayRef< T >::data(), llvm::ConstantDataArray::get(), llvm::ConstantDataVector::get(), llvm::ConstantExpr::getGetElementPtr(), llvm::SelectionDAG::getMachineNode(), llvm::object::MachOObjectFile::getSectionFinalSegmentName(), llvm::object::MachOObjectFile::getSectionName(), llvm::StructType::setBody(), llvm::ArrayRef< uint8_t >::slice(), SymbolicallyEvaluateGEP(), llvm::MD5::update(), llvm::object::yaml::BinaryRef::writeAsBinary(), and llvm::object::yaml::BinaryRef::writeAsHex().
|
inline |
empty - Check if the array is empty.
Definition at line 104 of file ArrayRef.h.
Referenced by llvm::SpillPlacement::addLinks(), llvm::ArrayRef< uint8_t >::back(), llvm::MutableArrayRef< T >::back(), buildFixItLine(), computeExcessPressureDelta(), llvm::ConstantFoldExtractValueInstruction(), ConstantFoldGetElementPtrImpl(), llvm::ConstantFoldInsertValueInstruction(), llvm::convertUTF16ToUTF8String(), llvm::StructType::create(), llvm::FindInsertedValue(), llvm::ArrayRef< uint8_t >::front(), llvm::MutableArrayRef< T >::front(), llvm::AttributeSetNode::get(), llvm::AttributeSet::get(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::ConstantVector::get(), getIndexedTypeInternal(), llvm::Intrinsic::getName(), llvm::DIBuilder::getOrCreateArray(), llvm::Intrinsic::getType(), llvm::ConstantStruct::getTypeForElements(), isInBoundsIndices(), llvm::object::yaml::operator==(), llvm::PrintMessage(), and llvm::PromoteMemToReg().
|
inline |
Definition at line 98 of file ArrayRef.h.
Referenced by llvm::SpillPlacement::addConstraints(), llvm::SpillPlacement::addLinks(), llvm::SpillPlacement::addPrefSpill(), llvm::AllocationOrder::AllocationOrder(), buildExtractionBlockSet(), buildFixItLine(), BuildSubAggregate(), llvm::LiveIntervals::checkRegMaskInterference(), llvm::SchedDFSResult::compute(), llvm::ScheduleDAGMI::computeCyclicCriticalPath(), llvm::ComputeLinearIndex(), llvm::ConstantArray::ConstantArray(), ConstantFoldGetElementPtrImpl(), llvm::ConstantStruct::ConstantStruct(), llvm::ConstantVector::ConstantVector(), llvm::sys::UnicodeCharSet::contains(), containsReg(), llvm::convertUTF16ToUTF8String(), llvm::DIBuilder::createComplexVariable(), llvm::discoverAndMapSubloop(), llvm::TargetLoweringObjectFileMachO::emitModuleFlags(), llvm::TargetLoweringObjectFileCOFF::emitModuleFlags(), llvm::FindInsertedValue(), llvm::gep_type_end(), llvm::AttributeSetNode::get(), llvm::AttributeSet::get(), llvm::ConstantArray::get(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), llvm::RegPressureTracker::initLiveThru(), llvm::ScheduleDAGMI::initQueues(), isHorizontalBinOp(), isIntegerWideningViable(), isVectorPromotionViable(), LowerVECTOR_SHUFFLEv8i8(), ProfileBitsInit(), ProfileDagInit(), ProfileListInit(), llvm::ArrayRef< uint8_t >::rbegin(), ReadWideAPInt(), llvm::MachineModuleInfo::setCallSiteLandingPad(), llvm::PMTopLevelManager::setLastUser(), llvm::MachineInstr::setPhysRegsDeadExcept(), llvm::SimplifyCall(), llvm::SelectionDAG::TransferDbgValues(), UpdateAnalysisInformation(), and llvm::object::yaml::BinaryRef::writeAsHex().
|
inline |
equals - Check for element-wise equality.
Definition at line 124 of file ArrayRef.h.
Referenced by llvm::operator==().
|
inline |
front - Get the first element.
Definition at line 112 of file ArrayRef.h.
Referenced by DecodeFixedType(), llvm::ConstantVector::get(), and llvm::PrintMessage().
|
inline |
Definition at line 164 of file ArrayRef.h.
|
inline |
Definition at line 149 of file ArrayRef.h.
|
inline |
Definition at line 100 of file ArrayRef.h.
Referenced by getNoopInput(), and llvm::ScheduleDAGMI::initQueues().
|
inline |
Definition at line 101 of file ArrayRef.h.
Referenced by getNoopInput(), and llvm::ScheduleDAGMI::initQueues().
|
inline |
size - Get the array size.
Definition at line 109 of file ArrayRef.h.
Referenced by llvm::MachineModuleInfo::addCatchTypeInfo(), llvm::MachineModuleInfo::addFilterTypeInfo(), llvm::RegPressureTracker::addLiveRegs(), llvm::MutableArrayRef< T >::back(), llvm::object::yaml::BinaryRef::binary_size(), llvm::PBQPBuilder::build(), BuildNew(), CanEvaluateShuffled(), CastGEPIndices(), llvm::ComputeEditDistance(), computeExcessPressureDelta(), computeMaxPressureDelta(), llvm::ConstantArray::ConstantArray(), llvm::ConstantFoldCall(), ConstantFoldGetElementPtrImpl(), llvm::ConstantFoldInstOperands(), llvm::ConstantFoldLoadThroughGEPIndices(), llvm::ConstantStruct::ConstantStruct(), llvm::ConstantVector::ConstantVector(), ConvertToString(), llvm::convertUTF16ToUTF8String(), llvm::GetElementPtrConstantExpr::Create(), llvm::ConstantArrayCreator< ConstantClass, TypeClass >::create(), llvm::GetElementPtrInst::Create(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), llvm::MDBuilder::createBranchWeights(), llvm::IRBuilder< true, TargetFolder >::CreateGEP(), llvm::IRBuilder< true, TargetFolder >::CreateInBoundsGEP(), createPHIsForSplitLoopExit(), llvm::MDBuilder::createTBAAStructNode(), DecodeIITType(), llvm::RegPressureTracker::decreaseRegPressure(), llvm::dumpRegSetPressure(), llvm::LiveRangeEdit::eliminateDeadDefs(), llvm::MCDwarfFrameEmitter::Emit(), llvm::MutableArrayRef< T >::end(), llvm::DwarfDebug::endFunction(), llvm::LiveIntervals::extendToIndices(), llvm::DWARFDebugInfoEntryMinimal::extractFast(), llvm::FindInsertedValue(), FitWeights(), llvm::FunctionType::get(), llvm::AttributeSet::get(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::ConstantVector::get(), llvm::ConstantDataArray::get(), llvm::ConstantDataVector::get(), llvm::ConstantExpr::getGetElementPtr(), llvm::DataLayout::getIndexedOffset(), llvm::ExtractValueInst::getIndexedType(), getIndexedTypeInternal(), llvm::Intrinsic::getIntrinsicInfoTableEntries(), llvm::SelectionDAG::getMachineNode(), llvm::SourceMgr::GetMessage(), llvm::Intrinsic::getName(), llvm::SelectionDAG::getNode(), getNoopInput(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::MachineTraceMetrics::Trace::getResourceDepth(), llvm::MachineTraceMetrics::Trace::getResourceLength(), llvm::MDNode::getTemporary(), llvm::ConstantStruct::getTypeForElements(), llvm::RegPressureTracker::getUpwardPressureDelta(), llvm::ConstantExpr::getWithOperands(), llvm::hasUTF16ByteOrderMark(), llvm::RegPressureTracker::increaseRegPressure(), isInBoundsIndices(), isReverseMask(), isVTBLMask(), llvm::AllocationOrder::next(), llvm::MutableArrayRef< T >::operator[](), llvm::PrintMessage(), ProcessSDDbgValues(), llvm::AttributeSetNode::Profile(), ProfileBitsInit(), ProfileListInit(), ReadWideAPInt(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::StructType::setBody(), SimplifyGEPInst(), llvm::ArrayRef< uint8_t >::slice(), llvm::MutableArrayRef< T >::slice(), llvm::SplitBlockPredecessors(), llvm::SplitLandingPadPredecessors(), SymbolicallyEvaluateGEP(), llvm::MD5::update(), UpdatePHINodes(), llvm::ScheduleDAGMI::updatePressureDiffs(), llvm::object::yaml::BinaryRef::writeAsBinary(), and llvm::object::yaml::BinaryRef::writeAsHex().
|
inline |
slice(n) - Chop off the first N elements of the array.
Definition at line 134 of file ArrayRef.h.
Referenced by BuildNew(), CastGEPIndices(), llvm::ConstantFoldExtractValueInstruction(), llvm::ConstantFoldInsertValueInstruction(), llvm::ConstantFoldInstOperands(), DecodeFixedType(), llvm::FindInsertedValue(), llvm::ConstantExpr::getAsInstruction(), llvm::ConstantExpr::getWithOperands(), and SimplifyGEPInst().
slice(n, m) - Chop off the first N elements of the array, and keep M elements in the array.
Definition at line 141 of file ArrayRef.h.
|
inline |
Definition at line 157 of file ArrayRef.h.