LLVM API Documentation

Public Types | Public Member Functions | Protected Member Functions
llvm::SmallVectorImpl< T > Class Template Reference

#include <SmallVector.h>

Inherits llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >.

Inherited by llvm::SmallVector< T, N >.

Collaboration diagram for llvm::SmallVectorImpl< T >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef SuperClass::iterator iterator
typedef SuperClass::size_type size_type

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)
 Add the specified range to the end of the SmallVector.
void append (size_type NumInputs, const T &Elt)
 Add the specified range to the end of the SmallVector.
void assign (unsigned NumElts, const T &Elt)
iterator erase (iterator I)
iterator erase (iterator S, iterator E)
iterator insert (iterator I, T &&Elt)
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)
SmallVectorImploperator= (const SmallVectorImpl &RHS)
SmallVectorImploperator= (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)

Protected Member Functions

 SmallVectorImpl (unsigned N)

Detailed Description

template<typename T>
class llvm::SmallVectorImpl< T >

This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.

Definition at line 340 of file SmallVector.h.


Member Typedef Documentation

template<typename T>
typedef SuperClass::iterator llvm::SmallVectorImpl< T >::iterator

Reimplemented from llvm::SmallVectorTemplateCommon< T >.

Reimplemented in llvm::final< T >.

Definition at line 345 of file SmallVector.h.

template<typename T>
typedef SuperClass::size_type llvm::SmallVectorImpl< T >::size_type

Reimplemented from llvm::SmallVectorTemplateCommon< T >.

Definition at line 346 of file SmallVector.h.


Constructor & Destructor Documentation

template<typename T>
llvm::SmallVectorImpl< T >::SmallVectorImpl ( unsigned  N) [inline, explicit, protected]

Definition at line 350 of file SmallVector.h.

template<typename T>
llvm::SmallVectorImpl< T >::~SmallVectorImpl ( ) [inline]

Definition at line 355 of file SmallVector.h.


Member Function Documentation

template<typename T>
template<typename in_iter >
void llvm::SmallVectorImpl< T >::append ( in_iter  in_start,
in_iter  in_end 
) [inline]

Add the specified range to the end of the SmallVector.

Reimplemented in llvm::SmallString< InternalLen >, llvm::SmallString< 64 >, llvm::SmallString< 128 >, llvm::SmallString< 8 >, and llvm::SmallString< 256 >.

Definition at line 410 of file SmallVector.h.

Referenced by llvm::FoldingSetNodeID::AddNodeID(), llvm::FoldingSetNodeID::AddPointer(), llvm::FoldingSetNodeID::AddString(), llvm::DebugLocEntry::addValues(), llvm::sys::path::append(), llvm::RegPressureTracker::closeBottom(), llvm::RegPressureTracker::closeTop(), ConstantFoldGetElementPtrImpl(), llvm::MCObjectStreamer::EmitBytes(), llvm::MCObjectStreamer::EmitFill(), llvm::MCWinCOFFStreamer::EmitInstToData(), llvm::MCObjectStreamer::EmitInstToFragment(), llvm::FindInsertedValue(), fixupSubprogramName(), llvm::AttributeSet::get(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::DominatorTreeBase< MachineBasicBlock >::getDescendants(), llvm::ScalarEvolution::getMulExpr(), llvm::SelectionDAG::getNode(), llvm::object::MachOObjectFile::getRelocationTypeName(), llvm::object::ELFFile< ELFT >::getRelocationTypeName(), llvm::object::COFFObjectFile::getRelocationTypeName(), llvm::object::ELFObjectFile< ELFT >::getRelocationValueString(), llvm::object::MachOObjectFile::getRelocationValueString(), llvm::object::COFFObjectFile::getRelocationValueString(), llvm::ScalarEvolution::getSMaxExpr(), llvm::ConstantDataArray::getString(), llvm::ScalarEvolution::getUDivExactExpr(), llvm::ScalarEvolution::getUMaxExpr(), getUncompressedData(), llvm::opt::InputArgList::InputArgList(), llvm::SmallVectorImpl< MachineInstr * >::insert(), isPotentiallyReachableInner(), IsValueFullyAvailableInBlock(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::BitstreamCursor::readRecord(), llvm::sys::path::replace_extension(), llvm::EngineBuilder::setMAttrs(), SimplifyAddOperands(), llvm::SmallVector< Inst, 7 >::SmallVector(), SplitAddRecs(), llvm::APInt::toString(), llvm::InstCombiner::visitGetElementPtrInst(), WriteAttributeGroupTable(), WriteModuleMetadata(), WriteModuleMetadataStore(), and llvm::LLVMContextImpl::~LLVMContextImpl().

template<typename T>
void llvm::SmallVectorImpl< T >::append ( size_type  NumInputs,
const T Elt 
) [inline]

Add the specified range to the end of the SmallVector.

Definition at line 424 of file SmallVector.h.

template<typename T>
void llvm::SmallVectorImpl< T >::assign ( unsigned  NumElts,
const T Elt 
) [inline]
template<typename T>
void llvm::SmallVectorImpl< T >::clear ( ) [inline]

Definition at line 365 of file SmallVector.h.

Referenced by llvm::PMDataManager::add(), llvm::DwarfDebug::addDwarfTypeUnitType(), llvm::LiveIntervals::addKillFlags(), llvm::SparcInstrInfo::AnalyzeBranch(), llvm::MSP430InstrInfo::AnalyzeBranch(), llvm::ARMBaseInstrInfo::AnalyzeBranch(), llvm::SystemZInstrInfo::AnalyzeBranch(), llvm::SmallVectorImpl< MachineInstr * >::assign(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), buildGraphFrom(), buildSetsFrom(), llvm::CC_ARM_AAPCS_Custom_HA(), CleanupPointerRootUsers(), llvm::IntEqClasses::clear(), llvm::ArrayRecycler< MachineOperand >::clear(), llvm::LiveIntervalUnion::Query::clear(), llvm::SchedDFSResult::clear(), llvm::SpillPlacement::Node::clear(), llvm::SDDbgInfo::clear(), llvm::SplitAnalysis::clear(), llvm::FunctionLoweringInfo::clear(), llvm::MCInst::clear(), llvm::SparseSet< RootData >::clear(), llvm::LiveRange::clear(), llvm::FoldingSetNodeID::clear(), llvm::SparseMultiSet< VReg2SUnit, VirtReg2IndexFunctor >::clear(), llvm::SelectionDAGBuilder::clear(), llvm::CCState::clearByValRegsInfo(), llvm::FastISel::CallLoweringInfo::clearIns(), llvm::FastISel::CallLoweringInfo::clearOuts(), collectDebugValues(), llvm::SCEVAddRecExpr::computeAccessFunctions(), llvm::ComputeASanStackFrameLayout(), llvm::NamedMDNode::dropAllReferences(), emitComments(), llvm::ConstantPool::emitEntries(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitNoop(), llvm::MachineModuleInfo::EndFunction(), ExpandBVWithShuffles(), llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::ScalarEvolution::findArrayDimensions(), findConsecutiveLoad(), FindMostPopularDest(), llvm::SplitEditor::finish(), llvm::BitstreamCursor::freeState(), llvm::ScalarEvolution::getAddExpr(), getAdjustedPtr(), llvm::SelectionDAGBuilder::getControlRoot(), llvm::TargetSubtargetInfo::getCriticalPathRCs(), llvm::DominatorTreeBase< MachineBasicBlock >::getDescendants(), getMemmoveLoadsAndStores(), llvm::MemoryDependenceAnalysis::getNonLocalPointerDependency(), GetOptionInfo(), llvm::SelectionDAGBuilder::getRoot(), llvm::ScalarEvolution::getUDivExpr(), getUnderlyingObjectsForInstr(), llvm::Loop::getUniqueExitBlocks(), llvm::yaml::ScalarNode::getValue(), insertVector(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), LowerFCOPYSIGN(), LowerVECTOR_SHUFFLE_256(), LowerVECTOR_SHUFFLEv16i8(), llvm::Regex::match(), llvm::MCContext::MCContext(), MoveBelowOrigChain(), llvm::sys::path::native(), llvm::IntervalPressure::openBottom(), llvm::RegionPressure::openBottom(), llvm::IntervalPressure::openTop(), llvm::RegionPressure::openTop(), llvm::BlockFrequencyInfoImplBase::packageLoop(), llvm::cl::ParseCommandLineOptions(), llvm::SpillPlacement::prepare(), llvm::ValueEnumerator::purgeFunction(), llvm::BitstreamCursor::ReadBlockInfoBlock(), llvm::MachineTraceMetrics::releaseMemory(), llvm::LiveIntervals::releaseMemory(), llvm::SlotIndexes::releaseMemory(), removeFinishedSplitUses(), llvm::LiveRange::RenumberValues(), llvm::UnwindOpcodeAssembler::Reset(), llvm::PPCDispatchGroupSBHazardRecognizer::Reset(), llvm::IntervalPressure::reset(), llvm::RegionPressure::reset(), llvm::MachObjectWriter::reset(), llvm::LiveRangeCalc::reset(), llvm::LexicalScopes::reset(), llvm::InlineFunctionInfo::reset(), llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Reset(), llvm::MCLOHContainer::reset(), llvm::MCContext::reset(), llvm::MCStreamer::reset(), llvm::SchedRemainder::reset(), llvm::SchedBoundary::reset(), llvm::TypeFinder::run(), llvm::PEI::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::MachineDominatorTree::runOnMachineFunction(), llvm::SpillPlacement::scanActiveBundles(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::FileRemover::setFile(), llvm::EngineBuilder::setMAttrs(), SimplifyAddOperands(), llvm::SplitCriticalEdge(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::cl::TokenizeGNUCommandLine(), llvm::cl::TokenizeWindowsCommandLine(), llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible(), llvm::MachineBasicBlock::updateTerminator(), llvm::ValueEnumerator::ValueEnumerator(), WriteAttributeGroupTable(), WriteAttributeTable(), writeComdats(), WriteConstants(), WriteFunction(), WriteInstruction(), WriteMDNode(), WriteMetadataAttachment(), WriteModuleInfo(), WriteModuleMetadata(), WriteModuleMetadataStore(), WriteTypeTable(), WriteValueSymbolTable(), llvm::GCOVBlock::~GCOVBlock(), and llvm::MCJIT::~MCJIT().

template<typename T>
iterator llvm::SmallVectorImpl< T >::erase ( iterator  I) [inline]
template<typename T>
iterator llvm::SmallVectorImpl< T >::erase ( iterator  S,
iterator  E 
) [inline]

Definition at line 454 of file SmallVector.h.

template<typename T>
iterator llvm::SmallVectorImpl< T >::insert ( iterator  I,
T &&  Elt 
) [inline]
template<typename T>
iterator llvm::SmallVectorImpl< T >::insert ( iterator  I,
const T Elt 
) [inline]

Definition at line 498 of file SmallVector.h.

template<typename T>
iterator llvm::SmallVectorImpl< T >::insert ( iterator  I,
size_type  NumToInsert,
const T Elt 
) [inline]

Definition at line 527 of file SmallVector.h.

template<typename T>
template<typename ItTy >
iterator llvm::SmallVectorImpl< T >::insert ( iterator  I,
ItTy  From,
ItTy  To 
) [inline]

Definition at line 579 of file SmallVector.h.

template<typename T>
bool llvm::SmallVectorImpl< T >::operator!= ( const SmallVectorImpl< T > &  RHS) const [inline]

Definition at line 643 of file SmallVector.h.

template<typename T>
bool llvm::SmallVectorImpl< T >::operator< ( const SmallVectorImpl< T > &  RHS) const [inline]

Definition at line 647 of file SmallVector.h.

template<typename T >
SmallVectorImpl< T > & llvm::SmallVectorImpl< T >::operator= ( const SmallVectorImpl< T > &  RHS)
template<typename T >
SmallVectorImpl< T > & llvm::SmallVectorImpl< T >::operator= ( SmallVectorImpl< T > &&  RHS)
template<typename T>
bool llvm::SmallVectorImpl< T >::operator== ( const SmallVectorImpl< T > &  RHS) const [inline]

Definition at line 639 of file SmallVector.h.

template<typename T>
T LLVM_ATTRIBUTE_UNUSED_RESULT llvm::SmallVectorImpl< T >::pop_back_val ( ) [inline]

Definition at line 400 of file SmallVector.h.

Referenced by addBlockAndPredsToSet(), AddReachableCodeToWorklist(), AreAnyUnderlyingObjectsAnAlloca(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), buildMultiplyTree(), buildSetsFrom(), llvm::SSAUpdaterImpl< UpdaterT >::CheckIfPHIMatches(), combineRedundantDWordShuffle(), completeEphemeralValues(), ConstHasGlobalValuePredicate(), DeleteDeadInstruction(), deleteDeadInstruction(), DeleteTriviallyDeadInstructions(), determinePointerReadAttrs(), llvm::LiveRangeEdit::eliminateDeadDefs(), findCallees(), llvm::objcarc::FindDependencies(), llvm::FindFunctionBackedges(), llvm::ScalarEvolution::forgetLoop(), llvm::ScalarEvolution::forgetValue(), llvm::DominatorTreeBase< MachineBasicBlock >::getDescendants(), getUnderlyingObjects(), llvm::GetUnderlyingObjects(), llvm::SDNode::hasPredecessorHelper(), llvm::LazyCallGraph::SCC::insertIncomingEdge(), llvm::MachineTraceMetrics::Ensemble::invalidate(), isAllocSiteRemovable(), llvm::LazyCallGraph::SCC::isDescendantOf(), isEphemeralValueOf(), isLeakCheckerRoot(), isOnlyCopiedFromConstantGlobal(), isPotentiallyReachableInner(), IsStoredObjCPointer(), IsValueFullyAvailableInBlock(), llvm::SpillPlacement::iterate(), markAliveBlocks(), llvm::SIInstrInfo::moveToVALU(), llvm::PHITransAddr::PHITranslateWithInsertion(), llvm::MCStreamer::PopSection(), llvm::BitstreamCursor::readRecord(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), llvm::SelectionDAG::RemoveDeadNodes(), rewriteNonInstructionUses(), llvm::SUnit::setDepthDirty(), llvm::SUnit::setHeightDirty(), llvm::simplifyLoop(), llvm::UnrollLoop(), verifyCTRBranch(), llvm::SCEVTraversal< SV >::visitAll(), and llvm::PtrUseVisitor< SliceBuilder >::visitPtr().

template<typename T>
void llvm::SmallVectorImpl< T >::reserve ( unsigned  N) [inline]
template<typename T>
void llvm::SmallVectorImpl< T >::resize ( unsigned  N) [inline]

Definition at line 370 of file SmallVector.h.

Referenced by llvm::Calculate(), llvm::CCState::CCState(), combineX86ShufflesRecursively(), llvm::EHStreamer::computeCallSiteTable(), ConstantFoldGetElementPtrImpl(), llvm::coverage::CounterExpressionBuilder::CounterExpressionBuilder(), llvm::DependenceAnalysis::depends(), llvm::ConnectedVNInfoEqClasses::Distribute(), llvm::DWARFContextInMemory::DWARFContextInMemory(), llvm::MCWinCOFFStreamer::EmitCOFFSecRel32(), llvm::MCWinCOFFStreamer::EmitCOFFSectionIndex(), llvm::MCObjectStreamer::EmitGPRel32Value(), llvm::MCObjectStreamer::EmitGPRel64Value(), llvm::MCObjectStreamer::EmitValueImpl(), llvm::MachineTraceMetrics::Ensemble::Ensemble(), llvm::UnwindOpcodeAssembler::Finalize(), llvm::SplitEditor::finish(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::MCDwarfLineTableHeader::getFile(), llvm::LLVMContext::getMDKindNames(), llvm::MDNode::getMostGenericRange(), getNoopInput(), getPSHUFShuffleMask(), llvm::DependenceAnalysis::getSplitIteration(), llvm::Hexagon_CCState::Hexagon_CCState(), llvm::TargetSchedModel::init(), llvm::SchedRemainder::init(), llvm::SchedBoundary::init(), llvm::LiveRange::join(), llvm::Regex::match(), llvm::IntervalMapImpl::Path::moveLeft(), llvm::object::ExportEntry::moveNext(), llvm::Triple::normalize(), llvm::raw_ostream::operator<<(), llvm::DWARFDebugLoc::parse(), llvm::DWARFDebugLocDWO::parse(), llvm::coverage::RawCoverageMappingReader::read(), llvm::SchedBoundary::reset(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::StructType::setName(), and llvm::AssemblyWriter::writeAllMDNodes().

template<typename T>
void llvm::SmallVectorImpl< T >::resize ( unsigned  N,
const T NV 
) [inline]

Definition at line 383 of file SmallVector.h.

template<typename T>
void llvm::SmallVectorImpl< T >::set_size ( unsigned  N) [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 661 of file SmallVector.h.

Referenced by llvm::sys::path::remove_filename(), and llvm::sys::path::replace_extension().

template<typename T >
void llvm::SmallVectorImpl< T >::swap ( SmallVectorImpl< T > &  RHS)

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