LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
llvm::SmallVectorTemplateBase< T, isPodLike > Class Template Reference

#include <SmallVector.h>

Inherits llvm::SmallVectorTemplateCommon< T >.

Inherited by llvm::SmallVectorImpl< AnalysisID >, llvm::SmallVectorImpl< Arg * >, llvm::SmallVectorImpl< AttributeSpec >, llvm::SmallVectorImpl< BitTestCase >, llvm::SmallVectorImpl< Block >, llvm::SmallVectorImpl< BlockInterference >, llvm::SmallVectorImpl< ByValInfo >, llvm::SmallVectorImpl< char >, llvm::SmallVectorImpl< const char * >, llvm::SmallVectorImpl< const llvm::MCSymbol * >, llvm::SmallVectorImpl< const llvm::MDNode * >, llvm::SmallVectorImpl< const llvm::SCEV * >, llvm::SmallVectorImpl< const llvm::Value * >, llvm::SmallVectorImpl< const uint32_t * >, llvm::SmallVectorImpl< EHFrameRelatedSections >, llvm::SmallVectorImpl< Entry >, llvm::SmallVectorImpl< FreeList * >, llvm::SmallVectorImpl< IdxMBBPair >, llvm::SmallVectorImpl< InsnRange >, llvm::SmallVectorImpl< Inst >, llvm::SmallVectorImpl< InState >, llvm::SmallVectorImpl< int >, llvm::SmallVectorImpl< intptr_t >, llvm::SmallVectorImpl< ISD::InputArg >, llvm::SmallVectorImpl< ISD::OutputArg >, llvm::SmallVectorImpl< LiveInBlock >, llvm::SmallVectorImpl< llvm::AllocaInst * >, llvm::SmallVectorImpl< llvm::AsmRewrite >, llvm::SmallVectorImpl< llvm::BasicBlock * >, llvm::SmallVectorImpl< llvm::BitCodeAbbrevOp >, llvm::SmallVectorImpl< llvm::BlockFrequency >, llvm::SmallVectorImpl< llvm::CCValAssign >, llvm::SmallVectorImpl< llvm::cl::parser::OptionInfo >, llvm::SmallVectorImpl< llvm::CompileUnit * >, llvm::SmallVectorImpl< llvm::DbgVariable * >, llvm::SmallVectorImpl< llvm::detail::PtrUseVisitorBase::UseToVisit >, llvm::SmallVectorImpl< llvm::DIEAbbrevData >, llvm::SmallVectorImpl< llvm::DIEValue * >, llvm::SmallVectorImpl< llvm::DILineInfo >, llvm::SmallVectorImpl< llvm::DotDebugLocEntry >, llvm::SmallVectorImpl< llvm::DwarfAccelTable::Atom >, llvm::SmallVectorImpl< llvm::DWARFCompileUnit * >, llvm::SmallVectorImpl< llvm::DWARFDebugInfoEntryMinimal >, llvm::SmallVectorImpl< llvm::DWARFTypeUnit * >, llvm::SmallVectorImpl< llvm::GCOVBlock * >, llvm::SmallVectorImpl< llvm::GCOVFunction * >, llvm::SmallVectorImpl< llvm::ImmutablePass * >, llvm::SmallVectorImpl< llvm::Instruction * >, llvm::SmallVectorImpl< llvm::JITEventListener * >, llvm::SmallVectorImpl< llvm::LayoutAlignElem >, llvm::SmallVectorImpl< llvm::LexicalScope * >, llvm::SmallVectorImpl< llvm::LiveInterval * >, llvm::SmallVectorImpl< llvm::LiveRange * >, llvm::SmallVectorImpl< llvm::LiveRange::Segment >, llvm::SmallVectorImpl< llvm::MachineBasicBlock * >, llvm::SmallVectorImpl< llvm::MachineInstr * >, llvm::SmallVectorImpl< llvm::MachineTraceMetrics::FixedBlockInfo >, llvm::SmallVectorImpl< llvm::MachineTraceMetrics::LiveInReg >, llvm::SmallVectorImpl< llvm::MachineTraceMetrics::TraceBlockInfo >, llvm::SmallVectorImpl< llvm::MCFixup >, llvm::SmallVectorImpl< llvm::MCOperand >, llvm::SmallVectorImpl< llvm::MCSectionData * >, llvm::SmallVectorImpl< llvm::MCSymbol * >, llvm::SmallVectorImpl< llvm::MDNode * >, llvm::SmallVectorImpl< llvm::MemoryBuffer * >, llvm::SmallVectorImpl< llvm::MipsTargetLowering::ByValArgInfo >, llvm::SmallVectorImpl< llvm::Module * >, llvm::SmallVectorImpl< llvm::opt::Arg * >, llvm::SmallVectorImpl< llvm::Pass * >, llvm::SmallVectorImpl< llvm::PHINode * >, llvm::SmallVectorImpl< llvm::PMDataManager * >, llvm::SmallVectorImpl< llvm::SDDbgValue * >, llvm::SmallVectorImpl< llvm::SDep >, llvm::SmallVectorImpl< llvm::SDNode * >, llvm::SmallVectorImpl< llvm::SDValue >, llvm::SmallVectorImpl< llvm::SlotIndex >, llvm::SmallVectorImpl< llvm::SmallVector< uint64_t, 64 > >, llvm::SmallVectorImpl< llvm::SmallVector< unsigned, 8 > >, llvm::SmallVectorImpl< llvm::SMFixIt >, llvm::SmallVectorImpl< llvm::SMLoc >, llvm::SmallVectorImpl< llvm::SplitAnalysis::BlockInfo >, llvm::SmallVectorImpl< llvm::TrackingVH< llvm::MDNode > >, llvm::SmallVectorImpl< llvm::Type * >, llvm::SmallVectorImpl< llvm::Value * >, llvm::SmallVectorImpl< llvm::WeakVH >, llvm::SmallVectorImpl< Location >, llvm::SmallVectorImpl< LocationList >, llvm::SmallVectorImpl< MCPhysReg >, llvm::SmallVectorImpl< PhiT * >, llvm::SmallVectorImpl< RegUnitInfo >, llvm::SmallVectorImpl< RelocationValueRef >, llvm::SmallVectorImpl< RootData >, llvm::SmallVectorImpl< ScavengedInfo >, llvm::SmallVectorImpl< SectionEntry >, llvm::SmallVectorImpl< Segment >, llvm::SmallVectorImpl< SID >, llvm::SmallVectorImpl< SimpleKey >, llvm::SmallVectorImpl< SMSNode >, llvm::SmallVectorImpl< std::pair< AnalysisID, llvm::IdentifyingPassPtr > >, llvm::SmallVectorImpl< std::pair< BlockFrequency, unsigned > >, llvm::SmallVectorImpl< std::pair< bool, llvm::StringRef > >, llvm::SmallVectorImpl< std::pair< const char *, std::pair< int, const char * > > >, llvm::SmallVectorImpl< std::pair< const MDNode *, const MDNode * > >, llvm::SmallVectorImpl< std::pair< int, int64_t > >, llvm::SmallVectorImpl< std::pair< llvm::SlotIndex, llvm::SlotIndex > >, llvm::SmallVectorImpl< std::pair< MCSectionSubPair, MCSectionSubPair > >, llvm::SmallVectorImpl< std::pair< SID, SmallVector< RelocationValueRef, 2 > > >, llvm::SmallVectorImpl< std::pair< TrackingVH< MDNode >, UnsignedDebugLocPair > >, llvm::SmallVectorImpl< std::pair< unsigned, llvm::MCFragment * > >, llvm::SmallVectorImpl< std::pair< unsigned, unsigned > >, llvm::SmallVectorImpl< std::string * >, llvm::SmallVectorImpl< std::string >, llvm::SmallVectorImpl< sys::llvm::sys::MemoryBlock >, llvm::SmallVectorImpl< TreeData >, llvm::SmallVectorImpl< uint32_t >, llvm::SmallVectorImpl< uint8_t >, llvm::SmallVectorImpl< uintptr_t >, llvm::SmallVectorImpl< unsigned >, llvm::SmallVectorImpl< unsigned char >, llvm::SmallVectorImpl< ValueT >, llvm::SmallVectorImpl< VersionMapEntry >, llvm::SmallVectorImpl< VNInfo * >, and llvm::SmallVectorImpl< VReg2SUnit >.

Collaboration diagram for llvm::SmallVectorTemplateBase< T, isPodLike >:
Collaboration graph
[legend]

Public Member Functions

void push_back (const T &Elt)
 
void pop_back ()
 
- Public Member Functions inherited from llvm::SmallVectorTemplateCommon< T >
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
 
- Public Member Functions inherited from llvm::SmallVectorBase
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

 SmallVectorTemplateBase (size_t Size)
 
void grow (size_t MinSize=0)
 
- Protected Member Functions inherited from llvm::SmallVectorTemplateCommon< T >
 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
 
- Protected Member Functions inherited from llvm::SmallVectorBase
 SmallVectorBase (void *FirstEl, size_t Size)
 
void grow_pod (void *FirstEl, size_t MinSizeInBytes, size_t TSize)
 

Static Protected Member Functions

static void destroy_range (T *S, T *E)
 
template<typename It1 , typename It2 >
static It2 move (It1 I, It1 E, It2 Dest)
 
template<typename It1 , typename It2 >
static It2 move_backward (It1 I, It1 E, It2 Dest)
 
template<typename It1 , typename It2 >
static void uninitialized_move (It1 I, It1 E, It2 Dest)
 
template<typename It1 , typename It2 >
static void uninitialized_copy (It1 I, It1 E, It2 Dest)
 

Additional Inherited Members

- Public Types inherited from llvm::SmallVectorTemplateCommon< T >
typedef size_t size_type
 
typedef ptrdiff_t difference_type
 
typedef T value_type
 
typedef Titerator
 
typedef const Tconst_iterator
 
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
 
typedef std::reverse_iterator
< iterator
reverse_iterator
 
typedef Treference
 
typedef const Tconst_reference
 
typedef Tpointer
 
typedef const Tconst_pointer
 
- Protected Attributes inherited from llvm::SmallVectorBase
void * BeginX
 
void * EndX
 
void * CapacityX
 

Detailed Description

template<typename T, bool isPodLike>
class llvm::SmallVectorTemplateBase< T, isPodLike >

SmallVectorTemplateBase<isPodLike = false> - This is where we put method implementations that are designed to work with non-POD-like T's.

Definition at line 170 of file SmallVector.h.

Constructor & Destructor Documentation

template<typename T, bool isPodLike>
llvm::SmallVectorTemplateBase< T, isPodLike >::SmallVectorTemplateBase ( size_t  Size)
inlineprotected

Definition at line 172 of file SmallVector.h.

Member Function Documentation

template<typename T, bool isPodLike>
static void llvm::SmallVectorTemplateBase< T, isPodLike >::destroy_range ( T S,
T E 
)
inlinestaticprotected
template<typename T , bool isPodLike>
void llvm::SmallVectorTemplateBase< T, isPodLike >::grow ( size_t  MinSize = 0)
protected
template<typename T, bool isPodLike>
template<typename It1 , typename It2 >
static It2 llvm::SmallVectorTemplateBase< T, isPodLike >::move ( It1  I,
It1  E,
It2  Dest 
)
inlinestaticprotected

move - Use move-assignment to move the range [I, E) onto the objects starting with "Dest". This is just <memory>'s std::move, but not all stdlibs actually provide that.

Definition at line 185 of file SmallVector.h.

Referenced by llvm::SmallVectorImpl< std::pair< int, int64_t > >::erase().

template<typename T, bool isPodLike>
template<typename It1 , typename It2 >
static It2 llvm::SmallVectorTemplateBase< T, isPodLike >::move_backward ( It1  I,
It1  E,
It2  Dest 
)
inlinestaticprotected

move_backward - Use move-assignment to move the range [I, E) onto the objects ending at "Dest", moving objects in reverse order. This is just <algorithm>'s std::move_backward, but not all stdlibs actually provide that.

Definition at line 200 of file SmallVector.h.

Referenced by llvm::SmallVectorImpl< std::pair< int, int64_t > >::insert().

template<typename T, bool isPodLike>
void llvm::SmallVectorTemplateBase< T, isPodLike >::pop_back ( )
inline
template<typename T, bool isPodLike>
void llvm::SmallVectorTemplateBase< T, isPodLike >::push_back ( const T Elt)
inline

Definition at line 236 of file SmallVector.h.

