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 (size_type N)
void resize (size_type N, const T &NV)
void reserve (size_type 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 (size_type 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 (size_type 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 385 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< UnitType >.

Definition at line 390 of file SmallVector.h.

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

Reimplemented from llvm::SmallVectorTemplateCommon< T >.

Definition at line 391 of file SmallVector.h.


Constructor & Destructor Documentation

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

Definition at line 395 of file SmallVector.h.

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

Definition at line 400 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 455 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(), 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(), isPotentiallyReachableInner(), IsValueFullyAvailableInBlock(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::BitstreamCursor::readRecord(), llvm::sys::path::replace_extension(), llvm::EngineBuilder::setMAttrs(), SimplifyAddOperands(), 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 469 of file SmallVector.h.

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

Definition at line 410 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::MipsCCState::AnalyzeCallOperands(), llvm::MipsCCState::AnalyzeCallResult(), llvm::MipsCCState::AnalyzeFormalArguments(), llvm::MipsCCState::AnalyzeReturn(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), buildGraphFrom(), buildSetsFrom(), llvm::CC_ARM_AAPCS_Custom_HA(), llvm::MipsCCState::CheckReturn(), CleanupPointerRootUsers(), llvm::StatepointLoweringState::clear(), llvm::IntEqClasses::clear(), llvm::StringTableBuilder::clear(), llvm::SpillPlacement::Node::clear(), llvm::ArrayRecycler< MachineOperand >::clear(), llvm::SchedDFSResult::clear(), llvm::LiveIntervalUnion::Query::clear(), llvm::SplitAnalysis::clear(), llvm::SDDbgInfo::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(), combineX86ShufflesRecursively(), llvm::SCEVAddRecExpr::computeAccessFunctions(), llvm::ComputeASanStackFrameLayout(), llvm::RuntimeDyldELF::deregisterEHFrames(), emitComments(), llvm::ConstantPool::emitEntries(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::MipsELFStreamer::EmitInstruction(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitNoop(), llvm::MipsELFStreamer::EmitValueImpl(), 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::TargetLowering::LowerCallTo(), 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::RuntimeDyldELF::registerEHFrames(), 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::LexicalScopes::reset(), llvm::LiveRangeCalc::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::ARMAsmPrinter::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::MipsELFStreamer::SwitchSection(), 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(), WriteValueAsMetadata(), WriteValueSymbolTable(), llvm::GCOVBlock::~GCOVBlock(), and llvm::MCJIT::~MCJIT().

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

Definition at line 487 of file SmallVector.h.

Referenced by llvm::RegPressureTracker::closeBottom(), llvm::RegPressureTracker::closeTop(), collectOperands(), completeEphemeralValues(), DecomposeGEPExpression(), llvm::ConnectedVNInfoEqClasses::Distribute(), llvm::cl::ExpandResponseFiles(), llvm::ScalarEvolution::findArrayDimensions(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMulExpr(), getNaturalGEPWithType(), getPSHUFShuffleMask(), llvm::ScalarEvolution::getSMaxExpr(), llvm::ScalarEvolution::getUMaxExpr(), isVectorPromotionViable(), llvm::LiveRange::join(), lowerV16I8VectorShuffle(), lowerV8I16SingleInputVectorShuffle(), llvm::LiveRange::MergeValueNumberInto(), OptimizeAndOrXor(), llvm::MachineInstr::print(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::StatepointLoweringState::relocCallVisited(), llvm::Inliner::removeDeadFunctions(), removeFinishedSplitUses(), RemoveInstInputs(), llvm::LazyCallGraph::SCC::removeIntraSCCEdge(), llvm::cl::parser< const PassInfo * >::removeLiteralOption(), llvm::ExecutionEngine::removeModule(), llvm::SUnit::removePred(), llvm::LiveRange::removeSegment(), llvm::LiveRange::removeValNo(), replaceConstantExprOp(), llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Reset(), llvm::HexagonInstrInfo::ReverseBranchCondition(), llvm::Inliner::runOnSCC(), SimplifyBranchOnICmpChain(), llvm::DebugLocEntry::sortUniqueValues(), llvm::MachineModuleInfo::TidyLandingPads(), llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible(), VerifySubExpr(), and llvm::InstCombiner::visitLandingPadInst().

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

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

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

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

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

Definition at line 688 of file SmallVector.h.

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

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

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

Definition at line 445 of file SmallVector.h.

Referenced by addBlockAndPredsToSet(), AddReachableCodeToWorklist(), AreAnyUnderlyingObjectsAnAlloca(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), buildMultiplyTree(), buildSetsFrom(), llvm::SSAUpdaterImpl< UpdaterT >::CheckIfPHIMatches(), combineRedundantDWordShuffle(), ConstHasGlobalValuePredicate(), containsConstantSomewhere(), 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::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 ( size_type  N) [inline]
template<typename T>
void llvm::SmallVectorImpl< T >::resize ( size_type  N) [inline]

Definition at line 415 of file SmallVector.h.

Referenced by llvm::Calculate(), llvm::CCState::CCState(), llvm::EHStreamer::computeCallSiteTable(), ConstantFoldGetElementPtrImpl(), 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(), is128BitLaneRepeatedShuffleMask(), llvm::LiveRange::join(), lowerVectorShuffleByMerging128BitLanes(), 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(), llvm::StatepointLoweringState::startNewStatepoint(), and llvm::AssemblyWriter::writeAllMDNodes().

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

Definition at line 428 of file SmallVector.h.

template<typename T>
void llvm::SmallVectorImpl< T >::set_size ( size_type  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 706 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: