clang 20.0.0git
|
#include "CodeGenModule.h"
#include "ABIInfo.h"
#include "CGBlocks.h"
#include "CGCUDARuntime.h"
#include "CGCXXABI.h"
#include "CGCall.h"
#include "CGDebugInfo.h"
#include "CGHLSLRuntime.h"
#include "CGObjCRuntime.h"
#include "CGOpenCLRuntime.h"
#include "CGOpenMPRuntime.h"
#include "CGOpenMPRuntimeGPU.h"
#include "CodeGenFunction.h"
#include "CodeGenPGO.h"
#include "ConstantEmitter.h"
#include "CoverageMappingGen.h"
#include "TargetInfo.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTLambda.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Mangle.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/AST/StmtVisitor.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/CodeGenOptions.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/Module.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/Version.h"
#include "clang/CodeGen/BackendUtil.h"
#include "clang/CodeGen/ConstantInitBuilder.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/IR/AttributeMask.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/ProfileSummary.h"
#include "llvm/ProfileData/InstrProfReader.h"
#include "llvm/ProfileData/SampleProf.h"
#include "llvm/Support/CRC.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ConvertUTF.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/TimeProfiler.h"
#include "llvm/Support/xxhash.h"
#include "llvm/TargetParser/RISCVISAInfo.h"
#include "llvm/TargetParser/Triple.h"
#include "llvm/TargetParser/X86TargetParser.h"
#include "llvm/Transforms/Utils/BuildLibCalls.h"
#include <optional>
#include <set>
Go to the source code of this file.
Functions | |
static llvm::cl::opt< bool > | LimitedCoverage ("limited-coverage-experimental", llvm::cl::Hidden, llvm::cl::desc("Emit limited coverage mapping information (experimental)")) |
static CGCXXABI * | createCXXABI (CodeGenModule &CGM) |
static std::unique_ptr< TargetCodeGenInfo > | createTargetCodeGenInfo (CodeGenModule &CGM) |
static const llvm::GlobalValue * | getAliasedGlobal (const llvm::GlobalValue *GV) |
static bool | checkAliasedGlobal (const ASTContext &Context, DiagnosticsEngine &Diags, SourceLocation Location, bool IsIFunc, const llvm::GlobalValue *Alias, const llvm::GlobalValue *&GV, const llvm::MapVector< GlobalDecl, StringRef > &MangledDeclNames, SourceRange AliasRange) |
static void | checkAliasForTocData (llvm::GlobalVariable *GVar, const CodeGenOptions &CodeGenOpts, DiagnosticsEngine &Diags, SourceLocation Location) |
static std::optional< llvm::GlobalValue::VisibilityTypes > | getLLVMVisibility (clang::LangOptions::VisibilityFromDLLStorageClassKinds K) |
static void | setLLVMVisibility (llvm::GlobalValue &GV, std::optional< llvm::GlobalValue::VisibilityTypes > V) |
static void | setVisibilityFromDLLStorageClass (const clang::LangOptions &LO, llvm::Module &M) |
static bool | isStackProtectorOn (const LangOptions &LangOpts, const llvm::Triple &Triple, clang::LangOptions::StackProtectorMode Mode) |
static bool | shouldAssumeDSOLocal (const CodeGenModule &CGM, llvm::GlobalValue *GV) |
static llvm::GlobalVariable::ThreadLocalMode | GetLLVMTLSModel (StringRef S) |
static std::string | getCPUSpecificMangling (const CodeGenModule &CGM, StringRef Name) |
static void | AppendCPUSpecificCPUDispatchMangling (const CodeGenModule &CGM, const CPUSpecificAttr *Attr, unsigned CPUIndex, raw_ostream &Out) |
static bool | isUniqueInternalLinkageDecl (GlobalDecl GD, CodeGenModule &CGM) |
static std::string | getMangledNameImpl (CodeGenModule &CGM, GlobalDecl GD, const NamedDecl *ND, bool OmitMultiVersionMangling=false) |
static void | removeImageAccessQualifier (std::string &TyName) |
static unsigned | ArgInfoAddressSpace (LangAS AS) |
static bool | hasUnwindExceptions (const LangOptions &LangOpts) |
Determines whether the language options require us to model unwind exceptions. | |
static bool | requiresMemberFunctionPointerTypeMetadata (CodeGenModule &CGM, const CXXMethodDecl *MD) |
static void | setLinkageForGV (llvm::GlobalValue *GV, const NamedDecl *ND) |
static bool | allowKCFIIdentifier (StringRef Name) |
static void | emitUsed (CodeGenModule &CGM, StringRef Name, std::vector< llvm::WeakTrackingVH > &List) |
static void | addLinkOptionsPostorder (CodeGenModule &CGM, Module *Mod, SmallVectorImpl< llvm::MDNode * > &Metadata, llvm::SmallPtrSet< Module *, 16 > &Visited) |
Add link options implied by the given module, including modules it depends on, using a postorder walk. | |
template<typename AttrT > | |
static bool | hasImplicitAttr (const ValueDecl *D) |
static bool | HasNonDllImportDtor (QualType T) |
static void | ReplaceUsesOfNonProtoTypeWithRealFunction (llvm::GlobalValue *Old, llvm::Function *NewFn) |
ReplaceUsesOfNonProtoTypeWithRealFunction - This function is called when we implement a function with no prototype, e.g. | |
static uint64_t | getFMVPriority (const TargetInfo &TI, const CodeGenFunction::FMVResolverOption &RO) |
static llvm::GlobalValue::LinkageTypes | getMultiversionLinkage (CodeGenModule &CGM, GlobalDecl GD) |
static void | replaceDeclarationWith (llvm::GlobalValue *Old, llvm::Constant *New) |
static const FunctionDecl * | GetRuntimeFunctionDecl (ASTContext &C, StringRef Name) |
static void | setWindowsItaniumDLLImport (CodeGenModule &CGM, bool Local, llvm::Function *F, StringRef Name) |
static llvm::Constant * | castStringLiteralToDefaultAddressSpace (CodeGenModule &CGM, llvm::GlobalVariable *GV) |
static bool | shouldBeInCOMDAT (CodeGenModule &CGM, const Decl &D) |
static bool | isVarDeclStrongDefinition (const ASTContext &Context, CodeGenModule &CGM, const VarDecl *D, bool NoCommon) |
static void | replaceUsesOfNonProtoConstant (llvm::Constant *old, llvm::Function *newFn) |
Replace the uses of a function that was declared with a non-proto type. | |
static llvm::StringMapEntry< llvm::GlobalVariable * > & | GetConstantCFStringEntry (llvm::StringMap< llvm::GlobalVariable * > &Map, const StringLiteral *Literal, bool TargetIsLSB, bool &IsUTF16, unsigned &StringLength) |
static llvm::GlobalVariable * | GenerateStringLiteral (llvm::Constant *C, llvm::GlobalValue::LinkageTypes LT, CodeGenModule &CGM, StringRef GlobalName, CharUnits Alignment) |
static bool | needsDestructMethod (ObjCImplementationDecl *impl) |
static bool | AllTrivialInitializers (CodeGenModule &CGM, ObjCImplementationDecl *D) |
static llvm::Constant * | GetPointerConstant (llvm::LLVMContext &Context, const void *Ptr) |
Turns the given pointer into a constant. | |
static void | EmitGlobalDeclMetadata (CodeGenModule &CGM, llvm::NamedMDNode *&GlobalMetadata, GlobalDecl D, llvm::GlobalValue *Addr) |
static QualType | GeneralizeType (ASTContext &Ctx, QualType Ty) |
static QualType | GeneralizeFunctionType (ASTContext &Ctx, QualType Ty) |