LLVM API Documentation

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

#include <LLVMContextImpl.h>

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

Public Types

typedef DenseMap
< DenseMapAPIntKeyInfo::KeyTy,
ConstantInt
*, DenseMapAPIntKeyInfo
IntMapTy
 
typedef DenseMap
< DenseMapAPFloatKeyInfo::KeyTy,
ConstantFP
*, DenseMapAPFloatKeyInfo
FPMapTy
 
typedef ConstantAggrUniqueMap
< ArrayType, ConstantArray
ArrayConstantsTy
 
typedef ConstantAggrUniqueMap
< StructType, ConstantStruct
StructConstantsTy
 
typedef ConstantAggrUniqueMap
< VectorType, ConstantVector
VectorConstantsTy
 
typedef DenseMap< FunctionType
*, bool, FunctionTypeKeyInfo
FunctionTypeMap
 
typedef DenseMap< StructType
*, bool, AnonStructTypeKeyInfo
StructTypeMap
 
typedef DenseMap< Value
*, ValueHandleBase * > 
ValueHandlesTy
 
typedef std::pair< unsigned,
TrackingVH< MDNode > > 
MDPairTy
 
typedef SmallVector< MDPairTy, 2 > MDMapTy
 
typedef DenseMap< const
Function *, unsigned
IntrinsicIDCacheTy
 
typedef DenseMap< const
Function *, ReturnInst * > 
PrefixDataMapTy
 Mapping from a function to its prefix data, which is stored as the operand of an unparented ReturnInst so that the prefix data has a Use. More...
 

Public Member Functions

int getOrAddScopeRecordIdxEntry (MDNode *N, int ExistingIdx)
 
int getOrAddScopeInlinedAtIdxEntry (MDNode *Scope, MDNode *IA, int ExistingIdx)
 
 LLVMContextImpl (LLVMContext &C)
 
 ~LLVMContextImpl ()
 

Public Attributes

SmallPtrSet< Module *, 4 > OwnedModules
 
LLVMContext::InlineAsmDiagHandlerTy InlineAsmDiagHandler
 
void * InlineAsmDiagContext
 
IntMapTy IntConstants
 
FPMapTy FPConstants
 
FoldingSet< AttributeImplAttrsSet
 
FoldingSet< AttributeSetImplAttrsLists
 
FoldingSet< AttributeSetNodeAttrsSetNodes
 
StringMap< Value * > MDStringCache
 
FoldingSet< MDNodeMDNodeSet
 
SmallPtrSet< MDNode *, 1 > NonUniquedMDNodes
 
DenseMap< Type
*, ConstantAggregateZero * > 
CAZConstants
 
ArrayConstantsTy ArrayConstants
 
StructConstantsTy StructConstants
 
VectorConstantsTy VectorConstants
 
DenseMap< PointerType
*, ConstantPointerNull * > 
CPNConstants
 
DenseMap< Type *, UndefValue * > UVConstants
 
StringMap
< ConstantDataSequential * > 
CDSConstants
 
DenseMap< std::pair< Function
*, BasicBlock * >
, BlockAddress * > 
BlockAddresses
 
ConstantUniqueMap
< ExprMapKeyType, const
ExprMapKeyType &, Type,
ConstantExpr
ExprConstants
 
ConstantUniqueMap
< InlineAsmKeyType, const
InlineAsmKeyType
&, PointerType, InlineAsm
InlineAsms
 
ConstantIntTheTrueVal
 
ConstantIntTheFalseVal
 
LeakDetectorImpl< ValueLLVMObjects
 
Type VoidTy
 
Type LabelTy
 
Type HalfTy
 
Type FloatTy
 
Type DoubleTy
 
Type MetadataTy
 
Type X86_FP80Ty
 
Type FP128Ty
 
Type PPC_FP128Ty
 
Type X86_MMXTy
 
IntegerType Int1Ty
 
IntegerType Int8Ty
 
IntegerType Int16Ty
 
IntegerType Int32Ty
 
IntegerType Int64Ty
 
BumpPtrAllocator TypeAllocator
 
DenseMap< unsigned, IntegerType * > IntegerTypes
 
FunctionTypeMap FunctionTypes
 
StructTypeMap AnonStructTypes
 
StringMap< StructType * > NamedStructTypes
 
unsigned NamedStructTypesUniqueID
 
DenseMap< std::pair< Type
*, uint64_t >, ArrayType * > 
ArrayTypes
 
DenseMap< std::pair< Type
*, unsigned >, VectorType * > 
VectorTypes
 
DenseMap< Type *, PointerType * > PointerTypes
 
DenseMap< std::pair< Type
*, unsigned >, PointerType * > 
ASPointerTypes
 
ValueHandlesTy ValueHandles
 
StringMap< unsignedCustomMDKindNames
 CustomMDKindNames - Map to hold the metadata string to ID mapping. More...
 
DenseMap< const Instruction
*, MDMapTy
MetadataStore
 
DenseMap< MDNode *, int > ScopeRecordIdx
 
std::vector< DebugRecVHScopeRecords
 
DenseMap< std::pair< MDNode
*, MDNode * >, int > 
ScopeInlinedAtIdx
 
std::vector< std::pair
< DebugRecVH, DebugRecVH > > 
ScopeInlinedAtRecords
 
IntrinsicIDCacheTy IntrinsicIDCache
 
PrefixDataMapTy PrefixDataMap
 

Detailed Description

Definition at line 233 of file LLVMContextImpl.h.

Member Typedef Documentation

Definition at line 266 of file LLVMContextImpl.h.

Definition at line 247 of file LLVMContextImpl.h.

Definition at line 306 of file LLVMContextImpl.h.

Definition at line 243 of file LLVMContextImpl.h.

IntrinsicIDCache - Cache of intrinsic name (string) to numeric ID mappings requested in this context

Definition at line 355 of file LLVMContextImpl.h.

Definition at line 329 of file LLVMContextImpl.h.

Definition at line 328 of file LLVMContextImpl.h.

Mapping from a function to its prefix data, which is stored as the operand of an unparented ReturnInst so that the prefix data has a Use.

Definition at line 360 of file LLVMContextImpl.h.

Definition at line 269 of file LLVMContextImpl.h.

Definition at line 308 of file LLVMContextImpl.h.

ValueHandles - This map keeps track of all of the value handles that are watching a Value*. The Value::HasValueHandle bit is used to know whether or not a value has an entry in this map.

Definition at line 322 of file LLVMContextImpl.h.

Definition at line 272 of file LLVMContextImpl.h.

Constructor & Destructor Documentation

LLVMContextImpl::LLVMContextImpl ( LLVMContext C)
LLVMContextImpl::~LLVMContextImpl ( )

Member Function Documentation

int LLVMContextImpl::getOrAddScopeInlinedAtIdxEntry ( MDNode Scope,
MDNode IA,
int  ExistingIdx 
)
int LLVMContextImpl::getOrAddScopeRecordIdxEntry ( MDNode N,
int  ExistingIdx 
)

Definition at line 161 of file DebugLoc.cpp.

References ScopeRecordIdx, and ScopeRecords.

Referenced by llvm::DebugRecVH::allUsesReplacedWith(), and llvm::DebugLoc::get().

Member Data Documentation

StructTypeMap llvm::LLVMContextImpl::AnonStructTypes

Definition at line 309 of file LLVMContextImpl.h.

Referenced by llvm::StructType::get().

ArrayConstantsTy llvm::LLVMContextImpl::ArrayConstants
DenseMap<std::pair<Type *, uint64_t>, ArrayType*> llvm::LLVMContextImpl::ArrayTypes

Definition at line 313 of file LLVMContextImpl.h.

Referenced by llvm::ArrayType::get().

DenseMap<std::pair<Type*, unsigned>, PointerType*> llvm::LLVMContextImpl::ASPointerTypes

Definition at line 316 of file LLVMContextImpl.h.

Referenced by llvm::PointerType::get().

FoldingSet<AttributeSetImpl> llvm::LLVMContextImpl::AttrsLists

Definition at line 251 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

FoldingSet<AttributeImpl> llvm::LLVMContextImpl::AttrsSet

Definition at line 250 of file LLVMContextImpl.h.

Referenced by llvm::Attribute::get(), and ~LLVMContextImpl().

FoldingSet<AttributeSetNode> llvm::LLVMContextImpl::AttrsSetNodes

Definition at line 252 of file LLVMContextImpl.h.

Referenced by llvm::AttributeSetNode::get(), and ~LLVMContextImpl().

DenseMap<std::pair<Function*, BasicBlock*> , BlockAddress*> llvm::LLVMContextImpl::BlockAddresses
DenseMap<Type*, ConstantAggregateZero*> llvm::LLVMContextImpl::CAZConstants
StringMap<ConstantDataSequential*> llvm::LLVMContextImpl::CDSConstants
DenseMap<PointerType*, ConstantPointerNull*> llvm::LLVMContextImpl::CPNConstants
StringMap<unsigned> llvm::LLVMContextImpl::CustomMDKindNames

CustomMDKindNames - Map to hold the metadata string to ID mapping.

Definition at line 326 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::getMDKindID(), and llvm::LLVMContext::getMDKindNames().

Type llvm::LLVMContextImpl::DoubleTy

Definition at line 295 of file LLVMContextImpl.h.

Referenced by llvm::Type::getDoubleTy().

ConstantUniqueMap<ExprMapKeyType, const ExprMapKeyType&, Type, ConstantExpr> llvm::LLVMContextImpl::ExprConstants
Type llvm::LLVMContextImpl::FloatTy

Definition at line 295 of file LLVMContextImpl.h.

Referenced by llvm::Type::getFloatTy().

Type llvm::LLVMContextImpl::FP128Ty

Definition at line 296 of file LLVMContextImpl.h.

Referenced by llvm::Type::getFP128Ty().

FPMapTy llvm::LLVMContextImpl::FPConstants

Definition at line 248 of file LLVMContextImpl.h.

Referenced by llvm::ConstantFP::get(), and ~LLVMContextImpl().

FunctionTypeMap llvm::LLVMContextImpl::FunctionTypes

Definition at line 307 of file LLVMContextImpl.h.

Referenced by llvm::FunctionType::get().

Type llvm::LLVMContextImpl::HalfTy

Definition at line 295 of file LLVMContextImpl.h.

Referenced by llvm::Type::getHalfTy().

void* llvm::LLVMContextImpl::InlineAsmDiagContext
LLVMContext::InlineAsmDiagHandlerTy llvm::LLVMContextImpl::InlineAsmDiagHandler
ConstantUniqueMap<InlineAsmKeyType, const InlineAsmKeyType&, PointerType, InlineAsm> llvm::LLVMContextImpl::InlineAsms

Definition at line 287 of file LLVMContextImpl.h.

Referenced by llvm::InlineAsm::get(), and ~LLVMContextImpl().

IntegerType llvm::LLVMContextImpl::Int16Ty

Definition at line 297 of file LLVMContextImpl.h.

Referenced by llvm::Type::getInt16Ty().

IntegerType llvm::LLVMContextImpl::Int1Ty

Definition at line 297 of file LLVMContextImpl.h.

Referenced by llvm::Type::getInt1Ty().

IntegerType llvm::LLVMContextImpl::Int32Ty

Definition at line 297 of file LLVMContextImpl.h.

Referenced by llvm::Type::getInt32Ty().

IntegerType llvm::LLVMContextImpl::Int64Ty

Definition at line 297 of file LLVMContextImpl.h.

Referenced by llvm::Type::getInt64Ty().

IntegerType llvm::LLVMContextImpl::Int8Ty

Definition at line 297 of file LLVMContextImpl.h.

Referenced by llvm::Type::getInt8Ty().

IntMapTy llvm::LLVMContextImpl::IntConstants

Definition at line 244 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

DenseMap<unsigned, IntegerType*> llvm::LLVMContextImpl::IntegerTypes

Definition at line 304 of file LLVMContextImpl.h.

Referenced by llvm::IntegerType::get().

IntrinsicIDCacheTy llvm::LLVMContextImpl::IntrinsicIDCache
Type llvm::LLVMContextImpl::LabelTy

Definition at line 295 of file LLVMContextImpl.h.

Referenced by llvm::Type::getLabelTy().

LeakDetectorImpl<Value> llvm::LLVMContextImpl::LLVMObjects

Definition at line 292 of file LLVMContextImpl.h.

Referenced by clearGarbage().

FoldingSet<MDNode> llvm::LLVMContextImpl::MDNodeSet

Definition at line 256 of file LLVMContextImpl.h.

Referenced by llvm::MDNode::deleteTemporary(), and ~LLVMContextImpl().

StringMap<Value*> llvm::LLVMContextImpl::MDStringCache

Definition at line 254 of file LLVMContextImpl.h.

Referenced by llvm::MDString::get(), and ~LLVMContextImpl().

DenseMap<const Instruction *, MDMapTy> llvm::LLVMContextImpl::MetadataStore

MetadataStore - Collection of per-instruction metadata used in this context.

Definition at line 333 of file LLVMContextImpl.h.

Referenced by llvm::Instruction::setMetadata().

Type llvm::LLVMContextImpl::MetadataTy

Definition at line 295 of file LLVMContextImpl.h.

Referenced by llvm::Type::getMetadataTy().

StringMap<StructType*> llvm::LLVMContextImpl::NamedStructTypes

Definition at line 310 of file LLVMContextImpl.h.

Referenced by llvm::Module::getTypeByName(), and llvm::StructType::setName().

unsigned llvm::LLVMContextImpl::NamedStructTypesUniqueID

Definition at line 311 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl(), and llvm::StructType::setName().

SmallPtrSet<MDNode*, 1> llvm::LLVMContextImpl::NonUniquedMDNodes

Definition at line 262 of file LLVMContextImpl.h.

Referenced by llvm::MDNode::deleteTemporary(), and ~LLVMContextImpl().

SmallPtrSet<Module*, 4> llvm::LLVMContextImpl::OwnedModules

OwnedModules - The set of modules instantiated in this context, and which will be automatically deleted if this context is deleted.

Definition at line 237 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

DenseMap<Type*, PointerType*> llvm::LLVMContextImpl::PointerTypes

Definition at line 315 of file LLVMContextImpl.h.

Referenced by llvm::PointerType::get().

Type llvm::LLVMContextImpl::PPC_FP128Ty

Definition at line 296 of file LLVMContextImpl.h.

Referenced by llvm::Type::getPPC_FP128Ty().

PrefixDataMapTy llvm::LLVMContextImpl::PrefixDataMap
DenseMap<std::pair<MDNode*, MDNode*>, int> llvm::LLVMContextImpl::ScopeInlinedAtIdx

ScopeInlinedAtIdx - This is the index in ScopeInlinedAtRecords for an scope/inlined-at pair.

Definition at line 346 of file LLVMContextImpl.h.

Referenced by llvm::DebugRecVH::allUsesReplacedWith(), llvm::DebugRecVH::deleted(), and getOrAddScopeInlinedAtIdxEntry().

std::vector<std::pair<DebugRecVH, DebugRecVH> > llvm::LLVMContextImpl::ScopeInlinedAtRecords

ScopeInlinedAtRecords - These are the actual mdnodes (in value handles) for an index. The ValueHandle ensures that ScopeINlinedAtIdx stays up to date.

Definition at line 351 of file LLVMContextImpl.h.

Referenced by llvm::DebugRecVH::allUsesReplacedWith(), llvm::DebugRecVH::deleted(), llvm::DebugLoc::getInlinedAt(), getOrAddScopeInlinedAtIdxEntry(), llvm::DebugLoc::getScope(), and llvm::DebugLoc::getScopeAndInlinedAt().

DenseMap<MDNode*, int> llvm::LLVMContextImpl::ScopeRecordIdx

ScopeRecordIdx - This is the index in ScopeRecords for an MDNode scope entry with no "inlined at" element.

Definition at line 337 of file LLVMContextImpl.h.

Referenced by llvm::DebugRecVH::allUsesReplacedWith(), llvm::DebugRecVH::deleted(), and getOrAddScopeRecordIdxEntry().

std::vector<DebugRecVH> llvm::LLVMContextImpl::ScopeRecords

ScopeRecords - These are the actual mdnodes (in a value handle) for an index. The ValueHandle ensures that ScopeRecordIdx stays up to date if the MDNode is RAUW'd.

Definition at line 342 of file LLVMContextImpl.h.

Referenced by getOrAddScopeRecordIdxEntry(), llvm::DebugLoc::getScope(), and llvm::DebugLoc::getScopeAndInlinedAt().

StructConstantsTy llvm::LLVMContextImpl::StructConstants
ConstantInt* llvm::LLVMContextImpl::TheFalseVal

Definition at line 290 of file LLVMContextImpl.h.

Referenced by llvm::ConstantInt::getFalse().

ConstantInt* llvm::LLVMContextImpl::TheTrueVal

Definition at line 289 of file LLVMContextImpl.h.

Referenced by llvm::ConstantInt::getTrue().

BumpPtrAllocator llvm::LLVMContextImpl::TypeAllocator

TypeAllocator - All dynamically allocated types are allocated from this. They live forever until the context is torn down.

Definition at line 302 of file LLVMContextImpl.h.

Referenced by llvm::StructType::create(), llvm::IntegerType::get(), llvm::FunctionType::get(), llvm::StructType::get(), llvm::ArrayType::get(), llvm::VectorType::get(), llvm::PointerType::get(), and llvm::StructType::setBody().

DenseMap<Type*, UndefValue*> llvm::LLVMContextImpl::UVConstants
ValueHandlesTy llvm::LLVMContextImpl::ValueHandles
VectorConstantsTy llvm::LLVMContextImpl::VectorConstants

Definition at line 273 of file LLVMContextImpl.h.

Referenced by llvm::ConstantVector::destroyConstant(), and ~LLVMContextImpl().

DenseMap<std::pair<Type *, unsigned>, VectorType*> llvm::LLVMContextImpl::VectorTypes

Definition at line 314 of file LLVMContextImpl.h.

Referenced by llvm::VectorType::get().

Type llvm::LLVMContextImpl::VoidTy

Definition at line 295 of file LLVMContextImpl.h.

Referenced by llvm::Type::getVoidTy().

Type llvm::LLVMContextImpl::X86_FP80Ty

Definition at line 296 of file LLVMContextImpl.h.

Referenced by llvm::Type::getX86_FP80Ty().

Type llvm::LLVMContextImpl::X86_MMXTy

Definition at line 296 of file LLVMContextImpl.h.

Referenced by llvm::Type::getX86_MMXTy().


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