LLVM API Documentation
#include <APInt.h>
Inherits llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >.
Inherited by llvm::SmallVector< T, N >.
Public Types | |
typedef SuperClass::iterator | iterator |
typedef SuperClass::size_type | size_type |
![]() | |
typedef size_t | size_type |
typedef ptrdiff_t | difference_type |
typedef T | value_type |
typedef T * | iterator |
typedef const T * | const_iterator |
typedef std::reverse_iterator < const_iterator > | const_reverse_iterator |
typedef std::reverse_iterator < iterator > | reverse_iterator |
typedef T & | reference |
typedef const T & | const_reference |
typedef T * | pointer |
typedef const T * | const_pointer |
Public Member Functions | |
~SmallVectorImpl () | |
void | clear () |
void | resize (unsigned N) |
void | resize (unsigned N, const T &NV) |
void | reserve (unsigned N) |
T LLVM_ATTRIBUTE_UNUSED_RESULT | pop_back_val () |
void | swap (SmallVectorImpl &RHS) |
template<typename in_iter > | |
void | append (in_iter in_start, in_iter in_end) |
void | append (size_type NumInputs, const T &Elt) |
void | assign (unsigned NumElts, const T &Elt) |
iterator | erase (iterator I) |
iterator | erase (iterator S, iterator E) |
iterator | insert (iterator I, const T &Elt) |
iterator | insert (iterator I, size_type NumToInsert, const T &Elt) |
template<typename ItTy > | |
iterator | insert (iterator I, ItTy From, ItTy To) |
SmallVectorImpl & | operator= (const SmallVectorImpl &RHS) |
bool | operator== (const SmallVectorImpl &RHS) const |
bool | operator!= (const SmallVectorImpl &RHS) const |
bool | operator< (const SmallVectorImpl &RHS) const |
void | set_size (unsigned N) |
![]() | |
void | push_back (const T &Elt) |
void | pop_back () |
![]() | |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
size_type | size () const |
size_type | max_size () const |
size_t | capacity () const |
pointer | data () |
data - Return a pointer to the vector's buffer, even if empty(). More... | |
const_pointer | data () const |
data - Return a pointer to the vector's buffer, even if empty(). More... | |
reference | operator[] (unsigned idx) |
const_reference | operator[] (unsigned idx) const |
reference | front () |
const_reference | front () const |
reference | back () |
const_reference | back () const |
![]() | |
size_t | size_in_bytes () const |
size_in_bytes - This returns size()*sizeof(T). More... | |
size_t | capacity_in_bytes () const |
capacity_in_bytes - This returns capacity()*sizeof(T). More... | |
bool LLVM_ATTRIBUTE_UNUSED_RESULT | empty () const |
Protected Member Functions | |
SmallVectorImpl (unsigned N) | |
![]() | |
SmallVectorTemplateBase (size_t Size) | |
void | grow (size_t MinSize=0) |
![]() | |
SmallVectorTemplateCommon (size_t Size) | |
void | grow_pod (size_t MinSizeInBytes, size_t TSize) |
bool | isSmall () const |
void | resetToSmall () |
resetToSmall - Put this vector in a state of being small. More... | |
void | setEnd (T *P) |
iterator | capacity_ptr () |
const_iterator | capacity_ptr () const |
![]() | |
SmallVectorBase (void *FirstEl, size_t Size) | |
void | grow_pod (void *FirstEl, size_t MinSizeInBytes, size_t TSize) |
Additional Inherited Members | |
![]() | |
static void | destroy_range (T *S, T *E) |
static It2 | move (It1 I, It1 E, It2 Dest) |
static It2 | move_backward (It1 I, It1 E, It2 Dest) |
static void | uninitialized_move (It1 I, It1 E, It2 Dest) |
static void | uninitialized_copy (It1 I, It1 E, It2 Dest) |
![]() | |
void * | BeginX |
void * | EndX |
void * | CapacityX |
SmallVectorImpl - This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.
typedef SuperClass::iterator llvm::SmallVectorImpl< T >::iterator |
Definition at line 376 of file SmallVector.h.
typedef SuperClass::size_type llvm::SmallVectorImpl< T >::size_type |
Definition at line 377 of file SmallVector.h.
|
inlineexplicitprotected |
Definition at line 381 of file SmallVector.h.
|
inline |
Definition at line 386 of file SmallVector.h.
|
inline |
append - Add the specified range to the end of the SmallVector.
Definition at line 445 of file SmallVector.h.
Referenced by llvm::FoldingSetNodeID::AddNodeID(), llvm::FoldingSetNodeID::AddPointer(), llvm::FoldingSetNodeID::AddString(), llvm::SmallString< 256 >::append(), llvm::sys::path::append(), llvm::SmallString< 256 >::assign(), llvm::RegPressureTracker::closeBottom(), llvm::RegPressureTracker::closeTop(), ConstantFoldGetElementPtrImpl(), llvm::DIBuilder::createComplexVariable(), llvm::MCObjectStreamer::EmitBytes(), llvm::MCObjectStreamer::EmitFill(), llvm::MCObjectStreamer::EmitInstToFragment(), llvm::FindInsertedValue(), fixupSubprogramName(), llvm::AttributeSet::get(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::DominatorTreeBase< llvm::MachineBasicBlock >::getDescendants(), llvm::ScalarEvolution::getMulExpr(), llvm::Mangler::getNameWithPrefix(), llvm::SelectionDAG::getNode(), llvm::object::MachOObjectFile::getRelocationTypeName(), llvm::object::COFFObjectFile::getRelocationTypeName(), llvm::object::ELFFile< ELFT >::getRelocationTypeName(), llvm::object::MachOObjectFile::getRelocationValueString(), llvm::object::ELFObjectFile< ELFT >::getRelocationValueString(), llvm::object::COFFObjectFile::getRelocationValueString(), llvm::ScalarEvolution::getSMaxExpr(), llvm::ConstantDataArray::getString(), llvm::ScalarEvolution::getUMaxExpr(), llvm::opt::InputArgList::InputArgList(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::BitstreamCursor::readRecord(), llvm::sys::path::replace_extension(), llvm::EngineBuilder::setMAttrs(), SimplifyAddOperands(), SplitAddRecs(), llvm::sys::path::system_temp_directory(), llvm::APInt::toString(), llvm::InstCombiner::visitGetElementPtrInst(), WriteAttributeGroupTable(), WriteModuleMetadata(), WriteModuleMetadataStore(), and llvm::LLVMContextImpl::~LLVMContextImpl().
|
inline |
append - Add the specified range to the end of the SmallVector.
Definition at line 460 of file SmallVector.h.
|
inline |
Definition at line 470 of file SmallVector.h.
Referenced by llvm::SmallString< 256 >::assign(), BuildSplatI(), CollectShuffleElements(), CollectSingleShuffleElements(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getConstantFP(), llvm::SelectionDAGBuilder::getValueImpl(), and llvm::InterferenceCache::init().
|
inline |
Definition at line 396 of file SmallVector.h.
Referenced by llvm::PMDataManager::add(), llvm::LiveIntervals::addKillFlags(), llvm::ARMBaseInstrInfo::AnalyzeBranch(), llvm::SparcInstrInfo::AnalyzeBranch(), llvm::MSP430InstrInfo::AnalyzeBranch(), llvm::SystemZInstrInfo::AnalyzeBranch(), llvm::X86InstrInfo::AnalyzeBranch(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), CleanupPointerRootUsers(), llvm::IntEqClasses::clear(), llvm::SpillPlacement::Node::clear(), llvm::ArrayRecycler< llvm::MachineOperand >::clear(), llvm::SchedDFSResult::clear(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::clear(), llvm::LiveRange::clear(), llvm::FoldingSetNodeID::clear(), llvm::SparseMultiSet< VReg2SUnit, VirtReg2IndexFunctor >::clear(), llvm::CCState::clearByValRegsInfo(), collectDebugValues(), emitComments(), llvm::TargetSubtargetInfo::enablePostRAScheduler(), llvm::MachineModuleInfo::EndFunction(), llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::X86TargetLowering::ExpandInlineAsm(), llvm::finalizeBundle(), findConsecutiveLoad(), FindMostPopularDest(), llvm::SplitEditor::finish(), llvm::BitstreamCursor::freeState(), llvm::ScalarEvolution::getAddExpr(), getAdjustedPtr(), llvm::DominatorTreeBase< llvm::MachineBasicBlock >::getDescendants(), getMemmoveLoadsAndStores(), llvm::MemoryDependenceAnalysis::getNonLocalPointerDependency(), GetOptionInfo(), llvm::ScalarEvolution::getUDivExpr(), getUnderlyingObjectsForInstr(), llvm::Loop::getUniqueExitBlocks(), llvm::yaml::ScalarNode::getValue(), insertVector(), llvm::TargetLowering::LowerCallTo(), LowerVECTOR_SHUFFLE_256(), LowerVECTOR_SHUFFLEv16i8(), LowerVECTOR_SHUFFLEv8i16(), llvm::Regex::match(), MoveBelowOrigChain(), llvm::sys::path::native(), llvm::IntervalPressure::openBottom(), llvm::RegionPressure::openBottom(), llvm::IntervalPressure::openTop(), llvm::RegionPressure::openTop(), llvm::cl::ParseCommandLineOptions(), llvm::SpillPlacement::prepare(), llvm::BitstreamCursor::ReadBlockInfoBlock(), llvm::LiveIntervals::releaseMemory(), llvm::SlotIndexes::releaseMemory(), removeFinishedSplitUses(), llvm::LiveRange::RenumberValues(), llvm::UnwindOpcodeAssembler::Reset(), llvm::IntervalPressure::reset(), llvm::RegionPressure::reset(), llvm::MachObjectWriter::reset(), llvm::LiveRangeCalc::reset(), llvm::MCStreamer::reset(), llvm::TypeFinder::run(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::SpillPlacement::scanActiveBundles(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::FileRemover::setFile(), llvm::EngineBuilder::setMAttrs(), SimplifyAddOperands(), llvm::SplitCriticalEdge(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::sys::path::system_temp_directory(), llvm::cl::TokenizeGNUCommandLine(), llvm::cl::TokenizeWindowsCommandLine(), llvm::MachineBasicBlock::updateTerminator(), llvm::ValueEnumerator::ValueEnumerator(), WriteAttributeGroupTable(), WriteAttributeTable(), WriteConstants(), WriteFunction(), WriteInstruction(), WriteMDNode(), WriteMetadataAttachment(), WriteModuleInfo(), WriteModuleMetadata(), WriteModuleMetadataStore(), WriteTypeTable(), WriteValueSymbolTable(), and llvm::GCOVBlock::~GCOVBlock().
|
inline |
Definition at line 478 of file SmallVector.h.
Referenced by llvm::RegPressureTracker::closeBottom(), llvm::RegPressureTracker::closeTop(), collectOperands(), DecomposeGEPExpression(), llvm::ConnectedVNInfoEqClasses::Distribute(), llvm::opt::ArgList::eraseArg(), llvm::cl::ExpandResponseFiles(), llvm::ScalarEvolution::getAddExpr(), GetIndexDifference(), llvm::ScalarEvolution::getMulExpr(), getNaturalGEPWithType(), llvm::ScalarEvolution::getSMaxExpr(), GetSymbolFromOperand(), llvm::ScalarEvolution::getUMaxExpr(), llvm::LiveRange::join(), llvm::LiveRange::MergeValueNumberInto(), OptimizeAndOrXor(), llvm::MachineInstr::print(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::Inliner::removeDeadFunctions(), removeFinishedSplitUses(), RemoveInstInputs(), llvm::LiveRange::removeSegment(), llvm::LiveRange::removeValNo(), replaceConstantExprOp(), llvm::HexagonInstrInfo::ReverseBranchCondition(), llvm::Inliner::runOnSCC(), VerifySubExpr(), and llvm::InstCombiner::visitLandingPadInst().
|
inline |
Definition at line 490 of file SmallVector.h.
|
inline |
Definition at line 537 of file SmallVector.h.
Referenced by llvm::MipsInstrInfo::AnalyzeBranch(), llvm::LiveRange::createDeadDef(), llvm::BitstreamWriter::EmitRecord(), llvm::cl::ExpandResponseFiles(), findConsecutiveLoad(), llvm::AttributeSet::get(), llvm::SelectionDAG::getConstant(), llvm::Mangler::getNameWithPrefix(), llvm::yaml::ScalarNode::getValue(), LowerInterruptReturn(), llvm::LiveRange::removeSegment(), llvm::IntervalMapImpl::Path::replaceRoot(), llvm::HexagonInstrInfo::ReverseBranchCondition(), and llvm::WriteBitcodeToFile().
|
inline |
Definition at line 568 of file SmallVector.h.
|
inline |
Definition at line 619 of file SmallVector.h.
|
inline |
Definition at line 684 of file SmallVector.h.
|
inline |
Definition at line 688 of file SmallVector.h.
SmallVectorImpl< T > & llvm::SmallVectorImpl< T >::operator= | ( | const SmallVectorImpl< T > & | RHS | ) |
Definition at line 749 of file SmallVector.h.
References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorTemplateCommon< T >::capacity(), llvm::SmallVectorTemplateBase< T, isPodLike >::destroy_range(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::SmallVectorTemplateBase< T, isPodLike >::grow(), llvm::SmallVectorTemplateCommon< T >::setEnd(), llvm::SmallVectorTemplateCommon< T >::size(), and llvm::SmallVectorTemplateBase< T, isPodLike >::uninitialized_copy().
Referenced by llvm::SmallVector< llvm::cl::parser::OptionInfo, 8 >::operator=().
|
inline |
Definition at line 680 of file SmallVector.h.
|
inline |
Definition at line 430 of file SmallVector.h.
Referenced by AddReachableCodeToWorklist(), AreAnyUnderlyingObjectsAnAlloca(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), buildMultiplyTree(), llvm::SSAUpdaterImpl< UpdaterT >::CheckIfPHIMatches(), ComputePostOrders(), DeleteDeadInstruction(), deleteDeadInstruction(), DeleteTriviallyDeadInstructions(), determinePointerReadAttrs(), llvm::LiveRangeEdit::eliminateDeadDefs(), llvm::objcarc::FindDependencies(), llvm::FindFunctionBackedges(), llvm::ScalarEvolution::forgetLoop(), llvm::ScalarEvolution::forgetValue(), llvm::DominatorTreeBase< llvm::MachineBasicBlock >::getDescendants(), getUnderlyingObjects(), llvm::GetUnderlyingObjects(), llvm::SDNode::hasPredecessorHelper(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::AnalysisManager::invalidateAll(), isAllocSiteRemovable(), isLeakCheckerRoot(), isPotentiallyReachableInner(), IsStoredObjCPointer(), llvm::Constant::isThreadDependent(), IsValueFullyAvailableInBlock(), llvm::SpillPlacement::iterate(), LinearizeExprTree(), markAliveBlocks(), llvm::SIInstrInfo::moveToVALU(), llvm::PHITransAddr::PHITranslateWithInsertion(), llvm::MCStreamer::PopSection(), llvm::BitstreamCursor::readRecord(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), llvm::SelectionDAG::RemoveDeadNodes(), replaceConstantExprOp(), rewriteNonInstructionUses(), llvm::SUnit::setDepthDirty(), llvm::SUnit::setHeightDirty(), llvm::UnrollLoop(), and verifyCTRBranch().
|
inline |
Definition at line 425 of file SmallVector.h.
Referenced by llvm::DICompositeType::addMember(), llvm::RegPressureTracker::closeBottom(), llvm::RegPressureTracker::closeTop(), llvm::DwarfException::ComputeActionsTable(), ConstantFoldGetElementPtrImpl(), llvm::DwarfException::EmitExceptionTable(), extractVector(), llvm::FindInsertedValue(), fixupSubprogramName(), llvm::MachineInstrExpressionTrait::getHashValue(), llvm::SelectionDAG::getMergeValues(), llvm::ScalarEvolution::getMulExpr(), llvm::yaml::ScalarNode::getValue(), llvm::IntEqClasses::grow(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), insertVector(), llvm::MapValue(), OptimizeAwayTrappingUsesOfValue(), llvm::raw_svector_ostream::raw_svector_ostream(), llvm::ConstantArray::replaceUsesOfWithOnConstant(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::ConstantVector::replaceUsesOfWithOnConstant(), llvm::raw_svector_ostream::resync(), llvm::SlotIndexes::runOnMachineFunction(), SimplifyCall(), llvm::InstCombiner::visitLandingPadInst(), llvm::WriteBitcodeToFile(), WriteUseList(), and llvm::LLVMContextImpl::~LLVMContextImpl().
|
inline |
Definition at line 401 of file SmallVector.h.
Referenced by llvm::Calculate(), llvm::CCState::CCState(), llvm::DwarfException::ComputeCallSiteTable(), ConstantFoldGetElementPtrImpl(), llvm::DependenceAnalysis::depends(), llvm::ConnectedVNInfoEqClasses::Distribute(), llvm::MCObjectStreamer::EmitGPRel32Value(), llvm::MCObjectStreamer::EmitGPRel64Value(), llvm::MCObjectStreamer::EmitValueImpl(), llvm::MachineTraceMetrics::Ensemble::Ensemble(), llvm::UnwindOpcodeAssembler::Finalize(), llvm::SchedDFSImpl::finalize(), llvm::SplitEditor::finish(), llvm::MCContext::GetDwarfFile(), llvm::LLVMContext::getMDKindNames(), llvm::MDNode::getMostGenericRange(), getNoopInput(), llvm::DependenceAnalysis::getSplitIteration(), llvm::Hexagon_CCState::Hexagon_CCState(), llvm::TargetSchedModel::init(), llvm::ARMJITInfo::Initialize(), llvm::LiveRange::join(), llvm::Regex::match(), llvm::IntervalMapImpl::Path::moveLeft(), llvm::raw_ostream::operator<<(), llvm::DWARFDebugLoc::parse(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::sys::path::system_temp_directory(), and llvm::AssemblyWriter::writeAllMDNodes().
|
inline |
Definition at line 413 of file SmallVector.h.
|
inline |
Set the array size to N
, which the current array must have enough capacity for.
This does not construct or destroy any elements in the vector.
Clients can use this in conjunction with capacity() to write past the end of the buffer when they know that more elements are available, and only update the size later. This avoids the cost of value initializing elements which will only be overwritten.
Definition at line 702 of file SmallVector.h.
Referenced by llvm::sys::path::remove_filename(), and llvm::sys::path::replace_extension().
void llvm::SmallVectorImpl< T >::swap | ( | SmallVectorImpl< T > & | RHS | ) |
Definition at line 710 of file SmallVector.h.
References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorBase::BeginX, llvm::SmallVectorTemplateCommon< T >::capacity(), llvm::SmallVectorTemplateBase< T, isPodLike >::destroy_range(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::SmallVectorBase::EndX, llvm::SmallVectorTemplateBase< T, isPodLike >::grow(), llvm::SmallVectorTemplateCommon< T >::isSmall(), llvm::SmallVectorTemplateCommon< T >::setEnd(), llvm::SmallVectorTemplateCommon< T >::size(), std::swap(), and llvm::SmallVectorTemplateBase< T, isPodLike >::uninitialized_copy().
Referenced by llvm::sys::fs::make_absolute(), llvm::LiveIntervals::shrinkToUses(), and std::swap().