clang API Documentation
#include <CodeGenModule.h>


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. | |
| CGObjCRuntime & | getObjCRuntime () |
| bool | hasObjCRuntime () |
| CGOpenCLRuntime & | getOpenCLRuntime () |
| getOpenCLRuntime() - Return a reference to the configured OpenCL runtime. | |
| CGCUDARuntime & | getCUDARuntime () |
| getCUDARuntime() - Return a reference to the configured CUDA runtime. | |
| CGCXXABI & | getCXXABI () |
| getCXXABI() - Return a reference to the configured C++ ABI. | |
| ARCEntrypoints & | getARCEntrypoints () const |
| RREntrypoints & | getRREntrypoints () const |
| llvm::Value * | getStaticLocalDeclAddress (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) |
| CGDebugInfo * | getModuleDebugInfo () |
| ASTContext & | getContext () const |
| const CodeGenOptions & | getCodeGenOpts () const |
| const LangOptions & | getLangOptions () const |
| llvm::Module & | getModule () const |
| CodeGenTypes & | getTypes () |
| CodeGenVTables & | getVTables () |
| VTableContext & | getVTableContext () |
| DiagnosticsEngine & | getDiags () const |
| const llvm::TargetData & | getTargetData () const |
| const TargetInfo & | getTarget () const |
| llvm::LLVMContext & | getLLVMContext () |
| const TargetCodeGenInfo & | getTargetCodeGenInfo () |
| 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::Value * | getBuiltinLibFunction (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< ByrefHelpers > | ByrefHelpersCache |
| std::vector< const CXXRecordDecl * > | DeferredVTables |
| int | GlobalUniqueCount |
Friends | |
| class | CodeGenVTables |
CodeGenModule - This class organizes the cross-function state that is used while generating LLVM code.
Definition at line 210 of file CodeGenModule.h.
TypeVisibilityKind - The kind of global variable that is passed to setTypeVisibility
Definition at line 454 of file CodeGenModule.h.
| CodeGenModule::CodeGenModule | ( | ASTContext & | C, |
| const CodeGenOptions & | CodeGenOpts, | ||
| llvm::Module & | M, | ||
| const llvm::TargetData & | TD, | ||
| DiagnosticsEngine & | Diags | ||
| ) |
Definition at line 63 of file CodeGenModule.cpp.
References clang::CodeGenOptions::DebugInfo, clang::CodeGen::CodeGenTypeCache::DoubleTy, clang::CodeGenOptions::EmitGcovArcs, clang::CodeGenOptions::EmitGcovNotes, clang::CodeGen::CodeGenTypeCache::FloatTy, clang::TargetInfo::getIntWidth(), clang::ASTContext::getLangOptions(), getLangOptions(), clang::CodeGen::CGCXXABI::getMangleContext(), clang::TargetInfo::getPointerAlign(), clang::TargetInfo::getPointerWidth(), clang::ASTContext::getTargetInfo(), clang::CodeGen::CodeGenTypeCache::Int16Ty, clang::CodeGen::CodeGenTypeCache::Int32Ty, clang::CodeGen::CodeGenTypeCache::Int64Ty, clang::CodeGen::CodeGenTypeCache::Int8PtrPtrTy, clang::CodeGen::CodeGenTypeCache::Int8PtrTy, clang::CodeGen::CodeGenTypeCache::Int8Ty, clang::CodeGen::CodeGenTypeCache::IntPtrTy, clang::CodeGen::CodeGenTypeCache::IntTy, clang::CodeGenOptions::OptimizationLevel, clang::CodeGen::CodeGenTypeCache::PointerAlignInBytes, clang::CodeGen::CodeGenTypeCache::PointerWidthInBits, clang::CodeGenOptions::RelaxedAliasing, clang::ASTContext::toCharUnitsFromBits(), and clang::CodeGen::CodeGenTypeCache::VoidTy.
| CodeGenModule::~CodeGenModule | ( | ) |
Definition at line 121 of file CodeGenModule.cpp.
| 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.
| 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 |
||
| ) |
CreateRuntimeFunction - Create a new runtime function with the specified type and name.
Definition at line 1096 of file CodeGenModule.cpp.
Referenced by createARCRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitCXXGlobalDtorRegistration(), EmitFAbs(), clang::CodeGen::CodeGenFunction::EmitFunctionInstrumentation(), clang::CodeGen::CodeGenFunction::EmitMCountInstrumentation(), getAllocateExceptionFn(), getBadCastFn(), getBadTypeidFn(), getBeginCatchFn(), getBlockObjectAssign(), getBlockObjectDispose(), getCatchallRethrowFn(), getDynamicCastFn(), getEndCatchFn(), getFreeExceptionFn(), getGetExceptionPtrFn(), getGuardAbortFn(), getGuardAcquireFn(), getGuardReleaseFn(), getPersonalityFn(), getReThrowFn(), getTerminateFn(), getThrowFn(), getUnexpectedFn(), clang::CodeGen::CodeGenFunction::getUnwindResumeFn(), and clang::CodeGen::CodeGenFunction::getUnwindResumeOrRethrowFn().
| 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] |
Definition at line 185 of file CodeGenModule.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
| 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 | ) |
Emit the annotation line number.
Definition at line 717 of file CodeGenModule.cpp.
References getContext(), clang::SourceManager::getExpansionLineNumber(), clang::PresumedLoc::getLine(), clang::SourceManager::getPresumedLoc(), clang::ASTContext::getSourceManager(), clang::CodeGen::CodeGenTypeCache::Int32Ty, and clang::PresumedLoc::isValid().
Referenced by EmitAnnotateAttr(), and clang::CodeGen::CodeGenFunction::EmitAnnotationCall().
| llvm::Constant * CodeGenModule::EmitAnnotationString | ( | llvm::StringRef | Str | ) |
Emit an annotation string.
Definition at line 694 of file CodeGenModule.cpp.
References AnnotationSection, getLLVMContext(), and getModule().
Referenced by EmitAnnotateAttr(), clang::CodeGen::CodeGenFunction::EmitAnnotationCall(), and EmitAnnotationUnit().
| llvm::Constant * CodeGenModule::EmitAnnotationUnit | ( | SourceLocation | Loc | ) |
Emit the annotation's translation unit.
Definition at line 709 of file CodeGenModule.cpp.
References EmitAnnotationString(), clang::SourceManager::getBufferName(), getContext(), clang::PresumedLoc::getFilename(), clang::SourceManager::getPresumedLoc(), clang::ASTContext::getSourceManager(), and clang::PresumedLoc::isValid().
Referenced by EmitAnnotateAttr(), and clang::CodeGen::CodeGenFunction::EmitAnnotationCall().
| llvm::Constant * CodeGenModule::EmitConstantExpr | ( | const Expr * | E, |
| QualType | DestType, | ||
| CodeGenFunction * | CGF = 0 |
||
| ) |
EmitConstantExpr - Try to emit the given expression as a constant; returns 0 if the expression cannot be emitted as a constant.
Definition at line 953 of file CGExprConstant.cpp.
References clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), EmitConstantValue(), clang::Expr::EvaluateAsLValue(), clang::Expr::EvaluateAsRValue(), clang::Expr::getType(), getTypes(), clang::Expr::EvalStatus::HasSideEffects, and clang::Expr::EvalResult::Val.
Referenced by EmitConstantValue().
| llvm::Constant * CodeGenModule::EmitConstantInit | ( | const VarDecl & | D, |
| CodeGenFunction * | CGF = 0 |
||
| ) |
EmitConstantInit - Try to emit the initializer for the given declaration as a constant; returns 0 if the expression cannot be emitted as a constant.
Definition at line 937 of file CGExprConstant.cpp.
References clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), EmitConstantValue(), clang::VarDecl::evaluateValue(), clang::VarDecl::getInit(), clang::Expr::getType(), clang::ValueDecl::getType(), and getTypes().
Referenced by clang::CodeGen::CodeGenFunction::AddInitializerToStaticVarDecl(), clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), and tryCaptureAsConstant().
| 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 | ) |
EmitNullConstant - Return the result of value-initializing the given type, i.e. a null expression of the given type. This is usually, but not always, an LLVM null constant.
Definition at line 1372 of file CGExprConstant.cpp.
References clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), clang::CodeGen::CGCXXABI::EmitNullMemberPointer(), clang::ASTContext::getAsConstantArrayType(), getCXXABI(), clang::RecordType::getDecl(), clang::ArrayType::getElementType(), clang::MemberPointerType::getPointeeType(), clang::ConstantArrayType::getSize(), and getTypes().
Referenced by clang::CodeGen::CodeGenFunction::CreateStaticVarDecl(), EmitNullConstant(), EmitNullConstantForBase(), and clang::CodeGen::CodeGenFunction::EmitNullInitialization().
| 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 | ) |
EmitTopLevelDecl - Emit code for a single top level declaration.
Definition at line 2304 of file CodeGenModule.cpp.
References clang::CodeGen::CGObjCRuntime::GenerateCategory(), clang::CodeGen::CGObjCRuntime::GenerateClass(), clang::CodeGen::CodeGenFunction::GenerateObjCMethod(), clang::CodeGen::CGObjCRuntime::GenerateProtocol(), clang::FileScopeAsmDecl::getAsmString(), clang::ObjCMethodDecl::getBody(), clang::ObjCCategoryDecl::getClassInterface(), clang::ObjCImplDecl::getClassInterface(), clang::Decl::getDeclContext(), clang::Decl::getKind(), getModule(), clang::StringLiteral::getString(), clang::DiagnosticsEngine::hasErrorOccurred(), clang::ObjCCategoryDecl::hasSynthBitfield(), clang::ObjCImplementationDecl::hasSynthBitfield(), clang::ObjCCategoryDecl::IsClassExtension(), clang::DeclContext::isDependentContext(), clang::ObjCProtocolDecl::isThisDeclarationADefinition(), clang::CodeGen::CGObjCRuntime::RegisterAlias(), and clang::ASTContext::ResetObjCLayout().
| void CodeGenModule::EmitVTable | ( | CXXRecordDecl * | Class, |
| bool | DefinitionRequired | ||
| ) |
Definition at line 1280 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenVTables::GenerateClassData(), getVTableLinkage(), and getVTables().
| void CodeGenModule::Error | ( | SourceLocation | loc, |
| StringRef | error | ||
| ) |
Error - Emit a general error that something can't be done.
Definition at line 194 of file CodeGenModule.cpp.
References clang::DiagnosticsEngine::Error, clang::DiagnosticsEngine::getCustomDiagID(), getDiags(), clang::ASTContext::getFullLoc(), and clang::DiagnosticsEngine::Report().
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXGuardedInit().
| 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.
| 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.
| 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 | ) |
GetAddrOfConstantCFString - Return a pointer to a constant CFString object for the given string.
Definition at line 1814 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenTypes::ConvertType(), CreateRuntimeVariable(), clang::ASTContext::getCFConstantStringType(), clang::TargetInfo::getCFStringSection(), GetConstantCFStringEntry(), getContext(), getModule(), clang::CharUnits::getQuantity(), getTargetData(), clang::ASTContext::getTargetInfo(), clang::ASTContext::getTypeAlignInChars(), getTypes(), clang::CodeGen::CodeGenTypeCache::Int32Ty, clang::InternalLinkage, and clang::CodeGen::CodeGenTypeCache::IntTy.
| 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.
| GlobalName | If 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 | ) |
GetAddrOfConstantString - Return a pointer to a constant NSString object for the given string. Or a user defined String object as defined via -fconstant-string-class=class_name option.
Definition at line 1910 of file CodeGenModule.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, clang::ASTContext::CharTy, clang::RecordDecl::completeDefinition(), clang::CodeGen::CodeGenTypes::ConvertType(), clang::FieldDecl::Create(), CreateRecordDecl(), CreateRuntimeVariable(), clang::IdentifierTable::get(), clang::CodeGen::CGObjCRuntime::GetClassGlobal(), GetConstantStringEntry(), getContext(), getLangOptions(), getModule(), clang::TargetInfo::getNSStringNonFragileABISection(), clang::TargetInfo::getNSStringSection(), getObjCRuntime(), clang::ASTContext::getPointerType(), clang::CharUnits::getQuantity(), clang::ASTContext::getTagDeclType(), clang::ASTContext::getTargetInfo(), clang::ASTContext::getTranslationUnitDecl(), clang::ASTContext::getTypeAlignInChars(), getTypes(), clang::ASTContext::Idents, clang::CodeGen::CodeGenTypeCache::Int32Ty, clang::CodeGen::CodeGenTypeCache::IntTy, clang::ASTContext::IntTy, clang::Decl::setAccess(), clang::TagDecl::startDefinition(), clang::TTK_Struct, clang::ASTContext::UnsignedIntTy, and clang::CanQual< T >::withConst().
Referenced by GetAddrOfConstantCString(), and GetAddrOfConstantStringFromLiteral().
| 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.
| GlobalName | If 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 | ) |
GetAddrOfConstantStringFromLiteral - Return a pointer to a constant array for the given string literal.
Definition at line 2102 of file CodeGenModule.cpp.
References GetAddrOfConstantString(), clang::ASTContext::getAsConstantArrayType(), GetConstantArrayFromStringLiteral(), getContext(), getModule(), clang::CharUnits::getQuantity(), clang::StringLiteral::getString(), clang::Expr::getType(), clang::ASTContext::getTypeAlignInChars(), clang::StringLiteral::isAscii(), and clang::StringLiteral::isUTF8().
Referenced by clang::CodeGen::CodeGenFunction::EmitStringLiteralLValue().
| 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 |
||
| ) |
GetAddrOfCXXConstructor - Return the address of the constructor of the given type.
Definition at line 212 of file CGCXX.cpp.
References clang::CodeGen::CodeGenTypes::getFunctionInfo(), clang::CodeGen::CodeGenTypes::GetFunctionType(), getMangledName(), clang::ValueDecl::getType(), getTypes(), and clang::FunctionType::isVariadic().
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitDelegateCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), and GetAddrOfGlobal().
| llvm::GlobalValue * CodeGenModule::GetAddrOfCXXDestructor | ( | const CXXDestructorDecl * | dtor, |
| CXXDtorType | dtorType, | ||
| const CGFunctionInfo * | fnInfo = 0 |
||
| ) |
GetAddrOfCXXDestructor - Return the address of the constructor of the given type.
Definition at line 276 of file CGCXX.cpp.
References clang::CodeGen::CodeGenTypes::getFunctionInfo(), clang::CodeGen::CodeGenTypes::GetFunctionType(), getMangledName(), and getTypes().
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXDestructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXThrowExpr(), EmitDeclDestroy(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), and GetAddrOfGlobal().
| 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] |
Definition at line 476 of file CodeGenModule.h.
References GetAddrOfCXXConstructor(), GetAddrOfCXXDestructor(), GetAddrOfFunction(), GetAddrOfGlobalVar(), clang::GlobalDecl::getCtorType(), clang::GlobalDecl::getDecl(), and clang::GlobalDecl::getDtorType().
| llvm::Constant * CodeGenModule::GetAddrOfGlobalBlock | ( | const BlockExpr * | BE, |
| const char * | name | ||
| ) |
GetAddrOfGlobalBlock - Gets the address of a block which requires no captures.
Definition at line 910 of file CGBlocks.cpp.
References clang::CodeGen::CGBlockInfo::BlockExpression, buildGlobalBlock(), computeBlockInfo(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::BlockExpr::getBlockDecl(), and clang::CodeGen::CodeGenTypeCache::VoidPtrTy.
| 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 |
||
| ) |
GetAddrOfRTTIDescriptor - Get the address of the RTTI descriptor for the given type.
Definition at line 980 of file CGRTTI.cpp.
References getContext(), clang::CodeGen::CGObjCRuntime::GetEHType(), getLangOptions(), and clang::CodeGen::CodeGenTypeCache::Int8PtrTy.
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXThrowExpr(), clang::CodeGen::CodeGenFunction::EmitCXXTypeidExpr(), EmitDynamicCastCall(), clang::CodeGen::CodeGenFunction::EmitStartEHSpec(), and clang::CodeGen::CodeGenFunction::EnterCXXTryStmt().
| llvm::Constant * CodeGenModule::GetAddrOfThunk | ( | GlobalDecl | GD, |
| const ThunkInfo & | Thunk | ||
| ) |
GetAddrOfThunk - Get the address of the thunk for the given global decl.
Definition at line 61 of file CGVTables.cpp.
References getCXXABI(), clang::GlobalDecl::getDecl(), clang::GlobalDecl::getDtorType(), clang::CodeGen::CodeGenTypes::GetFunctionTypeForVTable(), clang::CodeGen::CGCXXABI::getMangleContext(), getTypes(), clang::MangleContext::mangleCXXDtorThunk(), clang::MangleContext::mangleThunk(), and clang::ThunkInfo::This.
| ARCEntrypoints& clang::CodeGen::CodeGenModule::getARCEntrypoints | ( | ) | const [inline] |
Definition at line 388 of file CodeGenModule.h.
References getLangOptions().
Referenced by clang::CodeGen::CodeGenFunction::EmitARCAutorelease(), clang::CodeGen::CodeGenFunction::EmitARCAutoreleaseReturnValue(), clang::CodeGen::CodeGenFunction::EmitARCCopyWeak(), clang::CodeGen::CodeGenFunction::EmitARCDestroyWeak(), clang::CodeGen::CodeGenFunction::EmitARCInitWeak(), clang::CodeGen::CodeGenFunction::EmitARCLoadWeak(), clang::CodeGen::CodeGenFunction::EmitARCLoadWeakRetained(), clang::CodeGen::CodeGenFunction::EmitARCMoveWeak(), clang::CodeGen::CodeGenFunction::EmitARCRelease(), clang::CodeGen::CodeGenFunction::EmitARCRetainAutoreleasedReturnValue(), clang::CodeGen::CodeGenFunction::EmitARCRetainAutoreleaseNonBlock(), clang::CodeGen::CodeGenFunction::EmitARCRetainAutoreleaseReturnValue(), clang::CodeGen::CodeGenFunction::EmitARCRetainBlock(), clang::CodeGen::CodeGenFunction::EmitARCRetainNonBlock(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrongCall(), clang::CodeGen::CodeGenFunction::EmitARCStoreWeak(), tryEmitFusedAutoreleaseOfResult(), and tryRemoveRetainOfSelf().
| llvm::Constant* clang::CodeGen::CodeGenModule::getAtomicGetterHelperFnMap | ( | QualType | Ty | ) | [inline] |
Definition at line 414 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction().
| llvm::Constant* clang::CodeGen::CodeGenModule::getAtomicSetterHelperFnMap | ( | QualType | Ty | ) | [inline] |
Definition at line 406 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction().
| 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 | ||
| ) |
Definition at line 346 of file CodeGenModule.cpp.
References clang::MangleBuffer::getBuffer(), clang::GlobalDecl::getCtorType(), getCXXABI(), clang::GlobalDecl::getDecl(), clang::GlobalDecl::getDtorType(), clang::CodeGen::CGCXXABI::getMangleContext(), clang::MangleContext::mangleBlock(), clang::MangleContext::mangleCtorBlock(), clang::MangleContext::mangleDtorBlock(), and clang::MangleContext::mangleGlobalBlock().
Referenced by GetStaticDeclName().
| llvm::Constant * CodeGenModule::getBlockObjectAssign | ( | ) |
Definition at line 1985 of file CGBlocks.cpp.
References configureBlocksRuntimeObject(), CreateRuntimeFunction(), clang::CodeGen::CodeGenTypeCache::Int32Ty, clang::CodeGen::CodeGenTypeCache::Int8PtrTy, and clang::CodeGen::CodeGenTypeCache::VoidTy.
| llvm::Constant * CodeGenModule::getBlockObjectDispose | ( | ) |
Definition at line 1973 of file CGBlocks.cpp.
References configureBlocksRuntimeObject(), CreateRuntimeFunction(), clang::CodeGen::CodeGenTypeCache::Int32Ty, clang::CodeGen::CodeGenTypeCache::Int8PtrTy, and clang::CodeGen::CodeGenTypeCache::VoidTy.
| 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] |
Definition at line 425 of file CodeGenModule.h.
Referenced by createARCRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitARCInitWeak(), clang::CodeGen::CodeGenFunction::EmitARCRetainAutoreleasedReturnValue(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXGlobalDtorRegistration(), clang::CodeGen::CodeGenFunction::EmitCXXGuardedInit(), clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(), EmitGlobalDeclMetadata(), clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolStmt(), clang::CodeGen::CodeGenFunction::FinishFunction(), clang::CodeGen::CodeGenFunction::GenerateCode(), clang::CodeGen::CodeGenFunction::getARCCleanupKind(), getTerminateFn(), clang::CodeGen::CodeGenFunction::getTrapBB(), clang::CodeGen::CodeGenFunction::needsEHCleanup(), Release(), setThunkVisibility(), clang::CodeGen::CodeGenVTables::ShouldEmitVTableInThisTU(), clang::CodeGen::CodeGenFunction::ShouldInstrumentFunction(), clang::CodeGen::CodeGenFunction::shouldUseFusedARCCalls(), and clang::CodeGen::CodeGenFunction::StartFunction().
| llvm::Constant * CodeGenModule::GetConstantArrayFromStringLiteral | ( | const StringLiteral * | E | ) |
GetConstantArrayFromStringLiteral - Return a constant array for the given string.
Definition at line 2059 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenTypes::ConvertType(), clang::ASTContext::getAsConstantArrayType(), clang::StringLiteral::getCharByteWidth(), clang::StringLiteral::getCodeUnit(), clang::StringLiteral::getLength(), clang::StringLiteral::getString(), clang::Expr::getType(), and getTypes().
Referenced by GetAddrOfConstantStringFromLiteral().
| 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] |
getCXXABI() - Return a reference to the configured C++ ABI.
Definition at line 386 of file CodeGenModule.h.
Referenced by CalculateCookiePadding(), clang::CodeGen::CodeGenFunction::CodeGenFunction(), CreateReferenceTemporary(), EmitArrayDelete(), EmitConstantValue(), clang::CodeGen::CodeGenFunction::EmitCXXGuardedInit(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), EmitNullConstant(), clang::CodeGen::CodeGenFunction::EmitPointerToDataMemberBinaryExpr(), clang::CodeGen::CodeGenFunction::EvaluateExprAsBool(), clang::CodeGen::CodeGenFunction::GenerateCode(), clang::CodeGen::CodeGenVTables::GenerateConstructionVTable(), clang::CodeGen::CodeGenFunction::GenerateThunk(), GetAddrOfThunk(), clang::CodeGen::CodeGenVTables::GetAddrOfVTable(), clang::CodeGen::CodeGenVTables::GetAddrOfVTT(), getBlockMangledName(), getMangledName(), getMemberPointerConstant(), maybeUpdateRTTILinkage(), and clang::CodeGen::CodeGenFunction::StartFunction().
| 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 | ) |
Definition at line 408 of file CodeGenModule.cpp.
References clang::ExternalLinkage, getContext(), clang::ASTContext::GetGVALinkageForFunction(), clang::ASTContext::getLangOptions(), clang::GVA_C99Inline, clang::GVA_CXXInline, clang::GVA_ExplicitTemplateInstantiation, clang::GVA_Internal, clang::GVA_StrongExternal, clang::GVA_TemplateInstantiation, clang::Decl::hasAttr(), and clang::InternalLinkage.
Referenced by setFunctionLinkage().
| 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*>() |
||
| ) |
Definition at line 1746 of file CodeGenModule.cpp.
References getModule().
Referenced by clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), emitCatchDispatchBlock(), clang::CodeGen::CodeGenFunction::EmitCheck(), EmitCXXNewAllocSize(), clang::CodeGen::CodeGenFunction::EmitFieldAnnotations(), clang::CodeGen::CodeGenFunction::EmitFunctionInstrumentation(), clang::CodeGen::CodeGenFunction::EmitVarAnnotations(), and clang::CodeGen::CodeGenFunction::getTrapBB().
| 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] |
Definition at line 434 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::BuildByRefType(), computeBlockInfo(), EmitAnnotationString(), EmitGlobalDeclMetadata(), GenerateStringLiteral(), and clang::CodeGen::CodeGenFunction::getLLVMContext().
| llvm::GlobalValue::LinkageTypes CodeGenModule::GetLLVMLinkageVarDefinition | ( | const VarDecl * | D, |
| llvm::GlobalVariable * | GV | ||
| ) |
GetLLVMLinkageVarDefinition - Returns LLVM linkage for a global variable.
Definition at line 1476 of file CodeGenModule.cpp.
References clang::ExternalLinkage, clang::Decl::getAttr(), getContext(), clang::ASTContext::GetGVALinkageForVariable(), clang::VarDecl::getInit(), getLangOptions(), clang::GVA_ExplicitTemplateInstantiation, clang::GVA_Internal, clang::GVA_TemplateInstantiation, clang::Decl::hasAttr(), clang::VarDecl::hasExternalStorage(), clang::InternalLinkage, clang::VarDecl::isThreadSpecified(), and clang::CodeGenOptions::NoCommon.
| static llvm::GlobalValue::VisibilityTypes clang::CodeGen::CodeGenModule::GetLLVMVisibility | ( | Visibility | V | ) | [inline, static] |
Definition at line 467 of file CodeGenModule.h.
References clang::DefaultVisibility, clang::HiddenVisibility, and clang::ProtectedVisibility.
Referenced by setGlobalVisibility().
| StringRef CodeGenModule::getMangledName | ( | GlobalDecl | GD | ) |
Definition at line 309 of file CodeGenModule.cpp.
References clang::GlobalDecl::getCanonicalDecl(), clang::GlobalDecl::getCtorType(), getCXXABI(), clang::GlobalDecl::getDecl(), clang::GlobalDecl::getDtorType(), clang::NamedDecl::getIdentifier(), clang::CodeGen::CGCXXABI::getMangleContext(), clang::IdentifierInfo::getName(), clang::MangleContext::mangleBlock(), clang::MangleContext::mangleCXXCtor(), clang::MangleContext::mangleCXXDtor(), clang::MangleContext::mangleName(), and clang::MangleContext::shouldMangleDeclName().
Referenced by clang::CodeGen::CodeGenFunction::CreateStaticVarDecl(), clang::CodeGen::CGDebugInfo::EmitFunctionStart(), EmitTentativeDefinition(), GetAddrOfCXXConstructor(), GetAddrOfCXXDestructor(), GetAddrOfFunction(), GetAddrOfGlobalVar(), and GetStaticDeclName().
| llvm::Constant * CodeGenModule::getMemberPointerConstant | ( | const UnaryOperator * | e | ) |
Definition at line 1159 of file CGExprConstant.cpp.
References clang::CodeGen::CGCXXABI::EmitMemberDataPointer(), clang::CodeGen::CGCXXABI::EmitMemberPointer(), getContext(), getCXXABI(), clang::ASTContext::getFieldOffset(), clang::UnaryOperator::getSubExpr(), clang::Expr::getType(), and clang::ASTContext::toCharUnitsFromBits().
| llvm::Module& clang::CodeGen::CodeGenModule::getModule | ( | ) | const [inline] |
Definition at line 427 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::AddInitializerToStaticVarDecl(), buildBlockDescriptor(), buildGlobalBlock(), CreateGlobalInitOrDestructFunction(), CreateOrReplaceCXXRuntimeVariable(), CreateReferenceTemporary(), clang::CodeGen::CodeGenFunction::CreateStaticVarDecl(), EmitAnnotationString(), clang::CodeGen::CodeGenFunction::EmitARCRetainAutoreleasedReturnValue(), clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), EmitGlobalAnnotations(), EmitGlobalDeclMetadata(), EmitNullBaseClassInitialization(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), EmitTopLevelDecl(), generateByrefCopyHelper(), generateByrefDisposeHelper(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), GenerateStringLiteral(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), GetAddrOfConstantCFString(), GetAddrOfConstantString(), GetAddrOfConstantStringFromLiteral(), getIntrinsic(), maybeUpdateRTTILinkage(), and clang::CodeGen::CodeGenFunction::StartFunction().
| CGDebugInfo* clang::CodeGen::CodeGenModule::getModuleDebugInfo | ( | ) | [inline] |
Definition at line 422 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::GenerateCode(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(), and clang::CodeGen::CodeGenFunction::StartObjCMethod().
| 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 | ( | ) |
Definition at line 1997 of file CGBlocks.cpp.
References configureBlocksRuntimeObject(), and clang::CodeGen::CodeGenTypeCache::Int8PtrTy.
Referenced by buildGlobalBlock().
| llvm::Constant * CodeGenModule::getNSConcreteStackBlock | ( | ) |
Definition at line 2007 of file CGBlocks.cpp.
References configureBlocksRuntimeObject(), and clang::CodeGen::CodeGenTypeCache::Int8PtrTy.
| QualType CodeGenModule::getObjCFastEnumerationStateType | ( | ) |
Retrieve the record type that describes the state of an Objective-C fast enumeration loop (for..in).
Definition at line 2023 of file CodeGenModule.cpp.
References clang::DeclContext::addDecl(), clang::AS_public, clang::RecordDecl::completeDefinition(), clang::FieldDecl::Create(), CreateRecordDecl(), clang::IdentifierTable::get(), clang::ASTContext::getConstantArrayType(), clang::ASTContext::getObjCIdType(), clang::ASTContext::getPointerType(), clang::ASTContext::getTagDeclType(), clang::ASTContext::getTranslationUnitDecl(), clang::ASTContext::Idents, clang::QualType::isNull(), clang::ArrayType::Normal, clang::Decl::setAccess(), clang::TagDecl::startDefinition(), clang::TTK_Struct, and clang::ASTContext::UnsignedLongTy.
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt().
| CGObjCRuntime& clang::CodeGen::CodeGenModule::getObjCRuntime | ( | ) | [inline] |
getObjCRuntime() - Return a reference to the configured Objective-C runtime.
Definition at line 364 of file CodeGenModule.h.
Referenced by buildBlockDescriptor(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitIvarOffset(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForIvar(), clang::CodeGen::CodeGenFunction::EmitObjCAtSynchronizedStmt(), clang::CodeGen::CodeGenFunction::EmitObjCAtThrowStmt(), clang::CodeGen::CodeGenFunction::EmitObjCAtTryStmt(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPop(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPush(), clang::CodeGen::CodeGenFunction::EmitObjCProtocolExpr(), clang::CodeGen::CodeGenFunction::EmitObjCSelectorExpr(), clang::CodeGen::CodeGenFunction::EmitObjCSelectorLValue(), clang::CodeGen::CodeGenFunction::EmitObjCStringLiteral(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitStructGetterCall(), emitStructSetterCall(), clang::CodeGen::CodeGenFunction::EnterCXXTryStmt(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), GetAddrOfConstantString(), and clang::CodeGen::CodeGenFunction::StartObjCMethod().
| 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] |
Definition at line 393 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolPop(), and clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolPush().
| llvm::ConstantInt * CodeGenModule::getSize | ( | CharUnits | numChars | ) |
getSize - Emit the given number of characters as a value of type size_t.
Definition at line 224 of file CodeGenModule.cpp.
References clang::CharUnits::getQuantity(), and clang::CodeGen::CodeGenTypeCache::SizeTy.
Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), EmitNullBaseClassInitialization(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), emitPointerArithmetic(), emitStructGetterCall(), and emitStructSetterCall().
| 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 | ( | ) |
Definition at line 3513 of file CodeGen/TargetInfo.cpp.
References clang::CodeGenOptions::FloatABI, getContext(), clang::ASTContext::getTargetInfo(), and clang::TargetInfo::getTriple().
Referenced by clang::CodeGen::CodeGenFunction::EmitARCRetainAutoreleasedReturnValue(), and InitCatchParam().
| const llvm::TargetData& clang::CodeGen::CodeGenModule::getTargetData | ( | ) | const [inline] |
Definition at line 432 of file CodeGenModule.h.
Referenced by CreateCoercedLoad(), CreateCoercedStore(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), EnterStructPointerForCoercedAccess(), and GetAddrOfConstantCFString().
| 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 | ) |
Definition at line 179 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenTBAA::getTBAAInfo().
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::MakeAddrLValue(), and clang::CodeGen::CodeGenFunction::MakeNaturalAlignAddrLValue().
| 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] |
Definition at line 430 of file CodeGenModule.h.
References clang::CodeGen::CodeGenVTables::getVTableContext().
Referenced by clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualCall(), clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualDestructorCall(), clang::CodeGen::CodeGenFunction::BuildVirtualCall(), clang::CodeGen::CodeGenFunction::GetVirtualBaseClassOffset(), and clang::CodeGen::CodeGenFunction::InitializeVTablePointer().
| llvm::GlobalVariable::LinkageTypes CodeGenModule::getVTableLinkage | ( | const CXXRecordDecl * | RD | ) |
getVTableLinkage - Return the appropriate linkage for the vtable, VTT, and type information of the given class.
Definition at line 1286 of file CodeGenModule.cpp.
References clang::ExternalLinkage, clang::Decl::getASTContext(), clang::ASTContext::getKeyFunction(), clang::ASTContext::getLangOptions(), clang::NamedDecl::getLinkage(), clang::CXXRecordDecl::getTemplateSpecializationKind(), clang::InternalLinkage, clang::CodeGenOptions::OptimizationLevel, clang::TSK_ExplicitInstantiationDeclaration, clang::TSK_ExplicitInstantiationDefinition, clang::TSK_ExplicitSpecialization, clang::TSK_ImplicitInstantiation, and clang::TSK_Undeclared.
Referenced by EmitVTable(), and getTypeInfoLinkage().
| CodeGenVTables& clang::CodeGen::CodeGenModule::getVTables | ( | ) | [inline] |
Definition at line 429 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualCall(), clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualDestructorCall(), EmitVTable(), GetVTTParameter(), clang::CodeGen::CodeGenFunction::InitializeVTablePointer(), clang::CodeGen::CodeGenFunction::InitializeVTablePointers(), and ShouldUseExternalRTTIDescriptor().
| 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 |
Definition at line 190 of file CodeGenModule.cpp.
References getContext(), clang::ASTContext::getTargetInfo(), and clang::TargetInfo::getTriple().
| void CodeGenModule::Release | ( | ) |
Release - Finalize LLVM code generation.
Definition at line 148 of file CodeGenModule.cpp.
References EmitGlobalAnnotations(), clang::CodeGen::CGDebugInfo::finalize(), getCodeGenOpts(), and clang::CodeGen::CGObjCRuntime::ModuleInitFunction().
| 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] |
Definition at line 417 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction().
| void clang::CodeGen::CodeGenModule::setAtomicSetterHelperFnMap | ( | QualType | Ty, |
| llvm::Constant * | Fn | ||
| ) | [inline] |
Definition at line 409 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction().
| 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 |
setGlobalVisibility - Set the visibility for the given LLVM GlobalValue.
Definition at line 228 of file CodeGenModule.cpp.
References clang::DefaultVisibility, clang::NamedDecl::getLinkageAndVisibility(), GetLLVMVisibility(), clang::NamedDecl::LinkageInfo::setVisibility(), clang::NamedDecl::LinkageInfo::visibility(), and clang::NamedDecl::LinkageInfo::visibilityExplicit().
Referenced by setThunkVisibility(), and setTypeVisibility().
| 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 |
setTypeVisibility - Set the visibility for the given global value which holds information about a type.
Set the symbol visibility of type information (vtable and RTTI) associated with the given type.
Definition at line 244 of file CodeGenModule.cpp.
References clang::DefaultVisibility, clang::NamedDecl::getExplicitVisibility(), clang::ASTContext::getKeyFunction(), clang::CXXRecordDecl::getTemplateSpecializationKind(), clang::HiddenVisibility, clang::CodeGenOptions::HiddenWeakTemplateVTables, clang::CodeGenOptions::HiddenWeakVTables, setGlobalVisibility(), clang::TSK_ExplicitInstantiationDeclaration, clang::TSK_ExplicitInstantiationDefinition, clang::TSK_ExplicitSpecialization, clang::TSK_ImplicitInstantiation, clang::TSK_Undeclared, TVK_ForRTTI, and TVK_ForRTTIName.
Referenced by clang::CodeGen::CodeGenVTables::EmitVTableDefinition(), clang::CodeGen::CodeGenVTables::EmitVTTDefinition(), and clang::CodeGen::CodeGenVTables::GenerateConstructionVTable().
| bool clang::CodeGen::CodeGenModule::shouldUseTBAA | ( | ) | const [inline] |
Definition at line 438 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField().
| void CodeGenModule::UpdateCompletedType | ( | const TagDecl * | TD | ) |
Definition at line 172 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenTypes::UpdateCompletedType(), and clang::CodeGen::CGDebugInfo::UpdateCompletedType().
friend class CodeGenVTables [friend] |
Definition at line 229 of file CodeGenModule.h.
| llvm::FoldingSet<ByrefHelpers> clang::CodeGen::CodeGenModule::ByrefHelpersCache |
Definition at line 557 of file CodeGenModule.h.
Referenced by buildByrefHelpers().
| std::vector<const CXXRecordDecl*> clang::CodeGen::CodeGenModule::DeferredVTables |
Definition at line 801 of file CodeGenModule.h.
Referenced by clang::CodeGen::CodeGenVTables::GetAddrOfVTable().
Definition at line 348 of file CodeGenModule.h.