LLVM API Documentation

Public Member Functions | Protected Member Functions | Protected Attributes
llvm::SmallVectorBase Class Reference

This is all the non-templated stuff common to all SmallVectors. More...

#include <SmallVector.h>

Inherited by llvm::SmallVectorTemplateCommon< T, typename >, llvm::SmallVectorTemplateCommon< AllocaInst * >, llvm::SmallVectorTemplateCommon< AnalysisID >, llvm::SmallVectorTemplateCommon< Arg * >, llvm::SmallVectorTemplateCommon< AsmRewrite >, llvm::SmallVectorTemplateCommon< Atom >, llvm::SmallVectorTemplateCommon< AttributeSpec >, llvm::SmallVectorTemplateCommon< BasicBlock * >, llvm::SmallVectorTemplateCommon< BitCodeAbbrevOp >, llvm::SmallVectorTemplateCommon< BitTestCase >, llvm::SmallVectorTemplateCommon< Block >, llvm::SmallVectorTemplateCommon< BlockFrequency >, llvm::SmallVectorTemplateCommon< BlockInfo >, llvm::SmallVectorTemplateCommon< BlockInterference >, llvm::SmallVectorTemplateCommon< BlockNode >, llvm::SmallVectorTemplateCommon< ByValArgInfo >, llvm::SmallVectorTemplateCommon< ByValInfo >, llvm::SmallVectorTemplateCommon< CCValAssign >, llvm::SmallVectorTemplateCommon< char >, llvm::SmallVectorTemplateCommon< const char * >, llvm::SmallVectorTemplateCommon< const Comdat * >, llvm::SmallVectorTemplateCommon< const Function * >, llvm::SmallVectorTemplateCommon< const MachineInstr * >, llvm::SmallVectorTemplateCommon< const MDNode * >, llvm::SmallVectorTemplateCommon< const SCEV * >, llvm::SmallVectorTemplateCommon< const uint32_t * >, llvm::SmallVectorTemplateCommon< const Value * >, llvm::SmallVectorTemplateCommon< ConstantPoolEntry >, llvm::SmallVectorTemplateCommon< CounterExpression >, llvm::SmallVectorTemplateCommon< CriticalEdge >, llvm::SmallVectorTemplateCommon< DbgVariable * >, llvm::SmallVectorTemplateCommon< DebugLocEntry >, llvm::SmallVectorTemplateCommon< DebugLocList >, llvm::SmallVectorTemplateCommon< DICompileUnit >, llvm::SmallVectorTemplateCommon< DIEAbbrevData >, llvm::SmallVectorTemplateCommon< DIEValue * >, llvm::SmallVectorTemplateCommon< DIGlobalVariable >, llvm::SmallVectorTemplateCommon< DILineInfo >, llvm::SmallVectorTemplateCommon< DIScope >, llvm::SmallVectorTemplateCommon< DISubprogram >, llvm::SmallVectorTemplateCommon< DIType >, llvm::SmallVectorTemplateCommon< DWARFDebugInfoEntryMinimal >, llvm::SmallVectorTemplateCommon< EHFrameRelatedSections >, llvm::SmallVectorTemplateCommon< Entry >, llvm::SmallVectorTemplateCommon< FixedBlockInfo >, llvm::SmallVectorTemplateCommon< FreeList * >, llvm::SmallVectorTemplateCommon< Function * >, llvm::SmallVectorTemplateCommon< GCOVEdge * >, llvm::SmallVectorTemplateCommon< HandlerInfo >, llvm::SmallVectorTemplateCommon< IdxMBBPair >, llvm::SmallVectorTemplateCommon< ImmutablePass * >, llvm::SmallVectorTemplateCommon< InsnRange >, llvm::SmallVectorTemplateCommon< Inst >, llvm::SmallVectorTemplateCommon< InState >, llvm::SmallVectorTemplateCommon< Instruction * >, llvm::SmallVectorTemplateCommon< int >, llvm::SmallVectorTemplateCommon< ISD::ArgFlagsTy >, llvm::SmallVectorTemplateCommon< ISD::InputArg >, llvm::SmallVectorTemplateCommon< ISD::OutputArg >, llvm::SmallVectorTemplateCommon< LayoutAlignElem >, llvm::SmallVectorTemplateCommon< LexicalScope * >, llvm::SmallVectorTemplateCommon< LiveInBlock >, llvm::SmallVectorTemplateCommon< LiveInReg >, llvm::SmallVectorTemplateCommon< LiveInterval * >, llvm::SmallVectorTemplateCommon< LiveOutReg >, llvm::SmallVectorTemplateCommon< LiveRange * >, llvm::SmallVectorTemplateCommon< LiveRange::Segment >, llvm::SmallVectorTemplateCommon< Location >, llvm::SmallVectorTemplateCommon< LocationList >, llvm::SmallVectorTemplateCommon< MachineBasicBlock * >, llvm::SmallVectorTemplateCommon< MachineInstr * >, llvm::SmallVectorTemplateCommon< MCDwarfFile >, llvm::SmallVectorTemplateCommon< MCFixup >, llvm::SmallVectorTemplateCommon< MCLOHDirective >, llvm::SmallVectorTemplateCommon< MCOperand >, llvm::SmallVectorTemplateCommon< MCPhysReg >, llvm::SmallVectorTemplateCommon< MCSectionData * >, llvm::SmallVectorTemplateCommon< MCSymbol * >, llvm::SmallVectorTemplateCommon< MILOHDirective >, llvm::SmallVectorTemplateCommon< Node * >, llvm::SmallVectorTemplateCommon< NodeState >, llvm::SmallVectorTemplateCommon< object::OwningBinary< object::Archive > >, llvm::SmallVectorTemplateCommon< OptionInfo >, llvm::SmallVectorTemplateCommon< Pass * >, llvm::SmallVectorTemplateCommon< PHINode * >, llvm::SmallVectorTemplateCommon< PhiT * >, llvm::SmallVectorTemplateCommon< PMDataManager * >, llvm::SmallVectorTemplateCommon< PointerAlignElem >, llvm::SmallVectorTemplateCommon< PointerUnion< Function *, Node * > >, llvm::SmallVectorTemplateCommon< RangeSpan >, llvm::SmallVectorTemplateCommon< RangeSpanList >, llvm::SmallVectorTemplateCommon< RegUnitInfo >, llvm::SmallVectorTemplateCommon< RelocationValueRef >, llvm::SmallVectorTemplateCommon< RootData >, llvm::SmallVectorTemplateCommon< ScavengedInfo >, llvm::SmallVectorTemplateCommon< SCC * >, llvm::SmallVectorTemplateCommon< SDDbgValue * >, llvm::SmallVectorTemplateCommon< SDep >, llvm::SmallVectorTemplateCommon< SDNode * >, llvm::SmallVectorTemplateCommon< SDValue >, llvm::SmallVectorTemplateCommon< SectionEntry >, llvm::SmallVectorTemplateCommon< Segment >, llvm::SmallVectorTemplateCommon< SID >, llvm::SmallVectorTemplateCommon< SimpleKey >, llvm::SmallVectorTemplateCommon< SlotIndex >, llvm::SmallVectorTemplateCommon< SmallString< 32 > >, llvm::SmallVectorTemplateCommon< SmallVector< unsigned, 8 > >, llvm::SmallVectorTemplateCommon< SMFixIt >, llvm::SmallVectorTemplateCommon< SMLoc >, llvm::SmallVectorTemplateCommon< SMSNode >, llvm::SmallVectorTemplateCommon< std::pair< AnalysisID, IdentifyingPassPtr > >, llvm::SmallVectorTemplateCommon< std::pair< BlockFrequency, unsigned > >, llvm::SmallVectorTemplateCommon< std::pair< BlockNode, BlockMass > >, llvm::SmallVectorTemplateCommon< std::pair< bool, StringRef > >, llvm::SmallVectorTemplateCommon< std::pair< const char *, std::pair< int, const char * > > >, llvm::SmallVectorTemplateCommon< std::pair< const MDNode *, const MDNode * > >, llvm::SmallVectorTemplateCommon< std::pair< int, int64_t > >, llvm::SmallVectorTemplateCommon< std::pair< MCSectionSubPair, MCSectionSubPair > >, llvm::SmallVectorTemplateCommon< std::pair< Node *, iterator > >, llvm::SmallVectorTemplateCommon< std::pair< SID, GOTRelocations > >, llvm::SmallVectorTemplateCommon< std::pair< SlotIndex, SlotIndex > >, llvm::SmallVectorTemplateCommon< std::pair< std::string, GCOVCoverage > >, llvm::SmallVectorTemplateCommon< std::pair< std::unique_ptr< DwarfTypeUnit >, DICompositeType > >, llvm::SmallVectorTemplateCommon< std::pair< unsigned, MCFragment * > >, llvm::SmallVectorTemplateCommon< std::pair< unsigned, unsigned > >, llvm::SmallVectorTemplateCommon< std::pair< void *, size_t > >, llvm::SmallVectorTemplateCommon< std::string * >, llvm::SmallVectorTemplateCommon< std::string >, llvm::SmallVectorTemplateCommon< std::unique_ptr< Arg > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< DbgVariable > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< DwarfUnit > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< GCOVBlock > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< GCOVEdge > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< GCOVFunction > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< MemoryBuffer > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< MipsOptionRecord > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< Module > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< ObjectImage > >, llvm::SmallVectorTemplateCommon< std::unique_ptr< UnitType > >, llvm::SmallVectorTemplateCommon< StringRef >, llvm::SmallVectorTemplateCommon< SUnit * >, llvm::SmallVectorTemplateCommon< sys::MemoryBlock >, llvm::SmallVectorTemplateCommon< T >, llvm::SmallVectorTemplateCommon< TraceBlockInfo >, llvm::SmallVectorTemplateCommon< TrackingVH< MDNode > >, llvm::SmallVectorTemplateCommon< TreeData >, llvm::SmallVectorTemplateCommon< Type * >, llvm::SmallVectorTemplateCommon< uint32_t >, llvm::SmallVectorTemplateCommon< uint8_t >, llvm::SmallVectorTemplateCommon< uintptr_t >, llvm::SmallVectorTemplateCommon< unsigned >, llvm::SmallVectorTemplateCommon< unsigned char >, llvm::SmallVectorTemplateCommon< UseToVisit >, llvm::SmallVectorTemplateCommon< Value * >, llvm::SmallVectorTemplateCommon< Value >, llvm::SmallVectorTemplateCommon< ValueT >, llvm::SmallVectorTemplateCommon< VariableDbgInfo >, llvm::SmallVectorTemplateCommon< VersionMapEntry >, llvm::SmallVectorTemplateCommon< VNInfo * >, llvm::SmallVectorTemplateCommon< void * >, llvm::SmallVectorTemplateCommon< VReg2SUnit >, llvm::SmallVectorTemplateCommon< WeakVH >, and llvm::SmallVectorTemplateCommon< Weight >.

Collaboration diagram for llvm::SmallVectorBase:
Collaboration graph
[legend]

List of all members.

Public Member Functions

size_t size_in_bytes () const
 This returns size()*sizeof(T).
size_t capacity_in_bytes () const
 capacity_in_bytes - This returns capacity()*sizeof(T).
bool LLVM_ATTRIBUTE_UNUSED_RESULT empty () const

Protected Member Functions

 SmallVectorBase (void *FirstEl, size_t Size)
void grow_pod (void *FirstEl, size_t MinSizeInBytes, size_t TSize)

Protected Attributes

void * BeginX
void * EndX
void * CapacityX

Detailed Description

This is all the non-templated stuff common to all SmallVectors.

Definition at line 33 of file SmallVector.h.


Constructor & Destructor Documentation

llvm::SmallVectorBase::SmallVectorBase ( void *  FirstEl,
size_t  Size 
) [inline, protected]

Definition at line 38 of file SmallVector.h.


Member Function Documentation

size_t llvm::SmallVectorBase::capacity_in_bytes ( ) const [inline]

capacity_in_bytes - This returns capacity()*sizeof(T).

Definition at line 52 of file SmallVector.h.

References BeginX, and CapacityX.

Referenced by llvm::capacity_in_bytes(), and grow_pod().

Definition at line 56 of file SmallVector.h.

References BeginX, and EndX.

Referenced by llvm::PMDataManager::add(), AddAliasScopeMetadata(), addBlockAndPredsToSet(), llvm::DwarfDebug::addDwarfTypeUnitType(), addRange(), llvm::DwarfCompileUnit::addRange(), AddReachableCodeToWorklist(), llvm::MachineInstr::addRegisterDead(), llvm::MachineInstr::addRegisterKilled(), advanceToNextLeafType(), llvm::AllocationOrder::AllocationOrder(), llvm::LoopInfoBase< BlockT, LoopT >::Analyze(), llvm::SparcInstrInfo::AnalyzeBranch(), llvm::MSP430InstrInfo::AnalyzeBranch(), llvm::ARMBaseInstrInfo::AnalyzeBranch(), llvm::SystemZInstrInfo::AnalyzeBranch(), llvm::sys::path::append(), AreAnyUnderlyingObjectsAnAlloca(), argsAreStructReturn(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::atEnd(), llvm::SmallVectorTemplateCommon< MachineInstr * >::back(), llvm::DwarfDebug::beginFunction(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), buildGEP(), buildGraphFrom(), buildMultiplyTree(), llvm::ScheduleDAGInstrs::buildSchedGraph(), buildSetsFrom(), callIsStructReturn(), llvm::MachineBasicBlock::canFallThrough(), llvm::SSAUpdaterImpl< UpdaterT >::CheckIfPHIMatches(), llvm::ArrayRecycler< MachineOperand >::clear(), llvm::RegPressureTracker::closeBottom(), llvm::RegPressureTracker::closeTop(), combineRedundantDWordShuffle(), completeEphemeralValues(), llvm::SCEVAddRecExpr::computeAccessFunctions(), llvm::ConstantAggrKeyType< ConstantClass >::ConstantAggrKeyType(), llvm::ConstantExprKeyType::ConstantExprKeyType(), ConstantFoldGetElementPtrImpl(), ConstHasGlobalValuePredicate(), CrashHandler(), DeleteDeadInstruction(), deleteDeadInstruction(), DeleteTriviallyDeadInstructions(), llvm::SCEVAddRecExpr::delinearize(), determinePointerReadAttrs(), llvm::AsmPrinter::doFinalization(), llvm::LexicalScope::dump(), llvm::GCOVBlock::dump(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::LiveRangeEdit::eliminateDeadDefs(), EliminateDeadSwitchCases(), llvm::EmitAnyX86InstComments(), llvm::ConstantPool::emitEntries(), llvm::PPCFrameLowering::emitEpilogue(), llvm::X86AsmPrinter::EmitInstruction(), llvm::PPCFrameLowering::emitPrologue(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::ConstantPool::empty(), llvm::SDDbgInfo::empty(), llvm::SparseSet< RootData >::empty(), llvm::LiveRange::empty(), llvm::Eval(), llvm::ScalarEvolution::findArrayDimensions(), findCallees(), llvm::objcarc::FindDependencies(), llvm::FindFunctionBackedges(), FindMostPopularDest(), firstRealType(), FixTail(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), llvm::ScalarEvolution::forgetLoop(), llvm::ScalarEvolution::forgetValue(), llvm::formLCSSA(), llvm::SmallVectorTemplateCommon< MachineInstr * >::front(), llvm::ScalarEvolution::getAddExpr(), llvm::SelectionDAGBuilder::getControlRoot(), llvm::MCStreamer::getCurrentSection(), llvm::DominatorTreeBase< MachineBasicBlock >::getDescendants(), llvm::MCDwarfLineTableHeader::getFile(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), llvm::ScalarEvolution::getMulExpr(), llvm::MemoryDependenceAnalysis::getNonLocalCallDependency(), llvm::MCStreamer::getPreviousSection(), llvm::object::ELFObjectFile< ELFT >::getRelocationValueString(), llvm::SelectionDAGBuilder::getRoot(), llvm::ScalarEvolution::getSMaxExpr(), llvm::DataLayout::getStringRepresentation(), llvm::MCSectionData::getSubsectionInsertionPoint(), getTargetShuffleMask(), llvm::ScalarEvolution::getUMaxExpr(), getUnderlyingObjects(), llvm::GetUnderlyingObjects(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::getVisitState(), llvm::LiveRange::hasAtLeastOneValue(), llvm::MipsTargetLowering::MipsCC::hasByValArg(), llvm::SDNode::hasPredecessorHelper(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), llvm::InlineFunction(), llvm::XCoreInstrInfo::InsertBranch(), llvm::MipsInstrInfo::InsertBranch(), llvm::NVPTXInstrInfo::InsertBranch(), llvm::HexagonInstrInfo::InsertBranch(), llvm::SparcInstrInfo::InsertBranch(), llvm::MSP430InstrInfo::InsertBranch(), llvm::ARMBaseInstrInfo::InsertBranch(), llvm::PPCInstrInfo::InsertBranch(), llvm::AArch64InstrInfo::InsertBranch(), llvm::SystemZInstrInfo::InsertBranch(), llvm::R600InstrInfo::InsertBranch(), llvm::LazyCallGraph::insertEdge(), llvm::LazyCallGraph::SCC::insertIncomingEdge(), InstCombineStoreToCast(), llvm::MachineTraceMetrics::Ensemble::invalidate(), isAllocSiteRemovable(), llvm::LazyCallGraph::SCC::isDescendantOf(), isEphemeralValueOf(), isLeakCheckerRoot(), isOnlyCopiedFromConstantGlobal(), isPotentiallyReachableInner(), IsStoredObjCPointer(), llvm::MCContext::isValidDwarfFileNumber(), IsValueFullyAvailableInBlock(), llvm::SpillPlacement::iterate(), LinearizeExprTree(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), llvm::HexagonTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), LowerCallResult(), llvm::TargetLowering::LowerCallTo(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::SystemZTargetLowering::LowerReturn(), markAliveBlocks(), llvm::object::ExportEntry::moveNext(), llvm::SIInstrInfo::moveToVALU(), nextRealType(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::operator*(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::operator++(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::operator--(), llvm::BranchFolder::OptimizeFunction(), llvm::cl::ParseCommandLineOptions(), llvm::HexagonInstrInfo::PredicateInstruction(), PrepareTailCall(), llvm::MachineInstr::print(), llvm::AssemblyWriter::printInstruction(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), processInstruction(), llvm::BitstreamCursor::ReadBlockEnd(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), llvm::Inliner::removeDeadFunctions(), llvm::SelectionDAG::RemoveDeadNodes(), llvm::PMDataManager::removeDeadPasses(), llvm::LazyCallGraph::removeEdge(), llvm::MemoryDependenceAnalysis::removeInstruction(), llvm::LazyCallGraph::SCC::removeIntraSCCEdge(), llvm::IntervalMapImpl::Path::replaceRoot(), llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Reset(), llvm::HexagonInstrInfo::ReverseBranchCondition(), rewriteLoopExitBlock(), rewriteNonInstructionUses(), llvm::DAGTypeLegalizer::run(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::Inliner::runOnSCC(), llvm::SpillPlacement::scanActiveBundles(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::EngineBuilder::selectTarget(), llvm::SUnit::setDepthDirty(), llvm::SUnit::setHeightDirty(), llvm::Instruction::setMetadata(), llvm::LiveIntervals::shrinkToUses(), llvm::simplifyLoop(), simplifyOneLoop(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::skipToParent(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SmallVector< Inst, 7 >::SmallVector(), SplitAddRecs(), llvm::SplitCriticalEdge(), llvm::SplitLandingPadPredecessors(), llvm::MCStreamer::SubSection(), llvm::cl::TokenizeGNUCommandLine(), llvm::cl::TokenizeWindowsCommandLine(), llvm::APFloat::toString(), llvm::UnrollLoop(), llvm::DominatorTreeBase< MachineBasicBlock >::updateDFSNumbers(), llvm::MachineBasicBlock::updateTerminator(), verifyCTRBranch(), llvm::LoopBase< BlockT, LoopT >::verifyLoop(), llvm::SCEVTraversal< SV >::visitAll(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitLandingPadInst(), llvm::PtrUseVisitor< SliceBuilder >::visitPtr(), WriteMetadataAttachment(), WriteModuleMetadataStore(), llvm::ArrayRecycler< MachineOperand >::~ArrayRecycler(), and llvm::AsmPrinter::~AsmPrinter().

void SmallVectorBase::grow_pod ( void *  FirstEl,
size_t  MinSizeInBytes,
size_t  TSize 
) [protected]

This is an implementation of the grow() method which only works on POD-like data types and is out of line to reduce code duplication.

grow_pod - This is an implementation of the grow() method which only works on POD-like datatypes and is out of line to reduce code duplication.

Definition at line 19 of file SmallVector.cpp.

References BeginX, capacity_in_bytes(), CapacityX, EndX, llvm::LibFunc::malloc, llvm::LibFunc::memcpy, llvm::LibFunc::realloc, and size_in_bytes().

size_t llvm::SmallVectorBase::size_in_bytes ( ) const [inline]

This returns size()*sizeof(T).

Definition at line 47 of file SmallVector.h.

References BeginX, and EndX.

Referenced by grow_pod().


Member Data Documentation

void* llvm::SmallVectorBase::BeginX [protected]
void * llvm::SmallVectorBase::EndX [protected]

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