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)
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, 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 >

SmallVectorImpl - 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 346 of file SmallVector.h.


Member Typedef Documentation

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

Reimplemented from llvm::SmallVectorTemplateCommon< T >.

Definition at line 351 of file SmallVector.h.

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

Reimplemented from llvm::SmallVectorTemplateCommon< T >.

Definition at line 352 of file SmallVector.h.


Constructor & Destructor Documentation

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

Definition at line 356 of file SmallVector.h.

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

Definition at line 361 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]

append - 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 417 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]

append - Add the specified range to the end of the SmallVector.

Definition at line 432 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 371 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(), 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::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 462 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 506 of file SmallVector.h.

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

Definition at line 535 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 587 of file SmallVector.h.

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

Definition at line 651 of file SmallVector.h.

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

Definition at line 655 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 647 of file SmallVector.h.

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

Definition at line 406 of file SmallVector.h.

Referenced by addBlockAndPredsToSet(), AddReachableCodeToWorklist(), AreAnyUnderlyingObjectsAnAlloca(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), buildMultiplyTree(), llvm::SSAUpdaterImpl< UpdaterT >::CheckIfPHIMatches(), combineRedundantDWordShuffle(), 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(), 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 376 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::ARMJITInfo::Initialize(), 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 389 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 669 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: