clang  5.0.0
Public Member Functions | Public Attributes | List of all members
clang::CodeGen::CodeGenTypeCache Struct Reference

This structure provides a set of types that are commonly used during IR emission. More...

#include "/usr/local/google/work/llvm-www-releases/5.0.0/docsbuild/llvm.src/tools/clang/lib/CodeGen/CodeGenTypeCache.h"

Inheritance diagram for clang::CodeGen::CodeGenTypeCache:
[legend]
Collaboration diagram for clang::CodeGen::CodeGenTypeCache:
[legend]

Public Member Functions

CharUnits getIntSize () const
 
CharUnits getIntAlign () const
 
CharUnits getSizeSize () const
 
CharUnits getSizeAlign () const
 
CharUnits getPointerSize () const
 
CharUnits getPointerAlign () const
 
llvm::CallingConv::ID getRuntimeCC () const
 
llvm::CallingConv::ID getBuiltinCC () const
 
unsigned getASTAllocaAddressSpace () const
 

Public Attributes

llvm::TypeVoidTy
 void More...
 
llvm::IntegerType * Int8Ty
 i8, i16, i32, and i64 More...
 
llvm::IntegerType * Int16Ty
 
llvm::IntegerType * Int32Ty
 
llvm::IntegerType * Int64Ty
 
llvm::TypeFloatTy
 float, double More...
 
llvm::TypeDoubleTy
 
llvm::IntegerType * IntTy
 int More...
 
union {
   llvm::IntegerType *   IntPtrTy
 
   llvm::IntegerType *   SizeTy
 
   llvm::IntegerType *   PtrDiffTy
 
}; 
 intptr_t, size_t, and ptrdiff_t, which we assume are the same size. More...
 
union {
   llvm::PointerType *   VoidPtrTy
 
   llvm::PointerType *   Int8PtrTy
 
}; 
 void* in address space 0 More...
 
union {
   llvm::PointerType *   VoidPtrPtrTy
 
   llvm::PointerType *   Int8PtrPtrTy
 
}; 
 void** in address space 0 More...
 
union {
   llvm::PointerType *   AllocaVoidPtrTy
 
   llvm::PointerType *   AllocaInt8PtrTy
 
}; 
 void* in alloca address space More...
 
union {
   unsigned char   IntSizeInBytes
 
   unsigned char   IntAlignInBytes
 
}; 
 The size and alignment of the builtin C type 'int'. More...
 
unsigned char PointerWidthInBits
 The width of a pointer into the generic address space. More...
 
union {
   unsigned char   PointerAlignInBytes
 
   unsigned char   PointerSizeInBytes
 
}; 
 The size and alignment of a pointer into the generic address space. More...
 
union {
   unsigned char   SizeSizeInBytes
 
   unsigned char   SizeAlignInBytes
 
}; 
 The size and alignment of size_t. More...
 
unsigned ASTAllocaAddressSpace
 
llvm::CallingConv::ID RuntimeCC
 
llvm::CallingConv::ID BuiltinCC
 

Detailed Description

This structure provides a set of types that are commonly used during IR emission.

It's initialized once in CodeGenModule's constructor and then copied around into new CodeGenFunctions.

Definition at line 32 of file CodeGenTypeCache.h.

Member Function Documentation

unsigned clang::CodeGen::CodeGenTypeCache::getASTAllocaAddressSpace ( ) const
inline
llvm::CallingConv::ID clang::CodeGen::CodeGenTypeCache::getBuiltinCC ( ) const
inline

Definition at line 115 of file CodeGenTypeCache.h.

References BuiltinCC.

Referenced by clang::CodeGen::CodeGenModule::CreateBuiltinFunction().

CharUnits clang::CodeGen::CodeGenTypeCache::getIntAlign ( ) const
inline
CharUnits clang::CodeGen::CodeGenTypeCache::getIntSize ( ) const
inline
CharUnits clang::CodeGen::CodeGenTypeCache::getPointerAlign ( ) const
inline
CharUnits clang::CodeGen::CodeGenTypeCache::getPointerSize ( ) const
inline
llvm::CallingConv::ID clang::CodeGen::CodeGenTypeCache::getRuntimeCC ( ) const
inline
CharUnits clang::CodeGen::CodeGenTypeCache::getSizeAlign ( ) const
inline
CharUnits clang::CodeGen::CodeGenTypeCache::getSizeSize ( ) const
inline

Definition at line 99 of file CodeGenTypeCache.h.

References clang::CharUnits::fromQuantity(), and SizeSizeInBytes.

Member Data Documentation

union { ... }

intptr_t, size_t, and ptrdiff_t, which we assume are the same size.

union { ... }

void* in address space 0

union { ... }

void** in address space 0

union { ... }

void* in alloca address space

union { ... }

The size and alignment of the builtin C type 'int'.

This comes up enough in various ABI lowering tasks to be worth pre-computing.

union { ... }

The size and alignment of a pointer into the generic address space.

union { ... }

The size and alignment of size_t.

llvm::PointerType* clang::CodeGen::CodeGenTypeCache::AllocaInt8PtrTy
llvm::PointerType* clang::CodeGen::CodeGenTypeCache::AllocaVoidPtrTy

Definition at line 65 of file CodeGenTypeCache.h.

unsigned clang::CodeGen::CodeGenTypeCache::ASTAllocaAddressSpace
llvm::CallingConv::ID clang::CodeGen::CodeGenTypeCache::BuiltinCC
llvm::Type * clang::CodeGen::CodeGenTypeCache::DoubleTy
llvm::Type* clang::CodeGen::CodeGenTypeCache::FloatTy
llvm::IntegerType * clang::CodeGen::CodeGenTypeCache::Int16Ty
llvm::IntegerType * clang::CodeGen::CodeGenTypeCache::Int32Ty

Definition at line 37 of file CodeGenTypeCache.h.

