clang API Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends
clang::CodeGen::CodeGenModule Class Reference

#include <CodeGenModule.h>

Inheritance diagram for clang::CodeGen::CodeGenModule:
Inheritance graph
[legend]
Collaboration diagram for clang::CodeGen::CodeGenModule:
Collaboration graph
[legend]

List of all members.

Classes

class  ByrefHelpers
 A pair of helper functions for a __block variable. More...

Public Types

enum  TypeVisibilityKind {
  TVK_ForVTT, TVK_ForVTable, TVK_ForConstructionVTable, TVK_ForRTTI,
  TVK_ForRTTIName
}

Public Member Functions

 CodeGenModule (ASTContext &C, const CodeGenOptions &CodeGenOpts, llvm::Module &M, const llvm::TargetData &TD, DiagnosticsEngine &Diags)
 ~CodeGenModule ()
void Release ()
 Release - Finalize LLVM code generation.
CGObjCRuntimegetObjCRuntime ()
bool hasObjCRuntime ()
CGOpenCLRuntimegetOpenCLRuntime ()
 getOpenCLRuntime() - Return a reference to the configured OpenCL runtime.
CGCUDARuntimegetCUDARuntime ()
 getCUDARuntime() - Return a reference to the configured CUDA runtime.
CGCXXABIgetCXXABI ()
 getCXXABI() - Return a reference to the configured C++ ABI.
ARCEntrypointsgetARCEntrypoints () const
RREntrypointsgetRREntrypoints () const
llvm::ValuegetStaticLocalDeclAddress (const VarDecl *VD)
void setStaticLocalDeclAddress (const VarDecl *D, llvm::GlobalVariable *GV)
llvm::Constant * getAtomicSetterHelperFnMap (QualType Ty)
void setAtomicSetterHelperFnMap (QualType Ty, llvm::Constant *Fn)
llvm::Constant * getAtomicGetterHelperFnMap (QualType Ty)
void setAtomicGetterHelperFnMap (QualType Ty, llvm::Constant *Fn)
CGDebugInfogetModuleDebugInfo ()
ASTContextgetContext () const
const CodeGenOptionsgetCodeGenOpts () const
const LangOptionsgetLangOptions () const
llvm::Module & getModule () const
CodeGenTypesgetTypes ()
CodeGenVTablesgetVTables ()
VTableContextgetVTableContext ()
DiagnosticsEnginegetDiags () const
const llvm::TargetData & getTargetData () const
const TargetInfogetTarget () const
llvm::LLVMContext & getLLVMContext ()
const TargetCodeGenInfogetTargetCodeGenInfo ()
bool isTargetDarwin () const
bool shouldUseTBAA () const
llvm::MDNode * getTBAAInfo (QualType QTy)
llvm::ConstantInt * getSize (CharUnits numChars)
 getSize - Emit the given number of characters as a value of type size_t.
void setGlobalVisibility (llvm::GlobalValue *GV, const NamedDecl *D) const
void setTypeVisibility (llvm::GlobalValue *GV, const CXXRecordDecl *D, TypeVisibilityKind TVK) const
llvm::Constant * GetAddrOfGlobal (GlobalDecl GD)
llvm::GlobalVariable * CreateOrReplaceCXXRuntimeVariable (StringRef Name, llvm::Type *Ty, llvm::GlobalValue::LinkageTypes Linkage)
llvm::Constant * GetAddrOfGlobalVar (const VarDecl *D, llvm::Type *Ty=0)
llvm::Constant * GetAddrOfFunction (GlobalDecl GD, llvm::Type *Ty=0, bool ForVTable=false)
llvm::Constant * GetAddrOfRTTIDescriptor (QualType Ty, bool ForEH=false)
llvm::Constant * GetAddrOfThunk (GlobalDecl GD, const ThunkInfo &Thunk)
 GetAddrOfThunk - Get the address of the thunk for the given global decl.
llvm::Constant * GetWeakRefReference (const ValueDecl *VD)
 GetWeakRefReference - Get a reference to the target of VD.
llvm::Constant * GetNonVirtualBaseClassOffset (const CXXRecordDecl *ClassDecl, CastExpr::path_const_iterator PathBegin, CastExpr::path_const_iterator PathEnd)
int getUniqueBlockCount ()
 getUniqueBlockCount - Fetches the global unique block count.
llvm::Type * getBlockDescriptorType ()
llvm::Type * getGenericBlockLiteralType ()
 getGenericBlockLiteralType - The type of a generic block literal.
llvm::Constant * GetAddrOfGlobalBlock (const BlockExpr *BE, const char *)
llvm::Constant * GetAddrOfConstantCFString (const StringLiteral *Literal)
llvm::Constant * GetAddrOfConstantString (const StringLiteral *Literal)
llvm::Constant * GetConstantArrayFromStringLiteral (const StringLiteral *E)
llvm::Constant * GetAddrOfConstantStringFromLiteral (const StringLiteral *S)
llvm::Constant * GetAddrOfConstantStringFromObjCEncode (const ObjCEncodeExpr *)
llvm::Constant * GetAddrOfConstantString (StringRef Str, const char *GlobalName=0, unsigned Alignment=1)
llvm::Constant * GetAddrOfConstantCString (const std::string &str, const char *GlobalName=0, unsigned Alignment=1)
llvm::Constant * GetAddrOfConstantCompoundLiteral (const CompoundLiteralExpr *E)
QualType getObjCFastEnumerationStateType ()
 Retrieve the record type that describes the state of an Objective-C fast enumeration loop (for..in).
llvm::GlobalValue * GetAddrOfCXXConstructor (const CXXConstructorDecl *ctor, CXXCtorType ctorType, const CGFunctionInfo *fnInfo=0)
llvm::GlobalValue * GetAddrOfCXXDestructor (const CXXDestructorDecl *dtor, CXXDtorType dtorType, const CGFunctionInfo *fnInfo=0)
llvm::ValuegetBuiltinLibFunction (const FunctionDecl *FD, unsigned BuiltinID)
llvm::Function * getIntrinsic (unsigned IID, ArrayRef< llvm::Type * > Tys=ArrayRef< llvm::Type * >())
void EmitTopLevelDecl (Decl *D)
 EmitTopLevelDecl - Emit code for a single top level declaration.
void AddUsedGlobal (llvm::GlobalValue *GV)
void AddCXXDtorEntry (llvm::Constant *DtorFn, llvm::Constant *Object)
llvm::Constant * CreateRuntimeFunction (llvm::FunctionType *Ty, StringRef Name, llvm::Attributes ExtraAttrs=llvm::Attribute::None)
llvm::Constant * CreateRuntimeVariable (llvm::Type *Ty, StringRef Name)
void UpdateCompletedType (const TagDecl *TD)
llvm::Constant * getMemberPointerConstant (const UnaryOperator *e)
llvm::Constant * EmitConstantInit (const VarDecl &D, CodeGenFunction *CGF=0)
llvm::Constant * EmitConstantExpr (const Expr *E, QualType DestType, CodeGenFunction *CGF=0)
llvm::Constant * EmitConstantValue (const APValue &Value, QualType DestType, CodeGenFunction *CGF=0)
llvm::Constant * EmitNullConstant (QualType T)
llvm::Constant * EmitNullConstantForBase (const CXXRecordDecl *Record)
void Error (SourceLocation loc, StringRef error)
 Error - Emit a general error that something can't be done.
void ErrorUnsupported (const Stmt *S, const char *Type, bool OmitOnError=false)
void ErrorUnsupported (const Decl *D, const char *Type, bool OmitOnError=false)
void SetInternalFunctionAttributes (const Decl *D, llvm::Function *F, const CGFunctionInfo &FI)
void SetLLVMFunctionAttributes (const Decl *D, const CGFunctionInfo &Info, llvm::Function *F)
void SetLLVMFunctionAttributesForDefinition (const Decl *D, llvm::Function *F)
bool ReturnTypeUsesSRet (const CGFunctionInfo &FI)
bool ReturnTypeUsesFPRet (QualType ResultType)
bool ReturnTypeUsesFP2Ret (QualType ResultType)
void ConstructAttributeList (const CGFunctionInfo &Info, const Decl *TargetDecl, AttributeListType &PAL, unsigned &CallingConv)
StringRef getMangledName (GlobalDecl GD)
void getBlockMangledName (GlobalDecl GD, MangleBuffer &Buffer, const BlockDecl *BD)
void EmitTentativeDefinition (const VarDecl *D)
void EmitVTable (CXXRecordDecl *Class, bool DefinitionRequired)
llvm::GlobalVariable::LinkageTypes getFunctionLinkage (const FunctionDecl *FD)
void setFunctionLinkage (const FunctionDecl *FD, llvm::GlobalValue *V)
llvm::GlobalVariable::LinkageTypes getVTableLinkage (const CXXRecordDecl *RD)
CharUnits GetTargetTypeStoreSize (llvm::Type *Ty) const
llvm::GlobalValue::LinkageTypes GetLLVMLinkageVarDefinition (const VarDecl *D, llvm::GlobalVariable *GV)
void EmitGlobalAnnotations ()
 Emit all the global annotations.
llvm::Constant * EmitAnnotationString (llvm::StringRef Str)
 Emit an annotation string.
llvm::Constant * EmitAnnotationUnit (SourceLocation Loc)
 Emit the annotation's translation unit.
llvm::Constant * EmitAnnotationLineNo (SourceLocation L)
 Emit the annotation line number.
llvm::Constant * EmitAnnotateAttr (llvm::GlobalValue *GV, const AnnotateAttr *AA, SourceLocation L)
void AddGlobalAnnotations (const ValueDecl *D, llvm::GlobalValue *GV)
Custom Blocks Runtime Interfaces
llvm::Constant * getNSConcreteGlobalBlock ()
llvm::Constant * getNSConcreteStackBlock ()
llvm::Constant * getBlockObjectAssign ()
llvm::Constant * getBlockObjectDispose ()

Static Public Member Functions

static void DecorateInstruction (llvm::Instruction *Inst, llvm::MDNode *TBAAInfo)
static
llvm::GlobalValue::VisibilityTypes 
GetLLVMVisibility (Visibility V)

Public Attributes

llvm::FoldingSet< ByrefHelpersByrefHelpersCache
std::vector< const
CXXRecordDecl * > 
DeferredVTables
int GlobalUniqueCount

Friends

class CodeGenVTables

Detailed Description

CodeGenModule - This class organizes the cross-function state that is used while generating LLVM code.

Definition at line 210 of file CodeGenModule.h.


Member Enumeration Documentation

TypeVisibilityKind - The kind of global variable that is passed to setTypeVisibility

Enumerator:
TVK_ForVTT 
TVK_ForVTable 
TVK_ForConstructionVTable 
TVK_ForRTTI 
TVK_ForRTTIName 

Definition at line 454 of file CodeGenModule.h.


Constructor & Destructor Documentation

CodeGenModule::CodeGenModule ( ASTContext C,
const CodeGenOptions CodeGenOpts,
llvm::Module &  M,
const llvm::TargetData &  TD,
DiagnosticsEngine Diags 
)
CodeGenModule::~CodeGenModule ( )

Definition at line 121 of file CodeGenModule.cpp.


Member Function Documentation

void clang::CodeGen::CodeGenModule::AddCXXDtorEntry ( llvm::Constant *  DtorFn,
llvm::Constant *  Object 
) [inline]

AddCXXDtorEntry - Add a destructor and object to add to the C++ global destructor function.

Definition at line 656 of file CodeGenModule.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCXXGlobalDtorRegistration().

void CodeGenModule::AddGlobalAnnotations ( const ValueDecl D,
llvm::GlobalValue *  GV 
)

Add global annotations that are set on D, for the global GV. Those annotations are emitted during finalization of the LLVM code.

Definition at line 743 of file CodeGenModule.cpp.

References EmitAnnotateAttr(), clang::Decl::getLocation(), clang::Decl::hasAttr(), clang::Decl::specific_attr_begin(), and clang::Decl::specific_attr_end().

Referenced by clang::CodeGen::CodeGenFunction::EmitStaticVarDecl().

void CodeGenModule::AddUsedGlobal ( llvm::GlobalValue *  GV)

AddUsedGlobal - Add a global which should be forced to be present in the object file; these are emitted to the llvm.used metadata global.

Definition at line 607 of file CodeGenModule.cpp.

Referenced by clang::CodeGen::CodeGenFunction::EmitStaticVarDecl().

void CodeGenModule::ConstructAttributeList ( const CGFunctionInfo Info,
const Decl TargetDecl,
AttributeListType PAL,
unsigned &  CallingConv 
)

ConstructAttributeList - Get the LLVM attributes and calling convention to use for a particular function type.

Parameters:
Info- The function type information.
TargetDecl- The decl these attributes are being constructed for. If supplied the attributes applied to this decl may contribute to the function attributes and calling convention.
PAL[out] - On return, the attribute list to use.
CallingConv[out] - On return, the LLVM calling convention to use.

Definition at line 732 of file CGCall.cpp.

References clang::CodeGen::CGFunctionInfo::arg_begin(), clang::CodeGen::CGFunctionInfo::arg_end(), clang::ABIArgInfo::Direct, clang::CodeGenOptions::DisableRedZone, clang::ABIArgInfo::Expand, clang::ABIArgInfo::Extend, clang::Type::getAs(), clang::ABIArgInfo::getCoerceToType(), getContext(), clang::CodeGen::CGFunctionInfo::getEffectiveCallingConvention(), clang::CodeGen::CodeGenTypes::GetExpandedTypes(), clang::CodeGen::CGFunctionInfo::getHasRegParm(), clang::ABIArgInfo::getIndirectAlign(), clang::ABIArgInfo::getIndirectByVal(), clang::ABIArgInfo::getKind(), clang::ABIArgInfo::getPaddingType(), clang::TargetInfo::getPointerWidth(), clang::CodeGen::CGFunctionInfo::getRegParm(), clang::CodeGen::CGFunctionInfo::getReturnInfo(), clang::CodeGen::CGFunctionInfo::getReturnType(), clang::ASTContext::getTargetInfo(), getTypes(), clang::ASTContext::getTypeSize(), clang::Decl::hasAttr(), clang::ABIArgInfo::Ignore, Index, clang::ABIArgInfo::Indirect, clang::CodeGen::CGFunctionInfo::isNoReturn(), clang::FunctionProtoType::isNothrow(), clang::CodeGenOptions::NoImplicitFloat, clang::CodeGenOptions::NumRegisterParameters, and clang::CodeGenOptions::OptimizeSize.

Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), and SetLLVMFunctionAttributes().

llvm::GlobalVariable * CodeGenModule::CreateOrReplaceCXXRuntimeVariable ( StringRef  Name,
llvm::Type *  Ty,
llvm::GlobalValue::LinkageTypes  Linkage 
)

CreateOrReplaceCXXRuntimeVariable - Will return a global variable of the given type. If a variable with a different type already exists then a new variable with the right type will be created and all uses of the old variable will be replaced with a bitcast to the new variable.

Definition at line 1197 of file CodeGenModule.cpp.

References getModule().

Referenced by clang::CodeGen::CodeGenVTables::GenerateConstructionVTable(), clang::CodeGen::CodeGenVTables::GetAddrOfVTable(), and clang::CodeGen::CodeGenVTables::GetAddrOfVTT().

llvm::Constant * CodeGenModule::CreateRuntimeFunction ( llvm::FunctionType *  FTy,
StringRef  Name,
llvm::Attributes  ExtraAttrs = llvm::Attribute::None 
)
llvm::Constant * CodeGenModule::CreateRuntimeVariable ( llvm::Type *  Ty,
StringRef  Name 
)

CreateRuntimeVariable - Create a new runtime global variable with the specified type and name.

Definition at line 1256 of file CodeGenModule.cpp.

Referenced by clang::CodeGen::CodeGenFunction::EmitCXXGlobalDtorRegistration(), GetAddrOfConstantCFString(), and GetAddrOfConstantString().

void CodeGenModule::DecorateInstruction ( llvm::Instruction *  Inst,
llvm::MDNode *  TBAAInfo 
) [static]
llvm::Constant * CodeGenModule::EmitAnnotateAttr ( llvm::GlobalValue *  GV,
const AnnotateAttr *  AA,
SourceLocation  L 
)

EmitAnnotateAttr - Generate the llvm::ConstantStruct which contains the annotation information for a given GlobalValue. The annotation struct is {i8 *, i8 *, i8 *, i32}. The first field is a constant expression, the GlobalValue being annotated. The second field is the constant string created from the AnnotateAttr's annotation. The third field is a constant string containing the name of the translation unit. The fourth field is the line number in the file of the annotated value declaration.

Definition at line 725 of file CodeGenModule.cpp.

References EmitAnnotationLineNo(), EmitAnnotationString(), EmitAnnotationUnit(), and clang::CodeGen::CodeGenTypeCache::Int8PtrTy.

Referenced by AddGlobalAnnotations().

llvm::Constant * CodeGenModule::EmitAnnotationLineNo ( SourceLocation  L)
llvm::Constant * CodeGenModule::EmitAnnotationString ( llvm::StringRef  Str)
llvm::Constant * CodeGenModule::EmitAnnotationUnit ( SourceLocation  Loc)
llvm::Constant * CodeGenModule::EmitConstantExpr ( const Expr E,
QualType  DestType,
CodeGenFunction CGF = 0 
)
llvm::Constant * CodeGenModule::EmitConstantInit ( const VarDecl D,
CodeGenFunction CGF = 0 
)
llvm::Constant * CodeGenModule::EmitConstantValue ( const APValue Value,
QualType  DestType,
CodeGenFunction CGF = 0 
)

EmitConstantValue - Try to emit the given constant value as a constant; returns 0 if the value cannot be emitted as a constant.

Definition at line 976 of file CGExprConstant.cpp.

References clang::APValue::AddrLabelDiff, clang::APValue::Array, clang::APValue::ComplexFloat, clang::APValue::ComplexInt, clang::CodeGen::CodeGenTypes::ConvertType(), clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), EmitConstantExpr(), clang::CodeGen::CGCXXABI::EmitMemberPointer(), clang::APValue::Float, clang::APValue::getAddrLabelDiffLHS(), clang::APValue::getAddrLabelDiffRHS(), clang::APValue::getArrayFiller(), clang::APValue::getArrayInitializedElt(), clang::APValue::getArrayInitializedElts(), clang::APValue::getArraySize(), clang::ASTContext::getAsArrayType(), clang::APValue::getComplexFloatImag(), clang::APValue::getComplexFloatReal(), clang::APValue::getComplexIntImag(), clang::APValue::getComplexIntReal(), getCXXABI(), clang::ArrayType::getElementType(), clang::APValue::getFloat(), clang::APValue::getInt(), clang::APValue::getKind(), clang::APValue::getLValueBase(), clang::APValue::getLValueOffset(), clang::CharUnits::getQuantity(), clang::Expr::getType(), getTypes(), clang::APValue::getVectorElt(), clang::APValue::getVectorLength(), clang::APValue::hasArrayFiller(), clang::APValue::Int, clang::CodeGen::CodeGenTypeCache::Int64Ty, clang::CodeGen::CodeGenTypeCache::Int8PtrTy, clang::CodeGen::CodeGenTypeCache::IntPtrTy, clang::APValue::isInt(), clang::APValue::LValue, clang::APValue::MemberPointer, NULL, clang::APValue::Struct, clang::APValue::Uninitialized, clang::APValue::Union, and clang::APValue::Vector.

Referenced by EmitConstantExpr(), and EmitConstantInit().

void CodeGenModule::EmitGlobalAnnotations ( )

Emit all the global annotations.

Definition at line 681 of file CodeGenModule.cpp.

References AnnotationSection, and getModule().

Referenced by Release().

llvm::Constant * CodeGenModule::EmitNullConstant ( QualType  T)
llvm::Constant * CodeGenModule::EmitNullConstantForBase ( const CXXRecordDecl Record)

EmitNullConstantForBase - Return a null constant appropriate for zero-initializing a base class with the given type. This is usually, but not always, an LLVM null constant.

Definition at line 1407 of file CGExprConstant.cpp.

References EmitNullConstant().

Referenced by EmitNullBaseClassInitialization().

void CodeGenModule::EmitTentativeDefinition ( const VarDecl D)

Definition at line 1262 of file CodeGenModule.cpp.

References clang::VarDecl::getInit(), and getMangledName().

void CodeGenModule::EmitTopLevelDecl ( Decl D)
void CodeGenModule::EmitVTable ( CXXRecordDecl Class,
bool  DefinitionRequired 
)
void CodeGenModule::Error ( SourceLocation  loc,
StringRef  error 
)
void CodeGenModule::ErrorUnsupported ( const Stmt S,
const char *  Type,
bool  OmitOnError = false 
)

ErrorUnsupported - Print out an error that codegen doesn't support the specified stmt yet.

Parameters:
OmitOnError- If true, then this error should only be emitted if no other errors have been reported.

ErrorUnsupported - Print out an error that codegen doesn't support the specified stmt yet.

Definition at line 201 of file CodeGenModule.cpp.

References clang::DiagnosticsEngine::Error, clang::DiagnosticsEngine::getCustomDiagID(), getDiags(), clang::ASTContext::getFullLoc(), clang::Stmt::getLocStart(), clang::Stmt::getSourceRange(), and clang::DiagnosticsEngine::Report().

Referenced by clang::CodeGen::CodeGenFunction::AddInitializerToStaticVarDecl(), AddVariableConstraints(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::ErrorUnsupported(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), and clang::CodeGen::CodeGenFunction::generateObjCSetterBody().

void CodeGenModule::ErrorUnsupported ( const Decl D,
const char *  Type,
bool  OmitOnError = false 
)

ErrorUnsupported - Print out an error that codegen doesn't support the specified decl yet.

Parameters:
OmitOnError- If true, then this error should only be emitted if no other errors have been reported.

ErrorUnsupported - Print out an error that codegen doesn't support the specified decl yet.

Definition at line 214 of file CodeGenModule.cpp.

References clang::DiagnosticsEngine::Error, clang::DiagnosticsEngine::getCustomDiagID(), getDiags(), clang::ASTContext::getFullLoc(), clang::Decl::getLocation(), and clang::DiagnosticsEngine::Report().

llvm::Constant * CodeGenModule::GetAddrOfConstantCFString ( const StringLiteral Literal)
llvm::Constant * CodeGenModule::GetAddrOfConstantCompoundLiteral ( const CompoundLiteralExpr E)

GetAddrOfConstantCompoundLiteral - Returns a pointer to a constant global variable for the given file-scope compound literal expression.

Definition at line 1153 of file CGExprConstant.cpp.

References clang::CompoundLiteralExpr::isFileScope().

Referenced by clang::CodeGen::CodeGenFunction::EmitCompoundLiteralLValue().

llvm::Constant * CodeGenModule::GetAddrOfConstantCString ( const std::string &  Str,
const char *  GlobalName = 0,
unsigned  Alignment = 1 
)

GetAddrOfConstantCString - Returns a pointer to a character array containing the literal and a terminating '\0' character. The result has pointer to array type.

Parameters:
GlobalNameIf provided, the name to use for the global (if one is created).

GetAddrOfConstantCString - Returns a pointer to a character array containing the literal and a terminating '\0' character. The result has pointer to array type.

Definition at line 2196 of file CodeGenModule.cpp.

References GetAddrOfConstantString().

Referenced by buildBlockDescriptor(), clang::CodeGen::CodeGenFunction::EmitPredefinedLValue(), and GetAddrOfConstantStringFromObjCEncode().

llvm::Constant * CodeGenModule::GetAddrOfConstantString ( const StringLiteral Literal)
llvm::Constant * CodeGenModule::GetAddrOfConstantString ( StringRef  Str,
const char *  GlobalName = 0,
unsigned  Alignment = 1 
)

GetAddrOfConstantString - Returns a pointer to a character array containing the literal. This contents are exactly that of the given string, i.e. it will not be null terminated automatically; see GetAddrOfConstantCString. Note that whether the result is actually a pointer to an LLVM constant depends on Feature.WriteableStrings.

The result has pointer to array type.

Parameters:
GlobalNameIf provided, the name to use for the global (if one is created).

GetAddrOfConstantString - Returns a pointer to a character array containing the literal. This contents are exactly that of the given string, i.e. it will not be null terminated automatically; see GetAddrOfConstantCString. Note that whether the result is actually a pointer to an LLVM constant depends on Feature.WriteableStrings.

The result has pointer to array type.

Definition at line 2165 of file CodeGenModule.cpp.

References GenerateStringLiteral().

llvm::Constant * CodeGenModule::GetAddrOfConstantStringFromLiteral ( const StringLiteral S)
llvm::Constant * CodeGenModule::GetAddrOfConstantStringFromObjCEncode ( const ObjCEncodeExpr E)

GetAddrOfConstantStringFromObjCEncode - Return a pointer to a constant array for the given ObjCEncodeExpr node.

Definition at line 2129 of file CodeGenModule.cpp.

References GetAddrOfConstantCString(), getContext(), clang::ObjCEncodeExpr::getEncodedType(), and clang::ASTContext::getObjCEncodingForType().

Referenced by clang::CodeGen::CodeGenFunction::EmitObjCEncodeExprLValue().

llvm::GlobalValue * CodeGenModule::GetAddrOfCXXConstructor ( const CXXConstructorDecl ctor,
CXXCtorType  ctorType,
const CGFunctionInfo fnInfo = 0 
)
llvm::GlobalValue * CodeGenModule::GetAddrOfCXXDestructor ( const CXXDestructorDecl dtor,
CXXDtorType  dtorType,
const CGFunctionInfo fnInfo = 0 
)
llvm::Constant * CodeGenModule::GetAddrOfFunction ( GlobalDecl  GD,
llvm::Type *  Ty = 0,
bool  ForVTable = false 
)

GetAddrOfFunction - Return the address of the given function. If Ty is non-null, then this function will use the specified type if it has to create it.

GetAddrOfFunction - Return the address of the given function. If Ty is non-null, then this function will use the specified type if it has to create it (this occurs when we see a definition of the function).

Definition at line 1082 of file CodeGenModule.cpp.

References clang::CodeGen::CodeGenTypes::ConvertType(), clang::GlobalDecl::getDecl(), getMangledName(), and getTypes().

Referenced by clang::CodeGen::CodeGenFunction::EmitAutoVarCleanups(), clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitCXXOperatorMemberCallee(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), EmitFunctionDeclLValue(), clang::CodeGen::CodeGenFunction::GenerateThunk(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), and GetAddrOfGlobal().

llvm::Constant* clang::CodeGen::CodeGenModule::GetAddrOfGlobal ( GlobalDecl  GD) [inline]
llvm::Constant * CodeGenModule::GetAddrOfGlobalBlock ( const BlockExpr BE,
const char *  name 
)
llvm::Constant * CodeGenModule::GetAddrOfGlobalVar ( const VarDecl D,
llvm::Type *  Ty = 0 
)

GetAddrOfGlobalVar - Return the llvm::Constant for the address of the given global variable. If Ty is non-null and if the global doesn't exist, then it will be greated with the specified type instead of whatever the normal requested type would be.

Definition at line 1239 of file CodeGenModule.cpp.

References clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), getContext(), getMangledName(), clang::ValueDecl::getType(), getTypes(), and clang::VarDecl::hasGlobalStorage().

Referenced by EmitGlobalVarDeclLValue(), and GetAddrOfGlobal().

llvm::Constant * CodeGenModule::GetAddrOfRTTIDescriptor ( QualType  Ty,
bool  ForEH = false 
)
llvm::Constant * CodeGenModule::GetAddrOfThunk ( GlobalDecl  GD,
const ThunkInfo Thunk 
)
ARCEntrypoints& clang::CodeGen::CodeGenModule::getARCEntrypoints ( ) const [inline]
llvm::Constant* clang::CodeGen::CodeGenModule::getAtomicGetterHelperFnMap ( QualType  Ty) [inline]
llvm::Constant* clang::CodeGen::CodeGenModule::getAtomicSetterHelperFnMap ( QualType  Ty) [inline]
llvm::Type * CodeGenModule::getBlockDescriptorType ( )

getBlockDescriptorType - Fetches the type of a generic block descriptor.

Definition at line 772 of file CGBlocks.cpp.

References clang::CodeGen::CodeGenTypes::ConvertType(), clang::serialized_diags::create(), getContext(), getTypes(), and NULL.

Referenced by buildBlockDescriptor(), getGenericBlockLiteralType(), and initializeForBlockHeader().

void CodeGenModule::getBlockMangledName ( GlobalDecl  GD,
MangleBuffer Buffer,
const BlockDecl BD 
)
llvm::Constant * CodeGenModule::getBlockObjectAssign ( )
llvm::Constant * CodeGenModule::getBlockObjectDispose ( )
llvm::Value * CodeGenModule::getBuiltinLibFunction ( const FunctionDecl FD,
unsigned  BuiltinID 
)

getBuiltinLibFunction - Given a builtin id for a function like "__builtin_fabsf", return a Function* for "fabsf".

Definition at line 31 of file CGBuiltin.cpp.

References clang::ValueDecl::getType(), and clang::Decl::hasAttr().

const CodeGenOptions& clang::CodeGen::CodeGenModule::getCodeGenOpts ( ) const [inline]
llvm::Constant * CodeGenModule::GetConstantArrayFromStringLiteral ( const StringLiteral E)
ASTContext& clang::CodeGen::CodeGenModule::getContext ( ) const [inline]

Definition at line 424 of file CodeGenModule.h.

Referenced by clang::CodeGen::CodeGenFunction::AddInitializerToStaticVarDecl(), buildBlockDescriptor(), buildByrefHelpers(), clang::CodeGen::CodeGenFunction::BuildByRefType(), clang::CodeGen::CGCXXABI::BuildThisParam(), computeBlockInfo(), clang::CodeGen::CGObjCRuntime::ComputeIvarBaseOffset(), ConstructAttributeList(), clang::CodeGen::CGCXXABI::ConvertMemberPointerType(), createCXXABI(), CreateGlobalInitOrDestructFunction(), clang::CodeGen::CodeGenFunction::CreateStaticVarDecl(), EmitAnnotationLineNo(), EmitAnnotationUnit(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CGDebugInfo::EmitLocation(), clang::CodeGen::CGCXXABI::EmitMemberPointer(), EmitNullConstantForBase(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPop(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPush(), clang::CodeGen::CodeGenFunction::EmitStaticVarDecl(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), clang::CodeGen::CodeGenVTables::EmitVTTDefinition(), FillInNullDataMemberPointers(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod(), GetAddrOfConstantCFString(), GetAddrOfConstantString(), GetAddrOfConstantStringFromLiteral(), GetAddrOfConstantStringFromObjCEncode(), GetAddrOfGlobalVar(), GetAddrOfRTTIDescriptor(), clang::CodeGen::CodeGenVTables::GetAddrOfVTT(), getAsmSrcLocInfo(), getBlockDescriptorType(), clang::CodeGen::CGCXXABI::getContext(), clang::CodeGen::CodeGenFunction::getContext(), getFunctionLinkage(), getGuardAcquireFn(), GetLLVMLinkageVarDefinition(), getMemberPointerConstant(), GetNonVirtualBaseClassOffset(), clang::CodeGen::CodeGenVTables::getSecondaryVirtualPointerIndex(), clang::CodeGen::CodeGenVTables::getSubVTTIndex(), getTargetCodeGenInfo(), InitCatchParam(), initializeForBlockHeader(), isTargetDarwin(), LookupFieldBitOffset(), ReturnTypeUsesFP2Ret(), ReturnTypeUsesFPRet(), clang::CodeGen::CGDebugInfo::setLocation(), clang::CodeGen::CodeGenVTables::ShouldEmitVTableInThisTU(), ShouldUseExternalRTTIDescriptor(), and clang::CodeGen::CGDebugInfo::UpdateCompletedType().

CGCUDARuntime& clang::CodeGen::CodeGenModule::getCUDARuntime ( ) [inline]

getCUDARuntime() - Return a reference to the configured CUDA runtime.

Definition at line 380 of file CodeGenModule.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCUDAKernelCallExpr(), and clang::CodeGen::CodeGenFunction::GenerateCode().

CGCXXABI& clang::CodeGen::CodeGenModule::getCXXABI ( ) [inline]
DiagnosticsEngine& clang::CodeGen::CodeGenModule::getDiags ( ) const [inline]

Definition at line 431 of file CodeGenModule.h.

Referenced by Error(), ErrorUnsupported(), and ErrorUnsupportedABI().

llvm::GlobalValue::LinkageTypes CodeGenModule::getFunctionLinkage ( const FunctionDecl FD)
llvm::Type * CodeGenModule::getGenericBlockLiteralType ( )

getGenericBlockLiteralType - The type of a generic block literal.

Definition at line 802 of file CGBlocks.cpp.

References clang::serialized_diags::create(), getBlockDescriptorType(), clang::CodeGen::CodeGenTypeCache::IntTy, NULL, and clang::CodeGen::CodeGenTypeCache::VoidPtrTy.

llvm::Function * CodeGenModule::getIntrinsic ( unsigned  IID,
ArrayRef< llvm::Type * >  Tys = ArrayRef<llvm::Type*>() 
)
const LangOptions& clang::CodeGen::CodeGenModule::getLangOptions ( ) const [inline]

Definition at line 426 of file CodeGenModule.h.

Referenced by CodeGenModule(), computeBlockInfo(), configureBlocksRuntimeObject(), CreateGlobalInitOrDestructFunction(), clang::CodeGen::CreateGNUObjCRuntime(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), EmitBaseInitializer(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), clang::CodeGen::CodeGenFunction::EmitDelegatingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitEndEHSpec(), clang::CodeGen::CGDebugInfo::EmitFunctionStart(), EmitMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolCleanup(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::EmitStartEHSpec(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), GetAddrOfConstantString(), GetAddrOfRTTIDescriptor(), getARCEntrypoints(), getAsmSrcLocInfo(), clang::CodeGen::CodeGenFunction::getEHResumeBlock(), clang::CodeGen::CodeGenFunction::getInvokeDestImpl(), clang::CodeGen::CodeGenFunction::getLangOptions(), GetLLVMLinkageVarDefinition(), clang::CodeGen::CodeGenFunction::getTerminateLandingPad(), getTypeInfoLinkage(), clang::CodeGen::CodeGenFunction::getUnwindResumeFn(), clang::CodeGen::CodeGenFunction::getUnwindResumeOrRethrowFn(), clang::CodeGen::CodeGenFunction::IvarTypeWithAggrGCObjects(), clang::CodeGen::CodeGenVTables::ShouldEmitVTableInThisTU(), clang::CodeGen::CodeGenFunction::StartObjCMethod(), and tryCaptureAsConstant().

llvm::LLVMContext& clang::CodeGen::CodeGenModule::getLLVMContext ( ) [inline]
llvm::GlobalValue::LinkageTypes CodeGenModule::GetLLVMLinkageVarDefinition ( const VarDecl D,
llvm::GlobalVariable *  GV 
)
static llvm::GlobalValue::VisibilityTypes clang::CodeGen::CodeGenModule::GetLLVMVisibility ( Visibility  V) [inline, static]
StringRef CodeGenModule::getMangledName ( GlobalDecl  GD)
llvm::Constant * CodeGenModule::getMemberPointerConstant ( const UnaryOperator e)
llvm::Module& clang::CodeGen::CodeGenModule::getModule ( ) const [inline]
CGDebugInfo* clang::CodeGen::CodeGenModule::getModuleDebugInfo ( ) [inline]
llvm::Constant * CodeGenModule::GetNonVirtualBaseClassOffset ( const CXXRecordDecl ClassDecl,
CastExpr::path_const_iterator  PathBegin,
CastExpr::path_const_iterator  PathEnd 
)

GetNonVirtualBaseClassOffset - Returns the offset from a derived class to a class. Returns null if the offset is 0.

Definition at line 54 of file CGClass.cpp.

References ComputeNonVirtualBaseClassOffset(), clang::CodeGen::CodeGenTypes::ConvertType(), getContext(), clang::CharUnits::getQuantity(), clang::CharUnits::isZero(), and clang::CodeGen::CodeGenTypeCache::PtrDiffTy.

Referenced by clang::CodeGen::CodeGenFunction::GetAddressOfDerivedClass().

llvm::Constant * CodeGenModule::getNSConcreteGlobalBlock ( )
llvm::Constant * CodeGenModule::getNSConcreteStackBlock ( )
QualType CodeGenModule::getObjCFastEnumerationStateType ( )
CGObjCRuntime& clang::CodeGen::CodeGenModule::getObjCRuntime ( ) [inline]
CGOpenCLRuntime& clang::CodeGen::CodeGenModule::getOpenCLRuntime ( ) [inline]

getOpenCLRuntime() - Return a reference to the configured OpenCL runtime.

Definition at line 374 of file CodeGenModule.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitVarDecl().

RREntrypoints& clang::CodeGen::CodeGenModule::getRREntrypoints ( ) const [inline]
llvm::ConstantInt * CodeGenModule::getSize ( CharUnits  numChars)
llvm::Value* clang::CodeGen::CodeGenModule::getStaticLocalDeclAddress ( const VarDecl VD) [inline]

Definition at line 398 of file CodeGenModule.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitDeclRefLValue().

const TargetInfo& clang::CodeGen::CodeGenModule::getTarget ( ) const [inline]

Definition at line 433 of file CodeGenModule.h.

References clang::ASTContext::getTargetInfo().

const TargetCodeGenInfo & CodeGenModule::getTargetCodeGenInfo ( )
const llvm::TargetData& clang::CodeGen::CodeGenModule::getTargetData ( ) const [inline]
CharUnits CodeGenModule::GetTargetTypeStoreSize ( llvm::Type *  Ty) const

GetTargetTypeStoreSize - Return the store size, in character units, of the given LLVM type.

Definition at line 1354 of file CodeGenModule.cpp.

References clang::ASTContext::toCharUnitsFromBits().

llvm::MDNode * CodeGenModule::getTBAAInfo ( QualType  QTy)
CodeGenTypes& clang::CodeGen::CodeGenModule::getTypes ( ) [inline]

Definition at line 428 of file CodeGenModule.h.

Referenced by clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualDestructorCall(), buildBlockDescriptor(), buildGlobalBlock(), computeBlockInfo(), ConstructAttributeList(), clang::CodeGen::CGCXXABI::ConvertMemberPointerType(), clang::CodeGen::CodeGenFunction::ConvertType(), clang::CodeGen::CodeGenFunction::ConvertTypeForMem(), clang::CodeGen::CodeGenFunction::CreateStaticVarDecl(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarCleanups(), clang::CodeGen::CodeGenFunction::EmitCall(), EmitConstantExpr(), EmitConstantInit(), EmitConstantValue(), clang::CodeGen::CodeGenFunction::EmitCXXMemberCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitCXXOperatorMemberCallee(), clang::CodeGen::CodeGenFunction::EmitDelegateCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CGCXXABI::EmitLoadOfMemberFunctionPointer(), clang::CodeGen::CodeGenFunction::EmitLValueForBitfield(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), EmitNewInitializer(), EmitNullBaseClassInitialization(), EmitNullConstant(), EmitNullConstant(), EmitNullConstantForBase(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitStaticVarDecl(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), clang::CodeGen::CodeGenFunction::EmitVAArg(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), FillInNullDataMemberPointers(), generateByrefCopyHelper(), generateByrefDisposeHelper(), clang::CodeGen::CodeGenFunction::generateDestroyHelper(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod(), clang::CodeGen::CodeGenFunction::GenerateThunk(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), GetAddrOfConstantCFString(), GetAddrOfConstantString(), GetAddrOfCXXConstructor(), GetAddrOfCXXDestructor(), GetAddrOfFunction(), GetAddrOfGlobalVar(), GetAddrOfThunk(), getBlockDescriptorType(), GetBogusMemberPointer(), GetConstantArrayFromStringLiteral(), getGuardAcquireFn(), clang::CodeGen::CodeGenFunction::getTypes(), GetWeakRefReference(), initializeForBlockHeader(), and clang::CodeGen::CodeGenFunction::StartObjCMethod().

int clang::CodeGen::CodeGenModule::getUniqueBlockCount ( ) [inline]

getUniqueBlockCount - Fetches the global unique block count.

Definition at line 560 of file CodeGenModule.h.

Referenced by clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable().

VTableContext& clang::CodeGen::CodeGenModule::getVTableContext ( ) [inline]
llvm::GlobalVariable::LinkageTypes CodeGenModule::getVTableLinkage ( const CXXRecordDecl RD)
CodeGenVTables& clang::CodeGen::CodeGenModule::getVTables ( ) [inline]
llvm::Constant * CodeGenModule::GetWeakRefReference ( const ValueDecl VD)

GetWeakRefReference - Get a reference to the target of VD.

Definition at line 761 of file CodeGenModule.cpp.

References clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), clang::Decl::getAttr(), clang::ValueDecl::getType(), and getTypes().

Referenced by clang::CodeGen::CodeGenFunction::EmitDeclRefLValue().

bool clang::CodeGen::CodeGenModule::hasObjCRuntime ( ) [inline]

hasObjCRuntime() - Return true iff an Objective-C runtime has been configured.

Definition at line 371 of file CodeGenModule.h.

bool CodeGenModule::isTargetDarwin ( ) const
void CodeGenModule::Release ( )
bool CodeGenModule::ReturnTypeUsesFP2Ret ( QualType  ResultType)

ReturnTypeUsesFP2Ret - Return true iff the given type uses 'fp2ret' when used as a return type.

Definition at line 614 of file CGCall.cpp.

References clang::Type::getAs(), getContext(), clang::ASTContext::getTargetInfo(), and clang::TargetInfo::useObjCFP2RetForComplexLongDouble().

bool CodeGenModule::ReturnTypeUsesFPRet ( QualType  ResultType)

ReturnTypeUsesFPRet - Return true iff the given type uses 'fpret' when used as a return type.

Definition at line 596 of file CGCall.cpp.

References clang::TargetInfo::Double, clang::TargetInfo::Float, getContext(), clang::ASTContext::getTargetInfo(), clang::TargetInfo::LongDouble, and clang::TargetInfo::useObjCFPRetForRealType().

bool CodeGenModule::ReturnTypeUsesSRet ( const CGFunctionInfo FI)

ReturnTypeUsesSRet - Return true iff the given type uses 'sret' when used as a return type.

Definition at line 592 of file CGCall.cpp.

References clang::CodeGen::CGFunctionInfo::getReturnInfo(), and clang::ABIArgInfo::isIndirect().

Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk().

void clang::CodeGen::CodeGenModule::setAtomicGetterHelperFnMap ( QualType  Ty,
llvm::Constant *  Fn 
) [inline]
void clang::CodeGen::CodeGenModule::setAtomicSetterHelperFnMap ( QualType  Ty,
llvm::Constant *  Fn 
) [inline]
void clang::CodeGen::CodeGenModule::setFunctionLinkage ( const FunctionDecl FD,
llvm::GlobalValue *  V 
) [inline]

Definition at line 783 of file CodeGenModule.h.

References getFunctionLinkage().

Referenced by clang::CodeGen::CodeGenFunction::GenerateThunk().

void CodeGenModule::setGlobalVisibility ( llvm::GlobalValue *  GV,
const NamedDecl D 
) const
void CodeGenModule::SetInternalFunctionAttributes ( const Decl D,
llvm::Function *  F,
const CGFunctionInfo FI 
)

SetInternalFunctionAttributes - Set the attributes on the LLVM function for the given decl and function info. This applies attributes necessary for handling the ABI as well as user specified attributes like section.

Definition at line 558 of file CodeGenModule.cpp.

References clang::InternalLinkage, SetLLVMFunctionAttributes(), and SetLLVMFunctionAttributesForDefinition().

Referenced by clang::CodeGen::CodeGenFunction::StartObjCMethod().

void CodeGenModule::SetLLVMFunctionAttributes ( const Decl D,
const CGFunctionInfo Info,
llvm::Function *  F 
)

SetLLVMFunctionAttributes - Set the LLVM function attributes (sext, zext, etc).

Definition at line 465 of file CodeGenModule.cpp.

References ConstructAttributeList().

Referenced by SetInternalFunctionAttributes().

void CodeGenModule::SetLLVMFunctionAttributesForDefinition ( const Decl D,
llvm::Function *  F 
)

SetLLVMFunctionAttributesForDefinition - Set the LLVM function attributes which only apply to a function definintion.

Definition at line 496 of file CodeGenModule.cpp.

References clang::ASTContext::getCharWidth(), clang::Decl::getMaxAlignment(), clang::Decl::hasAttr(), hasUnwindExceptions(), clang::LangOptions::SSPOn, clang::LangOptions::SSPReq, and clang::CodeGenOptions::UnwindTables.

Referenced by SetInternalFunctionAttributes().

void clang::CodeGen::CodeGenModule::setStaticLocalDeclAddress ( const VarDecl D,
llvm::GlobalVariable *  GV 
) [inline]

Definition at line 401 of file CodeGenModule.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitStaticVarDecl().

void CodeGenModule::setTypeVisibility ( llvm::GlobalValue *  GV,
const CXXRecordDecl RD,
TypeVisibilityKind  TVK 
) const
bool clang::CodeGen::CodeGenModule::shouldUseTBAA ( ) const [inline]
void CodeGenModule::UpdateCompletedType ( const TagDecl TD)

Friends And Related Function Documentation

friend class CodeGenVTables [friend]

Definition at line 229 of file CodeGenModule.h.


Member Data Documentation

Definition at line 557 of file CodeGenModule.h.

Referenced by buildByrefHelpers().

Definition at line 801 of file CodeGenModule.h.

Referenced by clang::CodeGen::CodeGenVTables::GetAddrOfVTable().

Definition at line 348 of file CodeGenModule.h.


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