LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::SmallVectorBase Class Reference

#include <SmallVector.h>

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

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

Public Member Functions

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

 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

SmallVectorBase - 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 
)
inlineprotected

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().

bool LLVM_ATTRIBUTE_UNUSED_RESULT llvm::SmallVectorBase::empty ( ) const
inline

Definition at line 56 of file SmallVector.h.

References BeginX, and EndX.

Referenced by llvm::PMDataManager::add(), addRange(), AddReachableCodeToWorklist(), llvm::MachineInstr::addRegisterDead(), llvm::MachineInstr::addRegisterKilled(), advanceToNextLeafType(), llvm::AllocationOrder::AllocationOrder(), llvm::LoopInfoBase< N, M >::Analyze(), llvm::ARMBaseInstrInfo::AnalyzeBranch(), llvm::SparcInstrInfo::AnalyzeBranch(), llvm::MSP430InstrInfo::AnalyzeBranch(), llvm::SystemZInstrInfo::AnalyzeBranch(), llvm::X86InstrInfo::AnalyzeBranch(), llvm::sys::path::append(), AreAnyUnderlyingObjectsAnAlloca(), argsAreStructReturn(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::atEnd(), llvm::SmallVectorTemplateCommon< std::pair< int, int64_t > >::back(), llvm::DwarfDebug::beginFunction(), llvm::SSAUpdaterImpl< UpdaterT >::BuildBlockList(), buildGEP(), buildMultiplyTree(), llvm::ScheduleDAGInstrs::buildSchedGraph(), callIsStructReturn(), llvm::MachineBasicBlock::canFallThrough(), llvm::SSAUpdaterImpl< UpdaterT >::CheckIfPHIMatches(), llvm::ArrayRecycler< llvm::MachineOperand >::clear(), llvm::RegPressureTracker::closeBottom(), llvm::RegPressureTracker::closeTop(), ComputePostOrders(), ConstantFoldGetElementPtrImpl(), CrashHandler(), DeleteDeadInstruction(), deleteDeadInstruction(), DeleteTriviallyDeadInstructions(), determinePointerReadAttrs(), llvm::AsmPrinter::doFinalization(), llvm::LexicalScope::dump(), llvm::GCOVBlock::dump(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::LiveRangeEdit::eliminateDeadDefs(), EliminateDeadSwitchCases(), llvm::EmitAnyX86InstComments(), llvm::PPCFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitPrologue(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::empty(), llvm::LiveRange::empty(), llvm::Eval(), llvm::objcarc::FindDependencies(), llvm::FindFunctionBackedges(), FindMostPopularDest(), firstRealType(), FixTail(), llvm::FoldBranchToCommonDest(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), llvm::ScalarEvolution::forgetLoop(), llvm::ScalarEvolution::forgetValue(), llvm::SmallVectorTemplateCommon< std::pair< int, int64_t > >::front(), llvm::ScalarEvolution::getAddExpr(), llvm::MCStreamer::getCurrentSection(), llvm::DominatorTreeBase< llvm::MachineBasicBlock >::getDescendants(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), GetIndexDifference(), llvm::ScalarEvolution::getMulExpr(), llvm::MemoryDependenceAnalysis::getNonLocalCallDependency(), llvm::MCStreamer::getPreviousSection(), llvm::object::ELFObjectFile< ELFT >::getRelocationValueString(), llvm::ScalarEvolution::getSMaxExpr(), llvm::DataLayout::getStringRepresentation(), getTargetShuffleMask(), llvm::ScalarEvolution::getUMaxExpr(), getUnderlyingObjects(), llvm::GetUnderlyingObjects(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::ImutAVLTreeGenericIterator< ImutInfo >::getVisitState(), llvm::LiveRange::hasAtLeastOneValue(), llvm::SDNode::hasPredecessorHelper(), llvm::InlineFunction(), llvm::MipsInstrInfo::InsertBranch(), llvm::XCoreInstrInfo::InsertBranch(), llvm::AArch64InstrInfo::InsertBranch(), llvm::ARMBaseInstrInfo::InsertBranch(), llvm::HexagonInstrInfo::InsertBranch(), llvm::NVPTXInstrInfo::InsertBranch(), llvm::SparcInstrInfo::InsertBranch(), llvm::MSP430InstrInfo::InsertBranch(), llvm::PPCInstrInfo::InsertBranch(), llvm::SystemZInstrInfo::InsertBranch(), llvm::R600InstrInfo::InsertBranch(), llvm::X86InstrInfo::InsertBranch(), InstCombineStoreToCast(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::AnalysisManager::invalidateAll(), isAllocSiteRemovable(), llvm::AArch64TargetLowering::IsEligibleForTailCallOptimization(), isLeakCheckerRoot(), isPotentiallyReachableInner(), IsStoredObjCPointer(), llvm::Constant::isThreadDependent(), IsValueFullyAvailableInBlock(), llvm::SpillPlacement::iterate(), LinearizeExprTree(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), llvm::HexagonTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::SystemZTargetLowering::LowerReturn(), markAliveBlocks(), 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::BitstreamCursor::ReadBlockEnd(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), llvm::Inliner::removeDeadFunctions(), llvm::SelectionDAG::RemoveDeadNodes(), llvm::PMDataManager::removeDeadPasses(), llvm::MemoryDependenceAnalysis::removeInstruction(), replaceConstantExprOp(), llvm::IntervalMapImpl::Path::replaceRoot(), llvm::HexagonInstrInfo::ReverseBranchCondition(), rewriteNonInstructionUses(), llvm::LiveVariables::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::ImutAVLTreeGenericIterator< ImutInfo >::skipToParent(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SmallVector< llvm::cl::parser::OptionInfo, 8 >::SmallVector(), SplitAddRecs(), llvm::SplitCriticalEdge(), llvm::SplitLandingPadPredecessors(), llvm::MCStreamer::SubSection(), llvm::cl::TokenizeGNUCommandLine(), llvm::cl::TokenizeWindowsCommandLine(), llvm::APFloat::toString(), llvm::UnrollLoop(), llvm::DominatorTreeBase< llvm::MachineBasicBlock >::updateDFSNumbers(), llvm::MachineBasicBlock::updateTerminator(), verifyCTRBranch(), llvm::LoopBase< N, M >::verifyLoop(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitLandingPadInst(), WriteMetadataAttachment(), WriteModuleMetadataStore(), and llvm::ArrayRecycler< llvm::MachineOperand >::~ArrayRecycler().

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

grow_pod - 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::Intrinsic::memcpy, llvm::LibFunc::realloc, and size_in_bytes().

Referenced by llvm::SmallVectorTemplateCommon< std::pair< int, int64_t > >::grow_pod().

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

size_in_bytes - 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::CapacityX
protected
void * llvm::SmallVectorBase::EndX
protected

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