Referenced by clang::CodeGen::CodeGenFunction::BuildBlockRelease(), clang::CodeGen::CGOpenMPRuntime(), clang::CodeGen::CodeGenModule::CodeGenModule(), ConvertVec3AndVec4(), clang::CodeGen::CGOpenMPRuntimeNVPTX::createNVPTXRuntimeFunction(), createRuntimeShuffleFunction(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenModule::EmitAnnotationLineNo(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitBuiltinAvailable(), clang::CodeGen::emitDoacrossInit(), clang::CodeGen::CodeGenFunction::EmitFunctionInstrumentation(), clang::CodeGen::CodeGenFunction::EmitLandingPad(), emitNumTeamsForTargetDirective(), emitNumThreadsForTargetDirective(), emitOffloadingArraysArgument(), clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitSEHAbnormalTermination(), clang::CodeGen::CodeGenFunction::EmitSEHExceptionCodeSave(), clang::CodeGen::CodeGenFunction::EmitSystemZBuiltinExpr(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitTeamsCall(), clang::CodeGen::CodeGenFunction::EmitVTableTypeCheckedLoad(), clang::CodeGen::CodeGenVTables::EmitVTTDefinition(), EmitX86_64VAArgFromMemory(), clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenModule::GetAddrOfConstantCFString(), getAsmSrcLocInfo(), clang::CodeGen::CodeGenFunction::getBlockByrefInfo(), clang::CodeGen::CodeGenModule::getBlockObjectAssign(), clang::CodeGen::CodeGenModule::getBlockObjectDispose(), clang::CodeGen::CodeGenFunction::getEHSelectorSlot(), GetNeonType(), getPersonalityFn(), clang::CodeGen::CodeGenFunction::getTerminateLandingPad(), clang::CodeGen::CodeGenFunction::InitializeVTablePointer(), clang::CodeGen::CodeGenFunction::recoverAddrOfEscapedLocal(), clang::CodeGen::CodeGenModule::Release(), and clang::CodeGen::CodeGenFunction::StartFunction().

llvm::IntegerType * clang::CodeGen::CodeGenTypeCache::Int64Ty
llvm::PointerType* clang::CodeGen::CodeGenTypeCache::Int8PtrPtrTy
llvm::PointerType* clang::CodeGen::CodeGenTypeCache::Int8PtrTy

Definition at line 54 of file CodeGenTypeCache.h.

Referenced by clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData(), ApplyNonVirtualAndVirtualOffset(), clang::CodeGen::CodeGenFunction::BuildBlockRelease(), clang::CodeGen::CGOpenMPRuntime(), clang::CodeGen::CodeGenModule::CodeGenModule(), CreateCoercedLoad(), CreateCoercedStore(), clang::CodeGen::CGOpenMPRuntimeNVPTX::createNVPTXRuntimeFunction(), clang::CodeGen::CodeGenVTables::createVTableInitializer(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenModule::EmitAnnotateAttr(), clang::CodeGen::CodeGenFunction::EmitAnnotationCall(), emitARCLoadOperation(), clang::CodeGen::CodeGenFunction::EmitARCRelease(), clang::CodeGen::CodeGenFunction::EmitARCRetainAutorelease(), emitARCStoreOperation(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrongCall(), emitARCValueOperation(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), clang::CodeGen::CodeGenFunction::emitByrefStructureInit(), clang::CodeGen::CodeGenFunction::EmitCapturedLocals(), clang::CodeGen::CodeGenFunction::EmitCastToVoidPtr(), emitCatchDispatchBlock(), clang::CodeGen::CodeGenFunction::EmitCommonNeonBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCoroutineBody(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), EmitDeclDestroy(), EmitDeclInvariant(), clang::CodeGen::CodeGenFunction::EmitFieldAnnotations(), clang::CodeGen::CodeGenFunction::EmitFunctionInstrumentation(), emitGlobalDtorWithCXAAtExit(), clang::CodeGen::CodeGenFunction::EmitIndirectGotoStmt(), clang::CodeGen::CodeGenFunction::EmitLandingPad(), clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolPop(), clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolPush(), clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), emitRTtypeidCall(), clang::CodeGen::CodeGenFunction::EmitSEHExceptionCodeSave(), clang::CodeGen::CodeGenFunction::EmitSEHExceptionInfo(), emitStructSetterCall(), emitSuspendExpression(), clang::CodeGen::CodeGenFunction::EmitSystemZBuiltinExpr(), clang::CodeGen::CGOpenMPRuntime::emitTargetOutlinedFunctionHelper(), clang::CodeGen::CodeGenFunction::EmitTypeCheck(), clang::CodeGen::CodeGenFunction::EmitTypeMetadataCodeForVCall(), emitUsed(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), clang::CodeGen::CodeGenFunction::EmitVarAnnotations(), emitVoidPtrDirectVAArg(), clang::CodeGen::CodeGenFunction::EmitVTablePtrCheck(), clang::CodeGen::CodeGenFunction::EmitVTablePtrCheckForCast(), clang::CodeGen::CodeGenFunction::EmitVTableTypeCheckedLoad(), clang::CodeGen::CodeGenVTables::EmitVTTDefinition(), clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr(), clang::CodeGen::CodeGenFunction::FinallyInfo::enter(), clang::CodeGen::CodeGenFunction::EnterSEHTryStmt(), generateByrefCopyHelper(), generateByrefDisposeHelper(), clang::CodeGen::CodeGenFunction::GetAddressOfDerivedClass(), clang::CodeGen::CodeGenModule::GetAddrOfConstantCFString(), clang::CodeGen::CodeGenModule::GetAddrOfRTTIDescriptor(), clang::CodeGen::CodeGenVTables::GetAddrOfVTT(), getAllocateExceptionFn(), getBeginCatchFn(), clang::CodeGen::CodeGenFunction::getBlockByrefInfo(), clang::CodeGen::CodeGenModule::getBlockObjectAssign(), clang::CodeGen::CodeGenModule::getBlockObjectDispose(), getCatchallRethrowFn(), getCatchAllValue(), getClangCallTerminateFn(), clang::CodeGen::CodeGenFunction::getExceptionSlot(), getFreeExceptionFn(), getGetExceptionPtrFn(), clang::CodeGen::CodeGenFunction::GetIndirectGotoBlock(), getItaniumDynamicCastFn(), clang::CodeGen::CodeGenModule::getNSConcreteGlobalBlock(), clang::CodeGen::CodeGenModule::getNSConcreteStackBlock(), getOpaquePersonalityFn(), clang::CodeGen::CodeGenFunction::getTerminateLandingPad(), getThrowFn(), getTypeInfoVTable(), getUnexpectedFn(), clang::CodeGen::CodeGenVTables::getVTableType(), performTypeAdjustment(), pushTemporaryCleanup(), clang::CodeGen::CodeGenFunction::recoverAddrOfEscapedLocal(), and clang::CodeGen::CodeGenFunction::StartFunction().

llvm::IntegerType* clang::CodeGen::CodeGenTypeCache::Int8Ty
unsigned char clang::CodeGen::CodeGenTypeCache::IntAlignInBytes

Definition at line 73 of file CodeGenTypeCache.h.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), and getIntAlign().

llvm::IntegerType* clang::CodeGen::CodeGenTypeCache::IntPtrTy
unsigned char clang::CodeGen::CodeGenTypeCache::IntSizeInBytes

Definition at line 72 of file CodeGenTypeCache.h.

Referenced by getIntSize().

llvm::IntegerType* clang::CodeGen::CodeGenTypeCache::IntTy
unsigned char clang::CodeGen::CodeGenTypeCache::PointerAlignInBytes
unsigned char clang::CodeGen::CodeGenTypeCache::PointerSizeInBytes
unsigned char clang::CodeGen::CodeGenTypeCache::PointerWidthInBits

The width of a pointer into the generic address space.

Definition at line 83 of file CodeGenTypeCache.h.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), and clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable().

llvm::IntegerType* clang::CodeGen::CodeGenTypeCache::PtrDiffTy
llvm::CallingConv::ID clang::CodeGen::CodeGenTypeCache::RuntimeCC
unsigned char clang::CodeGen::CodeGenTypeCache::SizeAlignInBytes

Definition at line 94 of file CodeGenTypeCache.h.

Referenced by getSizeAlign().

unsigned char clang::CodeGen::CodeGenTypeCache::SizeSizeInBytes

Definition at line 93 of file CodeGenTypeCache.h.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), and getSizeSize().

llvm::IntegerType* clang::CodeGen::CodeGenTypeCache::SizeTy
llvm::PointerType* clang::CodeGen::CodeGenTypeCache::VoidPtrPtrTy

Definition at line 59 of file CodeGenTypeCache.h.

Referenced by buildGlobalBlock(), and emitOffloadingArraysArgument().

llvm::PointerType* clang::CodeGen::CodeGenTypeCache::VoidPtrTy

Definition at line 53 of file CodeGenTypeCache.h.

Referenced by buildBlockDescriptor(), computeBlockInfo(), clang::CodeGen::CGOpenMPRuntimeNVPTX::createNVPTXRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CGObjCRuntime::EmitAtSynchronizedStmt(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), emitCatchPadBlock(), clang::CodeGen::CodeGenFunction::EmitCoroutineBody(), clang::CodeGen::emitDoacrossInit(), clang::CodeGen::CodeGenFunction::EmitExtendGCLifetime(), emitOffloadingArrays(), emitOffloadingArraysArgument(), emitPointerArithmetic(), emitProxyTaskFunction(), emitReduceInitFunction(), emitReduceScratchpadFunction(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitReduction(), clang::CodeGen::CodeGenFunction::EmitSEHExceptionCodeSave(), emitShuffleAndReduceFunction(), emitStructGetterCall(), clang::CodeGen::emitTaskCall(), clang::CodeGen::emitTaskLoopCall(), clang::CodeGen::emitTaskReductionFixups(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::generateDestroyHelper(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CodeGen::CodeGenModule::GetAddrOfGlobalBlock(), clang::CodeGen::CodeGenModule::getGenericBlockLiteralType(), clang::CodeGen::getTaskReductionItem(), and initializeForBlockHeader().

llvm::Type* clang::CodeGen::CodeGenTypeCache::VoidTy

void

Definition at line 34 of file CodeGenTypeCache.h.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), clang::CodeGen::CodeGenFunction::createAtExitStub(), clang::CodeGen::CGOpenMPRuntimeNVPTX::createNVPTXRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitARCIntrinsicUse(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAsanPrologueOrEpilogue(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), emitAutoreleasedReturnValueMarker(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitExtendGCLifetime(), clang::CodeGen::CodeGenFunction::EmitFunctionInstrumentation(), emitGlobalDtorWithCXAAtExit(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPop(), clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalDtorsFunc(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalInitFunc(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalVarDeclInitFunc(), clang::CodeGen::CodeGenFunction::generateDestroyHelper(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), getBadCastFn(), getBadTypeidFn(), clang::CodeGen::CodeGenModule::getBlockObjectAssign(), clang::CodeGen::CodeGenModule::getBlockObjectDispose(), getCatchallRethrowFn(), getClangCallTerminateFn(), getEndCatchFn(), getFreeExceptionFn(), getGuardAbortFn(), getGuardReleaseFn(), clang::CodeGen::CodeGenModule::getTerminateFn(), getThrowFn(), and getUnexpectedFn().


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