Referenced by llvm::opt::Option::accept(), llvm::opt::ArgList::AddAllArgsTranslated(), llvm::opt::ArgList::AddAllArgValues(), llvm::GCOVBlock::addEdge(), llvm::CCState::addInRegsParamInfo(), llvm::FoldingSetNodeID::AddInteger(), llvm::AddLandingPadInfo(), llvm::GCOVBlock::addLine(), llvm::SpillPlacement::Node::addLink(), llvm::SpillPlacement::addLinks(), llvm::LiveRangeCalc::addLiveInBlock(), llvm::PPCFunctionInfo::addMustSaveCR(), llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addPreservedID(), llvm::MachineInstr::addRegisterDead(), llvm::MachineInstr::addRegisterKilled(), llvm::AnalysisUsage::addRequiredID(), llvm::AnalysisUsage::addRequiredTransitiveID(), llvm::RegScavenger::addScavengingFrameIndex(), llvm::FoldingSetNodeID::AddString(), llvm::opt::DerivedArgList::AddSynthesizedArg(), advanceToNextLeafType(), llvm::opt::ArgList::append(), llvm::sys::path::append(), llvm::opt::Arg::Arg(), llvm::yaml::Output::beginFlowSequence(), llvm::yaml::Output::beginMapping(), llvm::DwarfDebug::beginModule(), llvm::yaml::Output::beginSequence(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), buildFromShuffleMostly(), BuildSubAggregate(), llvm::SmallString< 256 >::c_str(), CheckForLiveRegDef(), CheckForLiveRegDefMasked(), llvm::RegPressureTracker::closeBottom(), llvm::LexicalScope::closeInsnRange(), llvm::RegPressureTracker::closeTop(), llvm::PMDataManager::collectRequiredAnalysis(), llvm::DwarfException::ComputeActionsTable(), llvm::MachObjectWriter::ComputeSymbolTable(), llvm::LiveRange::createDeadDef(), llvm::LiveRange::createValueCopy(), llvm::DecodeINSERTPSMask(), llvm::DecodeMOVHLPSMask(), llvm::DecodeMOVLHPSMask(), llvm::DecodePALIGNRMask(), llvm::DecodePSHUFHWMask(), llvm::DecodePSHUFLWMask(), llvm::DecodePSHUFMask(), llvm::DecodeSHUFPMask(), llvm::DecodeUNPCKHMask(), llvm::DecodeUNPCKLMask(), llvm::DecodeVPERM2X128Mask(), llvm::DecodeVPERMMask(), llvm::RegPressureTracker::discoverLiveIn(), llvm::RegPressureTracker::discoverLiveOut(), llvm::ConnectedVNInfoEqClasses::Distribute(), EmitDarwinBCHeaderAndTrailer(), encodeUTF8(), llvm::BitstreamCursor::EnterSubBlock(), llvm::DIBuilder::finalize(), llvm::finalizeBundle(), llvm::SSAUpdaterImpl< UpdaterT >::FindAvailableVals(), llvm::MachineInstr::findTiedOperandIdx(), llvm::SplitEditor::finish(), firstRealType(), fixupSubprogramName(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), llvm::ConstantArray::get(), llvm::ConstantVector::get(), llvm::SelectionDAG::getConstant(), llvm::cl::generic_parser_base::getExtraOptionNames(), llvm::Intrinsic::getIntrinsicInfoTableEntries(), llvm::DWARFContext::getLineInfoForAddressRange(), llvm::MCContext::getMachOSection(), llvm::ManagedStringPool::getManagedString(), llvm::Mangler::getNameWithPrefix(), llvm::LiveRange::getNextValue(), GetOptionInfo(), llvm::AMDGPUTargetLowering::getOriginalFunctionArgs(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), GetRegistersForValue(), llvm::GetReturnInfo(), llvm::RegScavenger::getScavengingFrameIndices(), llvm::ShuffleVectorInst::getShuffleMask(), llvm::DataLayout::getStringRepresentation(), getTargetShuffleMask(), getUnderlyingObjectsForInstr(), llvm::yaml::ScalarNode::getValue(), llvm::IntEqClasses::grow(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::ImutAVLTreeGenericIterator(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::insert(), llvm::SmallVectorImpl< std::pair< int, int64_t > >::insert(), llvm::LiveIntervals::insertMBBInMaps(), llvm::SlotIndexes::insertMBBInMaps(), llvm::isPotentiallyReachable(), llvm::SpillPlacement::iterate(), llvm::LiveRange::join(), LookupNearestOption(), llvm::TargetLowering::LowerCallTo(), llvm::LowerDbgDeclare(), llvm::R600TargetLowering::LowerOperation(), llvm::object::MachOObjectFile::MachOObjectFile(), llvm::opt::DerivedArgList::MakeFlagArg(), llvm::opt::InputArgList::MakeIndex(), llvm::opt::DerivedArgList::MakeJoinedArg(), llvm::opt::DerivedArgList::MakePositionalArg(), llvm::opt::DerivedArgList::MakeSeparateArg(), llvm::MachineFrameInfo::mapLocalFrameObject(), llvm::MCDwarfCallFrameFragment::MCDwarfCallFrameFragment(), llvm::MCDwarfLineAddrFragment::MCDwarfLineAddrFragment(), llvm::MCLEBFragment::MCLEBFragment(), llvm::MCStreamer::MCStreamer(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::operator++(), llvm::SmallString< 256 >::operator+=(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::operator--(), llvm::X86InstrInfo::optimizeLoadInstr(), OptimizeVectorResize(), parseBackslash(), ParseFunctionArgs(), llvm::yaml::Output::postflightKey(), llvm::MachineInstr::print(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), promoteSingleBlockAlloca(), RegisterOperands::pushRegUnits(), llvm::MCStreamer::PushSection(), pushValue(), PushValueAndType(), llvm::MachineInstr::readsWritesVirtualRegister(), llvm::RegPressureTracker::recede(), llvm::opt::Arg::render(), llvm::opt::Arg::renderAsInput(), llvm::LiveRange::RenumberValues(), llvm::sys::path::replace_extension(), ReplaceATOMIC_OP_64(), llvm::replaceDbgDeclareForAlloca(), llvm::UnwindOpcodeAssembler::Reset(), llvm::MCStreamer::reset(), RewriteHeapSROALoadUser(), llvm::LiveVariables::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::SpillPlacement::scanActiveBundles(), llvm::RegScavenger::scavengeRegister(), llvm::Instruction::setMetadata(), llvm::StructType::setName(), llvm::MachineModuleInfo::setVariableDbgInfo(), llvm::MachineBasicBlock::SplitCriticalEdge(), SRAGlobal(), llvm::LiveRegUnits::stepForward(), llvm::cl::TokenizeGNUCommandLine(), llvm::cl::TokenizeWindowsCommandLine(), llvm::Twine::toNullTerminatedStringRef(), llvm::APFloat::toString(), llvm::APInt::toString(), TrackDefUses(), llvm::IntEqClasses::uncompress(), llvm::UnwindOpcodeAssembler::UnwindOpcodeAssembler(), updatePhysDepsDownwards(), updatePhysDepsUpwards(), and llvm::cl::ValuesClass< DataType >::ValuesClass().

template<typename T, bool isPodLike>
template<typename It1 , typename It2 >
static void llvm::SmallVectorTemplateBase< T, isPodLike >::uninitialized_copy ( It1  I,
It1  E,
It2  Dest 
)
inlinestaticprotected

uninitialized_copy - Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements as needed.

Definition at line 225 of file SmallVector.h.

Referenced by llvm::SmallVectorImpl< std::pair< int, int64_t > >::insert(), llvm::SmallVectorImpl< T >::operator=(), llvm::SmallVectorImpl< T >::swap(), and llvm::SmallVectorTemplateBase< T, true >::uninitialized_move().

template<typename T, bool isPodLike>
template<typename It1 , typename It2 >
static void llvm::SmallVectorTemplateBase< T, isPodLike >::uninitialized_move ( It1  I,
It1  E,
It2  Dest 
)
inlinestaticprotected

uninitialized_move - Move the range [I, E) into the uninitialized memory starting with "Dest", constructing elements as needed.

Definition at line 213 of file SmallVector.h.

Referenced by llvm::SmallVectorTemplateBase< T, isPodLike >::grow(), and llvm::SmallVectorImpl< std::pair< int, int64_t > >::insert().


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