Lines Matching defs:CodeGenModule
1 //===--- CodeGenModule.cpp - Emit LLVM Code from ASTs for a Module --------===//
13 #include "CodeGenModule.h"
89 static CGCXXABI *createCXXABI(CodeGenModule &CGM) {
110 createTargetCodeGenInfo(CodeGenModule &CGM) {
327 const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
333 CodeGenModule::CodeGenModule(ASTContext &C,
455 CodeGenModule::~CodeGenModule() {}
457 void CodeGenModule::createObjCRuntime() {
477 void CodeGenModule::createOpenCLRuntime() {
481 void CodeGenModule::createOpenMPRuntime() {
501 void CodeGenModule::createCUDARuntime() {
505 void CodeGenModule::createHLSLRuntime() {
509 void CodeGenModule::addReplacement(StringRef Name, llvm::Constant *C) {
513 void CodeGenModule::applyReplacements() {
544 void CodeGenModule::addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C) {
548 void CodeGenModule::applyGlobalValReplacements() {
659 void CodeGenModule::checkAliases() {
743 void CodeGenModule::clear() {
845 void CodeGenModule::Release() {
1424 void CodeGenModule::EmitOpenCLMetadata() {
1448 void CodeGenModule::EmitBackendOptionsMetadata(
1456 void CodeGenModule::UpdateCompletedType(const TagDecl *TD) {
1461 void CodeGenModule::RefreshTypeCacheForClass(const CXXRecordDecl *RD) {
1466 llvm::MDNode *CodeGenModule::getTBAATypeInfo(QualType QTy) {
1472 TBAAAccessInfo CodeGenModule::getTBAAAccessInfo(QualType AccessType) {
1492 CodeGenModule::getTBAAVTablePtrAccessInfo(llvm::Type *VTablePtrType) {
1498 llvm::MDNode *CodeGenModule::getTBAAStructInfo(QualType QTy) {
1504 llvm::MDNode *CodeGenModule::getTBAABaseTypeInfo(QualType QTy) {
1510 llvm::MDNode *CodeGenModule::getTBAAAccessTagInfo(TBAAAccessInfo Info) {
1516 TBAAAccessInfo CodeGenModule::mergeTBAAInfoForCast(TBAAAccessInfo SourceInfo,
1524 CodeGenModule::mergeTBAAInfoForConditionalOperator(TBAAAccessInfo InfoA,
1532 CodeGenModule::mergeTBAAInfoForMemoryTransfer(TBAAAccessInfo DestInfo,
1539 void CodeGenModule::DecorateInstructionWithTBAA(llvm::Instruction *Inst,
1545 void CodeGenModule::DecorateInstructionWithInvariantGroup(
1551 void CodeGenModule::Error(SourceLocation loc, StringRef message) {
1558 void CodeGenModule::ErrorUnsupported(const Stmt *S, const char *Type) {
1568 void CodeGenModule::ErrorUnsupported(const Decl *D, const char *Type) {
1575 llvm::ConstantInt *CodeGenModule::getSize(CharUnits size) {
1579 void CodeGenModule::setGlobalVisibility(llvm::GlobalValue *GV,
1626 static bool shouldAssumeDSOLocal(const CodeGenModule &CGM,
1728 void CodeGenModule::setDSOLocal(llvm::GlobalValue *GV) const {
1732 void CodeGenModule::setDLLImportDLLExport(llvm::GlobalValue *GV,
1743 void CodeGenModule::setDLLImportDLLExport(llvm::GlobalValue *GV,
1755 void CodeGenModule::setGVProperties(llvm::GlobalValue *GV,
1761 void CodeGenModule::setGVProperties(llvm::GlobalValue *GV,
1767 void CodeGenModule::setGVPropertiesAux(llvm::GlobalValue *GV,
1783 CodeGenModule::GetDefaultLLVMTLSModel() const {
1797 void CodeGenModule::setTLSMode(llvm::GlobalValue *GV, const VarDecl &D) const {
1811 static std::string getCPUSpecificMangling(const CodeGenModule &CGM,
1817 static void AppendCPUSpecificCPUDispatchMangling(const CodeGenModule &CGM,
1832 CodeGenModule &CGM) {
1838 static std::string getMangledNameImpl(CodeGenModule &CGM, GlobalDecl GD,
1930 void CodeGenModule::UpdateMultiVersionNames(GlobalDecl GD,
1975 StringRef CodeGenModule::getMangledName(GlobalDecl GD) {
2027 StringRef CodeGenModule::getBlockMangledName(GlobalDecl GD,
2048 const GlobalDecl CodeGenModule::getMangledNameDecl(StringRef Name) {
2058 llvm::GlobalValue *CodeGenModule::GetGlobalValue(StringRef Name) {
2064 void CodeGenModule::AddGlobalCtor(llvm::Function *Ctor, int Priority,
2073 void CodeGenModule::AddGlobalDtor(llvm::Function *Dtor, int Priority,
2085 void CodeGenModule::EmitCtorList(CtorList &Fns, const char *GlobalName) {
2124 CodeGenModule::getFunctionLinkage(GlobalDecl GD) {
2135 llvm::ConstantInt *CodeGenModule::CreateCrossDsoCfiTypeId(llvm::Metadata *MD) {
2142 llvm::ConstantInt *CodeGenModule::CreateKCFITypeId(QualType T) {
2160 void CodeGenModule::SetLLVMFunctionAttributes(GlobalDecl GD,
2224 void CodeGenModule::GenKernelArgMetadata(llvm::Function *Fn,
2389 static bool requiresMemberFunctionPointerTypeMetadata(CodeGenModule &CGM,
2403 CodeGenModule::getMostBaseClasses(const CXXRecordDecl *RD) {
2417 void CodeGenModule::SetLLVMFunctionAttributesForDefinition(const Decl *D,
2598 void CodeGenModule::SetCommonAttributes(GlobalDecl GD, llvm::GlobalValue *GV) {
2618 bool CodeGenModule::GetCPUAndFeaturesAttributes(GlobalDecl GD,
2691 void CodeGenModule::setNonAliasAttributes(GlobalDecl GD,
2740 void CodeGenModule::SetInternalFunctionAttributes(GlobalDecl GD,
2763 void CodeGenModule::CreateFunctionTypeMetadataForIcall(const FunctionDecl *FD,
2784 void CodeGenModule::setKCFIType(const FunctionDecl *FD, llvm::Function *F) {
2801 void CodeGenModule::finalizeKCFITypes() {
2832 void CodeGenModule::SetFunctionAttributes(GlobalDecl GD, llvm::Function *F,
2941 void CodeGenModule::addUsedGlobal(llvm::GlobalValue *GV) {
2947 void CodeGenModule::addCompilerUsedGlobal(llvm::GlobalValue *GV) {
2953 void CodeGenModule::addUsedOrCompilerUsedGlobal(llvm::GlobalValue *GV) {
2962 static void emitUsed(CodeGenModule &CGM, StringRef Name,
2988 void CodeGenModule::emitLLVMUsed() {
2993 void CodeGenModule::AppendLinkerOptions(StringRef Opts) {
2998 void CodeGenModule::AddDetectMismatch(StringRef Name, StringRef Value) {
3007 void CodeGenModule::AddDependentLib(StringRef Lib) {
3023 static void addLinkOptionsPostorder(CodeGenModule &CGM, Module *Mod,
3074 void CodeGenModule::EmitModuleInitializers(clang::Module *Primary) {
3107 void CodeGenModule::EmitModuleLinkOptions() {
3170 void CodeGenModule::EmitDeferred() {
3247 void CodeGenModule::EmitVTablesOpportunistically() {
3265 void CodeGenModule::EmitGlobalAnnotations() {
3285 llvm::Constant *CodeGenModule::EmitAnnotationString(StringRef Str) {
3302 llvm::Constant *CodeGenModule::EmitAnnotationUnit(SourceLocation Loc) {
3310 llvm::Constant *CodeGenModule::EmitAnnotationLineNo(SourceLocation L) {
3318 llvm::Constant *CodeGenModule::EmitAnnotationArgs(const AnnotateAttr *Attr) {
3350 llvm::Constant *CodeGenModule::EmitAnnotateAttr(llvm::GlobalValue *GV,
3375 void CodeGenModule::AddGlobalAnnotations(const ValueDecl *D,
3383 bool CodeGenModule::isInNoSanitizeList(SanitizerMask Kind, llvm::Function *Fn,
3403 bool CodeGenModule::isInNoSanitizeList(SanitizerMask Kind,
3435 bool CodeGenModule::imbueXRayAttrs(llvm::Function *Fn, SourceLocation Loc,
3462 CodeGenModule::isFunctionBlockedByProfileList(llvm::Function *Fn,
3486 CodeGenModule::isFunctionBlockedFromProfileInstr(llvm::Function *Fn,
3501 bool CodeGenModule::MustBeEmitted(const ValueDecl *Global) {
3518 bool CodeGenModule::MayBeEmittedEagerly(const ValueDecl *Global) {
3566 ConstantAddress CodeGenModule::GetAddrOfMSGuidDecl(const MSGuidDecl *GD) {
3617 ConstantAddress CodeGenModule::GetAddrOfUnnamedGlobalConstantDecl(
3648 ConstantAddress CodeGenModule::GetAddrOfTemplateParamObject(
3679 ConstantAddress CodeGenModule::GetWeakRefReference(const ValueDecl *VD) {
3715 bool CodeGenModule::shouldEmitCUDAGlobalVar(const VarDecl *Global) const {
3728 void CodeGenModule::EmitGlobal(GlobalDecl GD) {
4006 CodeGenModule::isTriviallyRecursive(const FunctionDecl *FD) {
4023 bool CodeGenModule::shouldEmitFunction(GlobalDecl GD) {
4086 bool CodeGenModule::shouldOpportunisticallyEmitVTables() {
4090 void CodeGenModule::EmitMultiVersionFunctionDefinition(GlobalDecl GD,
4115 void CodeGenModule::EmitGlobalDefinition(GlobalDecl GD, llvm::GlobalValue *GV) {
4190 llvm::GlobalValue::LinkageTypes getMultiversionLinkage(CodeGenModule &CGM,
4198 void CodeGenModule::emitMultiVersionFunctions() {
4331 void CodeGenModule::emitCPUDispatchDefinition(GlobalDecl GD) {
4453 void CodeGenModule::AddDeferredMultiVersionResolverToEmit(GlobalDecl GD) {
4469 llvm::Constant *CodeGenModule::GetOrCreateMultiVersionResolver(GlobalDecl GD) {
4545 bool CodeGenModule::shouldDropDLLAttribute(const Decl *D,
4565 llvm::Constant *CodeGenModule::GetOrCreateLLVMFunction(
4766 CodeGenModule::GetAddrOfFunction(GlobalDecl GD, llvm::Type *Ty, bool ForVTable,
4801 llvm::Constant *CodeGenModule::GetFunctionStart(const ValueDecl *Decl) {
4849 CodeGenModule::CreateRuntimeFunction(llvm::FunctionType *FTy, StringRef Name,
4880 // FIXME: We should use CodeGenModule::SetLLVMFunctionAttributes() instead
4902 CodeGenModule::GetOrCreateLLVMGlobal(StringRef MangledName, llvm::Type *Ty,
5100 CodeGenModule::GetAddrOfGlobal(GlobalDecl GD, ForDefinition_t IsForDefinition) {
5125 llvm::GlobalVariable *CodeGenModule::CreateOrReplaceCXXRuntimeVariable(
5172 llvm::Constant *CodeGenModule::GetAddrOfGlobalVar(const VarDecl *D,
5188 CodeGenModule::CreateRuntimeVariable(llvm::Type *Ty,
5197 void CodeGenModule::EmitTentativeDefinition(const VarDecl *D) {
5220 void CodeGenModule::EmitExternalDeclaration(const DeclaratorDecl *D) {
5227 CharUnits CodeGenModule::GetTargetTypeStoreSize(llvm::Type *Ty) const {
5232 LangAS CodeGenModule::GetGlobalVarAddressSpace(const VarDecl *D) {
5270 LangAS CodeGenModule::GetGlobalConstantAddressSpace() const {
5298 castStringLiteralToDefaultAddressSpace(CodeGenModule &CGM,
5314 void CodeGenModule::MaybeHandleStaticInExternC(const SomeDecl *D,
5346 static bool shouldBeInCOMDAT(CodeGenModule &CGM, const Decl &D) {
5371 bool CodeGenModule::supportsCOMDAT() const {
5375 void CodeGenModule::maybeSetTrivialComdat(const Decl &D,
5382 const ABIInfo &CodeGenModule::getABIInfo() {
5387 void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D,
5652 void CodeGenModule::EmitExternalVarDeclaration(const VarDecl *D) {
5664 void CodeGenModule::EmitExternalFunctionDeclaration(const FunctionDecl *FD) {
5677 CodeGenModule &CGM, const VarDecl *D,
5753 CodeGenModule::getLLVMLinkageForDeclarator(const DeclaratorDecl *D,
5825 CodeGenModule::getLLVMLinkageVarDefinition(const VarDecl *VD) {
5953 void CodeGenModule::HandleCXXStaticMemberVarInstantiation(VarDecl *VD) {
5968 void CodeGenModule::EmitGlobalFunctionDefinition(GlobalDecl GD,
6013 void CodeGenModule::EmitAliasDefinition(GlobalDecl GD) {
6100 void CodeGenModule::emitIFuncDefinition(GlobalDecl GD) {
6162 llvm::Function *CodeGenModule::getIntrinsic(unsigned IID,
6203 CodeGenModule::GetAddrOfConstantCFString(const StringLiteral *Literal) {
6388 bool CodeGenModule::getExpressionLocationsEnabled() const {
6392 QualType CodeGenModule::getObjCFastEnumerationStateType() {
6424 CodeGenModule::GetConstantArrayFromStringLiteral(const StringLiteral *E) {
6466 CodeGenModule &CGM, StringRef GlobalName,
6490 CodeGenModule::GetAddrOfConstantStringFromLiteral(const StringLiteral *S,
6543 CodeGenModule::GetAddrOfConstantStringFromObjCEncode(const ObjCEncodeExpr *E) {
6553 ConstantAddress CodeGenModule::GetAddrOfConstantCString(
6587 ConstantAddress CodeGenModule::GetAddrOfGlobalTemporary(
6720 void CodeGenModule::EmitObjCPropertyImplementations(const
6754 static bool AllTrivialInitializers(CodeGenModule &CGM,
6769 void CodeGenModule::EmitObjCIvarInitializations(ObjCImplementationDecl *D) {
6808 void CodeGenModule::EmitLinkageSpec(const LinkageSpecDecl *LSD) {
6818 void CodeGenModule::EmitTopLevelStmt(const TopLevelStmtDecl *D) {
6855 void CodeGenModule::EmitDeclContext(const DeclContext *DC) {
6872 void CodeGenModule::EmitTopLevelDecl(Decl *D) {
7174 void CodeGenModule::AddDeferredUnusedCoverageMapping(Decl *D) {
7201 void CodeGenModule::ClearUnusedCoverageMapping(const Decl *D) {
7212 void CodeGenModule::EmitDeferredUnusedCoverageMappings() {
7252 void CodeGenModule::EmitMainVoidAlias() {
7273 static void EmitGlobalDeclMetadata(CodeGenModule &CGM,
7288 bool CodeGenModule::CheckAndReplaceExternCIFuncs(llvm::GlobalValue *Elem,
7359 void CodeGenModule::EmitStaticExternCAliases() {
7368 // is suppressed. See CodeGenModule::MaybeHandleStaticInExternC.
7382 bool CodeGenModule::lookupRepresentativeDecl(StringRef MangledName,
7398 void CodeGenModule::EmitDeclMetadata() {
7437 void CodeGenModule::EmitVersionIdentMetadata() {
7447 void CodeGenModule::EmitCommandLineMetadata() {
7457 void CodeGenModule::EmitCoverageFile() {
7475 llvm::Constant *CodeGenModule::GetAddrOfRTTIDescriptor(QualType Ty,
7490 void CodeGenModule::EmitOMPThreadPrivateDecl(const OMPThreadPrivateDecl *D) {
7511 CodeGenModule::CreateMetadataIdentifierImpl(QualType T, MetadataTypeMap &Map,
7542 llvm::Metadata *CodeGenModule::CreateMetadataIdentifierForType(QualType T) {
7547 CodeGenModule::CreateMetadataIdentifierForVirtualMemPtrType(QualType T) {
7583 llvm::Metadata *CodeGenModule::CreateMetadataIdentifierGeneralized(QualType T) {
7589 bool CodeGenModule::NeedAllVtablesTypeId() const {
7602 void CodeGenModule::AddVTableTypeMetadata(llvm::GlobalVariable *VTable,
7620 llvm::SanitizerStatReport &CodeGenModule::getSanStats() {
7628 CodeGenModule::createOpenCLIntToSamplerConversion(const Expr *E,
7638 CharUnits CodeGenModule::getNaturalPointeeTypeAlignment(
7644 CharUnits CodeGenModule::getNaturalTypeAlignment(QualType T,
7710 bool CodeGenModule::stopAutoInit() {
7735 void CodeGenModule::printPostfixForExternalizedDecl(llvm::raw_ostream &OS,
7773 void CodeGenModule::moveLazyEmissionStates(CodeGenModule *NewBuilder) {