clang  3.9.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 <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
 

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 {
   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
 
   unsigned char   SizeSizeInBytes
 
   unsigned char   SizeAlignInBytes
 
}; 
 The size and alignment of a pointer into the generic address space. More...
 
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

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

Definition at line 102 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 86 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 { ... }

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.

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::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenModule::EmitAnnotationLineNo(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitFunctionInstrumentation(), clang::CodeGen::CodeGenFunction::EmitLandingPad(), clang::CodeGen::CodeGenFunction::EmitNonNullArgCheck(), emitNumTeamsClauseForTargetDirective(), clang::CodeGen::emitNumThreadsClause(), clang::CodeGen::CodeGenFunction::EmitSEHAbnormalTermination(), clang::CodeGen::CodeGenFunction::EmitSEHExceptionCodeSave(), clang::CodeGen::CodeGenFunction::EmitSystemZBuiltinExpr(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitTeamsCall(), emitThreadLimitClauseForTargetDirective(), clang::CodeGen::CodeGenFunction::EmitVTableTypeCheckedLoad(), clang::CodeGen::CodeGenVTables::EmitVTTDefinition(), EmitX86_64VAArgFromMemory(), clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenModule::GetAddrOfConstantCFString(), clang::CodeGen::CodeGenModule::GetAddrOfConstantString(), 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(), 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::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(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), EmitDeclDestroy(), EmitDeclInvariant(), clang::CodeGen::CodeGenFunction::EmitFieldAnnotations(), clang::CodeGen::CodeGenFunction::EmitFunctionInstrumentation(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), emitGlobalDtorWithCXAAtExit(), clang::CodeGen::CodeGenFunction::EmitIndirectGotoStmt(), clang::CodeGen::CodeGenFunction::EmitLandingPad(), clang::CodeGen::CodeGenFunction::EmitLifetimeEnd(), clang::CodeGen::CodeGenFunction::EmitLifetimeStart(), clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolPop(), clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolPush(), clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(), emitRTtypeidCall(), clang::CodeGen::CodeGenFunction::EmitSEHExceptionCodeSave(), clang::CodeGen::CodeGenFunction::EmitSEHExceptionInfo(), emitStructSetterCall(), clang::CodeGen::CodeGenFunction::EmitSystemZBuiltinExpr(), 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::CodeGenVTables::GenerateConstructionVTable(), 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(), performTypeAdjustment(), pushTemporaryCleanup(), and clang::CodeGen::CodeGenFunction::recoverAddrOfEscapedLocal().

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

Definition at line 67 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 66 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 77 of file CodeGenTypeCache.h.

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

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

Definition at line 84 of file CodeGenTypeCache.h.

Referenced by getSizeAlign().

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

Definition at line 83 of file CodeGenTypeCache.h.

Referenced by getSizeSize().

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

Definition at line 59 of file CodeGenTypeCache.h.

llvm::PointerType* clang::CodeGen::CodeGenTypeCache::VoidPtrTy
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::CodeGenVTables::CreateVTableInitializer(), clang::CodeGen::CodeGenFunction::EmitARCIntrinsicUse(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAsanPrologueOrEpilogue(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), emitAutoreleasedReturnValueMarker(), clang::CodeGen::CodeGenFunction::EmitExtendGCLifetime(), clang::CodeGen::CodeGenFunction::EmitFunctionInstrumentation(), emitGlobalDtorWithCXAAtExit(), clang::CodeGen::CodeGenFunction::EmitMCountInstrumentation(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPop(), 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: