A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/CodeGenModule_8h_source.html below:

clang: lib/CodeGen/CodeGenModule.h Source File

13#ifndef LLVM_CLANG_LIB_CODEGEN_CODEGENMODULE_H 14#define LLVM_CLANG_LIB_CODEGEN_CODEGENMODULE_H 33#include "llvm/ADT/DenseMap.h" 34#include "llvm/ADT/MapVector.h" 35#include "llvm/ADT/SetVector.h" 36#include "llvm/ADT/SmallPtrSet.h" 37#include "llvm/ADT/StringMap.h" 38#include "llvm/IR/Module.h" 39#include "llvm/IR/ValueHandle.h" 40#include "llvm/Transforms/Utils/SanitizerStats.h" 52class

IndexedInstrProfReader;

64class

ObjCImplementationDecl;

73class

PointerAuthSchema;

78class

HeaderSearchOptions;

79class

DiagnosticsEngine;

81class

CXXDestructorDecl;

83class

CoverageSourceInfo;

97class

CoverageMappingModuleGen;

98class

TargetCodeGenInfo;

121 static constexpr

uint32_t None = (1u << 31);

122 static constexpr

uint32_t Mask = None - 1;

130

assert(!(InitVal & ~Mask));

136 operator

uint32_t()

const

{

return

Val; }

263

uint32_t VisitedInMainFile = 0;

264

uint32_t MissingInMainFile = 0;

265

uint32_t Visited = 0;

266

uint32_t Missing = 0;

267

uint32_t Mismatched = 0;

310 void Profile

(llvm::FoldingSetNodeID &

id

)

const

{

314 virtual void profileImpl

(llvm::FoldingSetNodeID &

id

)

const

= 0;

353 unsigned

NumAutoVarInit = 0;

354

llvm::Module &TheModule;

357

std::unique_ptr<CGCXXABI> ABI;

358

llvm::LLVMContext &VMContext;

359

std::string ModuleNameHash;

360 bool

CXX20ModuleInits =

false

;

361

std::unique_ptr<CodeGenTBAA> TBAA;

363 mutable

std::unique_ptr<TargetCodeGenInfo> TheTargetCodeGenInfo;

368

std::unique_ptr<CodeGenTypes> Types;

374

std::unique_ptr<CGOpenCLRuntime> OpenCLRuntime;

375

std::unique_ptr<CGOpenMPRuntime> OpenMPRuntime;

376

std::unique_ptr<CGCUDARuntime> CUDARuntime;

377

std::unique_ptr<CGHLSLRuntime> HLSLRuntime;

378

std::unique_ptr<CGDebugInfo> DebugInfo;

379

std::unique_ptr<ObjCEntrypoints> ObjCData;

380

llvm::MDNode *NoObjCARCExceptionsMetadata =

nullptr

;

381

std::unique_ptr<llvm::IndexedInstrProfReader> PGOReader;

383

std::unique_ptr<llvm::SanitizerStatReport> SanStats;

395

llvm::DenseMap<StringRef, GlobalDecl> DeferredDecls;

397

llvm::StringSet<llvm::BumpPtrAllocator> DeferredResolversToEmit;

401

std::vector<GlobalDecl> DeferredDeclsToEmit;

403

DeferredDeclsToEmit.emplace_back(GD);

404

addEmittedDeferredDecl(GD);

408

llvm::DenseMap<llvm::StringRef, GlobalDecl> EmittedDeferredDecls;

412 if

(!Context.getLangOpts().IncrementalExtensions)

416 auto

L = llvm::GlobalValue::ExternalLinkage;

417 if

(llvm::isa<FunctionDecl>(GD.

getDecl

()))

419 else if

(

auto

*VD = llvm::dyn_cast<VarDecl>(GD.

getDecl

()))

422 if

(llvm::GlobalValue::isInternalLinkage(L) ||

423

llvm::GlobalValue::isLinkOnceLinkage(L) ||

424

llvm::GlobalValue::isWeakLinkage(L)) {

431

std::vector<GlobalDecl> Aliases;

436

std::vector<GlobalDecl> MultiVersionFuncs;

438

llvm::MapVector<StringRef, llvm::TrackingVH<llvm::Constant>> Replacements;

444

GlobalValReplacements;

448

llvm::DenseMap<const VarDecl*, llvm::GlobalVariable*> InitializerConstants;

453

llvm::DenseSet<GlobalDecl> DiagnosedConflictingDefinitions;

456

std::vector<const CXXRecordDecl*> DeferredVTables;

459

std::vector<const CXXRecordDecl *> OpportunisticVTables;

464

std::vector<llvm::WeakTrackingVH> LLVMUsed;

465

std::vector<llvm::WeakTrackingVH> LLVMCompilerUsed;

476

llvm::MapVector<GlobalDecl, StringRef> MangledDeclNames;

477

llvm::StringMap<GlobalDecl, llvm::BumpPtrAllocator> Manglings;

480

std::vector<llvm::Constant*> Annotations;

484

llvm::MapVector<StringRef, const ValueDecl *> DeferredAnnotations;

487

llvm::StringMap<llvm::Constant*> AnnotationStrings;

490

llvm::DenseMap<unsigned, llvm::Constant *> AnnotationArgs;

492

llvm::StringMap<llvm::GlobalVariable *> CFConstantStringMap;

494

llvm::DenseMap<llvm::Constant *, llvm::GlobalVariable *> ConstantStringMap;

495

llvm::DenseMap<const UnnamedGlobalConstantDecl *, llvm::GlobalVariable *>

496

UnnamedGlobalConstantDeclMap;

497

llvm::DenseMap<const Decl*, llvm::Constant *> StaticLocalDeclMap;

498

llvm::DenseMap<const Decl*, llvm::GlobalVariable*> StaticLocalDeclGuardMap;

499

llvm::DenseMap<const Expr*, llvm::Constant *> MaterializedGlobalTemporaryMap;

501

llvm::DenseMap<QualType, llvm::Constant *> AtomicSetterHelperFnMap;

502

llvm::DenseMap<QualType, llvm::Constant *> AtomicGetterHelperFnMap;

505

llvm::DenseMap<QualType, llvm::Constant *> TypeDescriptorMap;

509 typedef

llvm::MapVector<IdentifierInfo *,

510

llvm::GlobalValue *> StaticExternCMap;

511

StaticExternCMap StaticExternCValues;

514

std::vector<const VarDecl *> CXXThreadLocals;

518

std::vector<llvm::Function *> CXXThreadLocalInits;

519

std::vector<const VarDecl *> CXXThreadLocalInitVars;

522

std::vector<llvm::Function *> CXXGlobalInits;

529

llvm::DenseMap<const Decl*, unsigned> DelayedCXXInitPosition;

531 typedef

std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>

540

MustTailCallUndefinedGlobals;

542 struct

GlobalInitPriorityCmp {

543 bool

operator()(

const

GlobalInitData &LHS,

544 const

GlobalInitData &RHS)

const

{

545 return

LHS.first.priority < RHS.first.priority;

551

SmallVector<GlobalInitData, 8> PrioritizedCXXGlobalInits;

556 typedef

std::tuple<llvm::FunctionType *, llvm::WeakTrackingVH,

558

CXXGlobalDtorsOrStermFinalizer_t;

559

SmallVector<CXXGlobalDtorsOrStermFinalizer_t, 8>

560

CXXGlobalDtorsOrStermFinalizers;

562 typedef

std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>

565 struct

StermFinalizerPriorityCmp {

566 bool

operator()(

const

StermFinalizerData &LHS,

567 const

StermFinalizerData &RHS)

const

{

568 return

LHS.first.priority < RHS.first.priority;

574

SmallVector<StermFinalizerData, 8> PrioritizedCXXStermFinalizers;

577

llvm::SetVector<clang::Module *> ImportedModules;

584

SmallVector<llvm::MDNode *, 16> LinkerOptionsMetadata;

587

SmallVector<llvm::MDNode *, 16> ELFDependentLibraries;

594

llvm::WeakTrackingVH CFConstantStringClassRef;

598

QualType ObjCFastEnumerationStateType;

603 void

createObjCRuntime();

605 void

createOpenCLRuntime();

606 void

createOpenMPRuntime();

607 void

createCUDARuntime();

608 void

createHLSLRuntime();

610 bool

isTriviallyRecursive(

const

FunctionDecl *F);

611 bool

shouldEmitFunction(GlobalDecl GD);

614 bool

shouldEmitCUDAGlobalVar(

const

VarDecl *VD)

const

;

615 bool

shouldOpportunisticallyEmitVTables();

617

llvm::DenseMap<const CompoundLiteralExpr *, llvm::GlobalVariable *>

618

EmittedCompoundLiterals;

622

llvm::DenseMap<const BlockExpr *, llvm::Constant *> EmittedGlobalBlocks;

627

llvm::Constant *NSConcreteGlobalBlock =

nullptr

;

628

llvm::Constant *NSConcreteStackBlock =

nullptr

;

630

llvm::FunctionCallee BlockObjectAssign =

nullptr

;

631

llvm::FunctionCallee BlockObjectDispose =

nullptr

;

633

llvm::Type *BlockDescriptorType =

nullptr

;

634

llvm::Type *GenericBlockLiteralType =

nullptr

;

645

llvm::Function *LifetimeStartFn =

nullptr

;

648

llvm::Function *LifetimeEndFn =

nullptr

;

651

llvm::Function *FakeUseFn =

nullptr

;

653

std::unique_ptr<SanitizerMetadata> SanitizerMD;

655

llvm::MapVector<const Decl *, bool> DeferredEmptyCoverageMappingDecls;

657

std::unique_ptr<CoverageMappingModuleGen> CoverageMapping;

662 typedef

llvm::DenseMap<QualType, llvm::Metadata *> MetadataTypeMap;

663

MetadataTypeMap MetadataIdMap;

664

MetadataTypeMap VirtualMetadataIdMap;

665

MetadataTypeMap GeneralizedMetadataIdMap;

670

GlobalTopLevelStmtBlockInFlight;

672

llvm::DenseMap<GlobalDecl, uint16_t> PtrAuthDiscriminatorHashes;

674

llvm::DenseMap<const CXXRecordDecl *, std::optional<PointerAuthQualifier>>

676

std::optional<PointerAuthQualifier>

677

computeVTPointerAuthentication(

const CXXRecordDecl

*ThisClass);

710

assert(OpenCLRuntime !=

nullptr

);

711 return

*OpenCLRuntime;

716

assert(OpenMPRuntime !=

nullptr

);

717 return

*OpenMPRuntime;

722

assert(CUDARuntime !=

nullptr

);

728

assert(HLSLRuntime !=

nullptr

);

733

assert(ObjCData !=

nullptr

);

744

llvm::IndexedInstrProfReader *

getPGOReader

()

const

{

return

PGOReader.get(); }

747 return

CoverageMapping.get();

751 return

StaticLocalDeclMap[

D

];

754

llvm::Constant *

C

) {

755

StaticLocalDeclMap[

D

] =

C

;

760

llvm::GlobalValue::LinkageTypes

Linkage

);

763 return

StaticLocalDeclGuardMap[

D

];

766

llvm::GlobalVariable *

C

) {

767

StaticLocalDeclGuardMap[

D

] =

C

;

777 return

AtomicSetterHelperFnMap[Ty];

780

llvm::Constant *Fn) {

781

AtomicSetterHelperFnMap[Ty] = Fn;

785 return

AtomicGetterHelperFnMap[Ty];

788

llvm::Constant *Fn) {

789

AtomicGetterHelperFnMap[Ty] = Fn;

793 return

TypeDescriptorMap[Ty];

796

TypeDescriptorMap[Ty] =

C

;

802 if

(!NoObjCARCExceptionsMetadata)

803

NoObjCARCExceptionsMetadata = llvm::MDNode::get(

getLLVMContext

(), {});

804 return

NoObjCARCExceptionsMetadata;

813 const

{

return

HeaderSearchOpts; }

815 const

{

return

PreprocessorOpts; }

820 return

TheModule.getDataLayout();

893 if

(

Base

.getTBAAInfo().isMayAlias())

919

(

D

->getLinkageAndVisibility().getVisibility() ==

923 D

->getLinkageAndVisibility().isVisibilityExplicit()));

947

llvm_unreachable(

"unknown visibility!"

);

958

llvm::GlobalVariable *

960

llvm::GlobalValue::LinkageTypes

Linkage

,

961

llvm::Align Alignment);

964

llvm::FunctionType *ty,

const

Twine &name,

const CGFunctionInfo

&FI,

966

llvm::GlobalVariable::LinkageTypes

Linkage

=

967

llvm::GlobalVariable::InternalLinkage);

993

llvm::Type *Ty =

nullptr

,

1000 bool

ForVTable =

false

,

1001 bool

DontDefer =

false

,

1012

llvm::Type *Ty =

nullptr

);

1026

llvm::Type *Ty =

nullptr

);

1042

llvm::Constant *StorageAddress,

1048

llvm::Constant *StorageAddress,

1049

llvm::ConstantInt *OtherDiscriminator);

1056

std::optional<CGPointerAuthInfo>

1059

llvm::Value *StorageAddress);

1061

std::optional<PointerAuthQualifier>

1088

llvm::Constant *

GetAddrOfThunk

(StringRef Name, llvm::Type *FnTy,

1149 return

EmittedGlobalBlocks.lookup(BE);

1165

StringRef Name =

".str"

);

1178 const char

*GlobalName =

nullptr

);

1186

llvm::GlobalVariable *

1192

llvm::GlobalVariable *GV);

1211

llvm::FunctionType *FnType =

nullptr

,

1212 bool

DontDefer =

false

,

1222

llvm::FunctionType *FnType =

nullptr

,

bool

DontDefer =

false

,

1228 unsigned

BuiltinID);

1258 template

<

typename

SomeDecl>

1272

CXXGlobalDtorsOrStermFinalizers.emplace_back(DtorFn.getFunctionType(),

1273

DtorFn.getCallee(), Object);

1278

CXXGlobalDtorsOrStermFinalizers.emplace_back(DtorFn.getFunctionType(),

1279

DtorFn.getCallee(),

nullptr

);

1291

PrioritizedCXXStermFinalizers.size());

1292

PrioritizedCXXStermFinalizers.push_back(

1293

std::make_pair(Key, StermFinalizer));

1302

llvm::FunctionCallee

1304

llvm::AttributeList ExtraAttrs = llvm::AttributeList(),

1305 bool

Local =

false

,

bool

AssumeConvergent =

false

);

1310

llvm::FunctionCallee

1313

llvm::AttributeList ExtraAttrs = llvm::AttributeList(),

1314 bool

Local =

false

,

bool

AssumeConvergent =

false

);

1367

llvm::function_ref<

void

()> Fn);

1377

llvm::Function *F,

bool

IsThunk);

1415

llvm::AttributeList &Attrs,

unsigned

&

CallingConv

,

1416 bool

AttrOnCallSite,

bool

IsThunk);

1422

llvm::AttributeList &Attrs);

1464

llvm::GlobalValue::LinkageTypes

1468

llvm::GlobalValue::LinkageTypes

1494 const

AnnotateAttr *AA,

1506

StringRef

Category

= StringRef())

const

;

1512

StringRef

Category

= StringRef())

const

;

1526 return

SanitizerMD.get();

1530

DeferredVTables.push_back(RD);

1590

llvm::GlobalObject::VCallVisibility

1592

llvm::DenseSet<const CXXRecordDecl *> &

Visited

);

1596

llvm::GlobalVariable *VTable,

1681 bool

forPointeeType =

false

);

1693 const Decl

*

D

)

const

;

1704 const

CUDALaunchBoundsAttr *A,

1705

int32_t *MaxThreadsVal =

nullptr

,

1706

int32_t *MinBlocksVal =

nullptr

,

1707

int32_t *MaxClusterRankVal =

nullptr

);

1715

llvm::Function *F,

const

AMDGPUFlatWorkGroupSizeAttr *A,

1716 const

ReqdWorkGroupSizeAttr *ReqdWGS =

nullptr

,

1717

int32_t *MinThreadsVal =

nullptr

, int32_t *MaxThreadsVal =

nullptr

);

1721 const

AMDGPUWavesPerEUAttr *A);

1730 unsigned

LexOrder = ~0

U

,

1731

llvm::Constant *AssociatedData =

nullptr

);

1733 bool

IsDtorAttrFunc =

false

);

1744

std::pair<const FunctionDecl *, SourceLocation>

Global

) {

1745

MustTailCallUndefinedGlobals.insert(

Global

);

1800 bool

shouldDropDLLAttribute(

const Decl

*

D

,

const

llvm::GlobalValue *GV)

const

;

1802

llvm::Constant *GetOrCreateLLVMFunction(

1803

StringRef MangledName, llvm::Type *Ty,

GlobalDecl D

,

bool

ForVTable,

1804 bool

DontDefer =

false

,

bool

IsThunk =

false

,

1805

llvm::AttributeList ExtraAttrs = llvm::AttributeList(),

1809 void

AddDeferredMultiVersionResolverToEmit(

GlobalDecl

GD);

1816

llvm::Constant *GetOrCreateMultiVersionResolver(

GlobalDecl

GD);

1824

StringRef &CurName);

1826 bool

GetCPUAndFeaturesAttributes(

GlobalDecl

GD,

1827

llvm::AttrBuilder &AttrBuilder,

1828 bool

SetTargetFeatures =

true

);

1829 void

setNonAliasAttributes(

GlobalDecl

GD, llvm::GlobalObject *GO);

1832 void

SetFunctionAttributes(

GlobalDecl

GD, llvm::Function *F,

1833 bool

IsIncompleteFunction,

bool

IsThunk);

1835 void

EmitGlobalDefinition(

GlobalDecl D

, llvm::GlobalValue *GV =

nullptr

);

1837 void

EmitGlobalFunctionDefinition(

GlobalDecl

GD, llvm::GlobalValue *GV);

1838 void

EmitMultiVersionFunctionDefinition(

GlobalDecl

GD, llvm::GlobalValue *GV);

1840 void

EmitGlobalVarDefinition(

const VarDecl

*

D

,

bool

IsTentative =

false

);

1841 void

EmitExternalVarDeclaration(

const VarDecl

*

D

);

1842 void

EmitExternalFunctionDeclaration(

const FunctionDecl

*

D

);

1845 void

emitCPUDispatchDefinition(

GlobalDecl

GD);

1856 void

EmitCXXThreadLocalInitFunc();

1862 void

EmitCXXGlobalInitFunc();

1865 void

EmitCXXGlobalCleanUpFunc();

1869 void

EmitCXXGlobalVarDeclInitFunc(

const VarDecl

*

D

,

1870

llvm::GlobalVariable *Addr,

1873 void

EmitPointerToInitFunc(

const VarDecl

*VD, llvm::GlobalVariable *Addr,

1874

llvm::Function *InitFunc, InitSegAttr *ISA);

1879 void

EmitCtorList(

CtorList

&Fns,

const char

*GlobalName);

1882 void

EmitDeferred();

1888 void

EmitVTablesOpportunistically();

1891 void

applyReplacements();

1894 void

applyGlobalValReplacements();

1896 void

checkAliases();

1898

std::map<int, llvm::TinyPtrVector<llvm::Function *>> DtorsUsingAtExit;

1902 void

registerGlobalDtorsWithAtExit();

1907 void

unregisterGlobalDtorsWithUnAtExit();

1910 void

emitMultiVersionFunctions();

1913 void

EmitDeferredVTables();

1917 void

emitAtAvailableLinkGuard();

1920 void

emitLLVMUsed();

1926 void

EmitModuleLinkOptions();

1935 bool

CheckAndReplaceExternCIFuncs(llvm::GlobalValue *Elem,

1936

llvm::GlobalValue *CppFunc);

1940 void

EmitStaticExternCAliases();

1942 void

EmitDeclMetadata();

1945 void

EmitVersionIdentMetadata();

1948 void

EmitCommandLineMetadata();

1952 void

EmitBackendOptionsMetadata(

const CodeGenOptions

&CodeGenOpts);

1955 void

EmitOpenCLMetadata();

1959 void

EmitCoverageFile();

1969 bool

MayBeEmittedEagerly(

const ValueDecl

*

D

);

1973 void

SimplifyPersonality();

1977 void

getTrivialDefaultFunctionAttributes(StringRef Name,

bool

HasOptnone,

1978 bool

AttrOnCallSite,

1979

llvm::AttrBuilder &FuncAttrs);

1984 void

getDefaultFunctionAttributes(StringRef Name,

bool

HasOptnone,

1985 bool

AttrOnCallSite,

1986

llvm::AttrBuilder &FuncAttrs);

1988

llvm::Metadata *CreateMetadataIdentifierImpl(

QualType T

, MetadataTypeMap &Map,

Enums/classes describing ABI related information about constructors, destructors and thunks.

enum clang::sema::@1704::IndirectLocalPathEntry::EntryKind Kind

Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate....

This file defines OpenMP nodes for declarative directives.

llvm::DenseSet< const void * > Visited

Defines the clang::LangOptions interface.

llvm::MachO::Target Target

llvm::MachO::Record Record

Defines a utilitiy for warning once when close to out of stack space.

__DEVICE__ void * memset(void *__a, int __b, size_t __c)

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

CharUnits getTypeSizeInChars(QualType T) const

Return the size of the specified (complete) type T, in characters.

Attr - This represents one attribute.

Represents a block literal declaration, which is like an unnamed FunctionDecl.

BlockExpr - Adaptor class for mixing a BlockDecl with expressions.

Represents a C++ destructor within a class.

Represents a C++ struct/union/class.

const CXXBaseSpecifier *const * path_const_iterator

CharUnits - This is an opaque type for sizes expressed in character units.

QuantityType getQuantity() const

getQuantity - Get the raw integer representation of this quantity.

CodeGenOptions - Track various options which control how the code is optimized and passed to the back...

ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions.

Like RawAddress, an abstract representation of an aligned address, but the pointer contained in this ...

A pair of helper functions for a __block variable.

virtual ~BlockByrefHelpers()

void Profile(llvm::FoldingSetNodeID &id) const

virtual void emitCopy(CodeGenFunction &CGF, Address dest, Address src)=0

BlockByrefHelpers(CharUnits alignment)

virtual bool needsCopy() const

llvm::Constant * CopyHelper

CharUnits Alignment

The alignment of the field.

virtual void emitDispose(CodeGenFunction &CGF, Address field)=0

BlockByrefHelpers(const BlockByrefHelpers &)=default

virtual bool needsDispose() const

llvm::Constant * DisposeHelper

virtual void profileImpl(llvm::FoldingSetNodeID &id) const =0

Implements C++ ABI-specific code generation functions.

Abstract information about a function or function prototype.

This class gathers all debug information during compilation and is responsible for emitting to llvm g...

CGFunctionInfo - Class to encapsulate the information about a function definition.

Implements runtime-specific code generation functions.

CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code...

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

StringRef getBlockMangledName(GlobalDecl GD, const BlockDecl *BD)

llvm::FunctionCallee getBlockObjectAssign()

const PreprocessorOptions & getPreprocessorOpts() const

ConstantAddress GetAddrOfMSGuidDecl(const MSGuidDecl *GD)

Get the address of a GUID.

void AddCXXPrioritizedStermFinalizerEntry(llvm::Function *StermFinalizer, int Priority)

void setGVProperties(llvm::GlobalValue *GV, GlobalDecl GD) const

Set visibility, dllimport/dllexport and dso_local.

void AddCXXDtorEntry(llvm::FunctionCallee DtorFn, llvm::Constant *Object)

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

llvm::FoldingSet< BlockByrefHelpers > ByrefHelpersCache

void AddVTableTypeMetadata(llvm::GlobalVariable *VTable, CharUnits Offset, const CXXRecordDecl *RD)

Create and attach type metadata for the given vtable.

void UpdateCompletedType(const TagDecl *TD)

void handleCUDALaunchBoundsAttr(llvm::Function *F, const CUDALaunchBoundsAttr *A, int32_t *MaxThreadsVal=nullptr, int32_t *MinBlocksVal=nullptr, int32_t *MaxClusterRankVal=nullptr)

Emit the IR encoding to attach the CUDA launch bounds attribute to F.

llvm::MDNode * getTBAAAccessTagInfo(TBAAAccessInfo Info)

getTBAAAccessTagInfo - Get TBAA tag for a given memory access.

llvm::MDNode * getNoObjCARCExceptionsMetadata()

void AddCXXStermFinalizerToGlobalDtor(llvm::Function *StermFinalizer, int Priority)

Add an sterm finalizer to its own llvm.global_dtors entry.

llvm::GlobalVariable::ThreadLocalMode GetDefaultLLVMTLSModel() const

Get LLVM TLS mode from CodeGenOptions.

void EmitExplicitCastExprType(const ExplicitCastExpr *E, CodeGenFunction *CGF=nullptr)

Emit type info if type of an expression is a variably modified type.

void SetInternalFunctionAttributes(GlobalDecl GD, llvm::Function *F, const CGFunctionInfo &FI)

Set the attributes on the LLVM function for the given decl and function info.

void setDSOLocal(llvm::GlobalValue *GV) const

llvm::GlobalObject::VCallVisibility GetVCallVisibilityLevel(const CXXRecordDecl *RD, llvm::DenseSet< const CXXRecordDecl * > &Visited)

Returns the vcall visibility of the given type.

llvm::MDNode * getTBAAStructInfo(QualType QTy)

CGHLSLRuntime & getHLSLRuntime()

Return a reference to the configured HLSL runtime.

llvm::Constant * EmitAnnotationArgs(const AnnotateAttr *Attr)

Emit additional args of the annotation.

llvm::Module & getModule() const

llvm::FunctionCallee CreateRuntimeFunction(llvm::FunctionType *Ty, StringRef Name, llvm::AttributeList ExtraAttrs=llvm::AttributeList(), bool Local=false, bool AssumeConvergent=false)

Create or return a runtime function declaration with the specified type and name.

CGDebugInfo * getModuleDebugInfo()

ConstantAddress GetAddrOfConstantCompoundLiteral(const CompoundLiteralExpr *E)

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

void setLLVMFunctionFEnvAttributes(const FunctionDecl *D, llvm::Function *F)

Set the LLVM function attributes that represent floating point environment.

bool NeedAllVtablesTypeId() const

Returns whether this module needs the "all-vtables" type identifier.

void addCompilerUsedGlobal(llvm::GlobalValue *GV)

Add a global to a list to be added to the llvm.compiler.used metadata.

CodeGenVTables & getVTables()

CtorList & getGlobalDtors()

llvm::ConstantInt * CreateCrossDsoCfiTypeId(llvm::Metadata *MD)

Generate a cross-DSO type identifier for MD.

void setStaticLocalDeclAddress(const VarDecl *D, llvm::Constant *C)

llvm::Constant * EmitNullConstantForBase(const CXXRecordDecl *Record)

Return a null constant appropriate for zero-initializing a base class with the given type.

llvm::Function * getLLVMLifetimeStartFn()

Lazily declare the @llvm.lifetime.start intrinsic.

CharUnits GetTargetTypeStoreSize(llvm::Type *Ty) const

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

void handleAMDGPUWavesPerEUAttr(llvm::Function *F, const AMDGPUWavesPerEUAttr *A)

Emit the IR encoding to attach the AMD GPU waves-per-eu attribute to F.

void AddCXXStermFinalizerEntry(llvm::FunctionCallee DtorFn)

Add an sterm finalizer to the C++ global cleanup function.

void setTypeDescriptorInMap(QualType Ty, llvm::Constant *C)

bool getExpressionLocationsEnabled() const

Return true if we should emit location information for expressions.

CharUnits getMinimumClassObjectSize(const CXXRecordDecl *CD)

Returns the minimum object size for an object of the given class type (or a class derived from it).

void addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C)

llvm::Constant * getRawFunctionPointer(GlobalDecl GD, llvm::Type *Ty=nullptr)

Return a function pointer for a reference to the given function.

llvm::FunctionCallee getAddrAndTypeOfCXXStructor(GlobalDecl GD, const CGFunctionInfo *FnInfo=nullptr, llvm::FunctionType *FnType=nullptr, bool DontDefer=false, ForDefinition_t IsForDefinition=NotForDefinition)

llvm::Constant * GetAddrOfRTTIDescriptor(QualType Ty, bool ForEH=false)

Get the address of the RTTI descriptor for the given type.

llvm::Constant * GetAddrOfFunction(GlobalDecl GD, llvm::Type *Ty=nullptr, bool ForVTable=false, bool DontDefer=false, ForDefinition_t IsForDefinition=NotForDefinition)

Return the address of the given function.

Address createUnnamedGlobalFrom(const VarDecl &D, llvm::Constant *Constant, CharUnits Align)

void setGVPropertiesAux(llvm::GlobalValue *GV, const NamedDecl *D) const

llvm::Constant * getFunctionPointer(GlobalDecl GD, llvm::Type *Ty=nullptr)

Return the ABI-correct function pointer value for a reference to the given function.

const IntrusiveRefCntPtr< llvm::vfs::FileSystem > & getFileSystem() const

void setAddrOfGlobalBlock(const BlockExpr *BE, llvm::Constant *Addr)

Notes that BE's global block is available via Addr.

const ABIInfo & getABIInfo()

void setStaticLocalDeclGuardAddress(const VarDecl *D, llvm::GlobalVariable *C)

bool ReturnTypeUsesFPRet(QualType ResultType)

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

void EmitMainVoidAlias()

Emit an alias for "main" if it has no arguments (needed for wasm).

void DecorateInstructionWithInvariantGroup(llvm::Instruction *I, const CXXRecordDecl *RD)

Adds !invariant.barrier !tag to instruction.

llvm::Constant * getBuiltinLibFunction(const FunctionDecl *FD, unsigned BuiltinID)

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

DiagnosticsEngine & getDiags() const

bool isInNoSanitizeList(SanitizerMask Kind, llvm::Function *Fn, SourceLocation Loc) const

void runWithSufficientStackSpace(SourceLocation Loc, llvm::function_ref< void()> Fn)

Run some code with "sufficient" stack space.

llvm::Constant * getAddrOfCXXStructor(GlobalDecl GD, const CGFunctionInfo *FnInfo=nullptr, llvm::FunctionType *FnType=nullptr, bool DontDefer=false, ForDefinition_t IsForDefinition=NotForDefinition)

Return the address of the constructor/destructor of the given type.

bool isPaddedAtomicType(QualType type)

llvm::Constant * getNullPointer(llvm::PointerType *T, QualType QT)

Get target specific null pointer.

void AddCXXGlobalInit(llvm::Function *F)

void ErrorUnsupported(const Stmt *S, const char *Type)

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

llvm::Constant * EmitAnnotateAttr(llvm::GlobalValue *GV, const AnnotateAttr *AA, SourceLocation L)

Generate the llvm::ConstantStruct which contains the annotation information for a given GlobalValue.

llvm::GlobalValue::LinkageTypes getLLVMLinkageForDeclarator(const DeclaratorDecl *D, GVALinkage Linkage)

Returns LLVM linkage for a declarator.

TBAAAccessInfo mergeTBAAInfoForMemoryTransfer(TBAAAccessInfo DestInfo, TBAAAccessInfo SrcInfo)

mergeTBAAInfoForMemoryTransfer - Get merged TBAA information for the purposes of memory transfer call...

llvm::Type * getBlockDescriptorType()

Fetches the type of a generic block descriptor.

llvm::Constant * GetAddrOfGlobalBlock(const BlockExpr *BE, StringRef Name)

Gets the address of a block which requires no captures.

llvm::Constant * getAtomicGetterHelperFnMap(QualType Ty)

CGPointerAuthInfo getMemberFunctionPointerAuthInfo(QualType FT)

const LangOptions & getLangOpts() const

CGCUDARuntime & getCUDARuntime()

Return a reference to the configured CUDA runtime.

int getUniqueBlockCount()

Fetches the global unique block count.

llvm::Constant * EmitAnnotationLineNo(SourceLocation L)

Emit the annotation line number.

QualType getObjCFastEnumerationStateType()

Retrieve the record type that describes the state of an Objective-C fast enumeration loop (for....

CtorList & getGlobalCtors()

CharUnits getNaturalTypeAlignment(QualType T, LValueBaseInfo *BaseInfo=nullptr, TBAAAccessInfo *TBAAInfo=nullptr, bool forPointeeType=false)

CodeGenTypes & getTypes()

bool shouldMapVisibilityToDLLExport(const NamedDecl *D) const

CGOpenCLRuntime & getOpenCLRuntime()

Return a reference to the configured OpenCL runtime.

const std::string & getModuleNameHash() const

const TargetInfo & getTarget() const

bool shouldEmitRTTI(bool ForEH=false)

void EmitGlobal(GlobalDecl D)

Emit code for a single global function or var decl.

llvm::Function * getLLVMFakeUseFn()

Lazily declare the @llvm.fake.use intrinsic.

llvm::GlobalVariable * getStaticLocalDeclGuardAddress(const VarDecl *D)

llvm::ConstantInt * getPointerAuthOtherDiscriminator(const PointerAuthSchema &Schema, GlobalDecl SchemaDecl, QualType SchemaType)

Given a pointer-authentication schema, return a concrete "other" discriminator for it.

llvm::Metadata * CreateMetadataIdentifierForType(QualType T)

Create a metadata identifier for the given type.

llvm::Constant * getTypeDescriptorFromMap(QualType Ty)

llvm::IndexedInstrProfReader * getPGOReader() const

void addUsedGlobal(llvm::GlobalValue *GV)

Add a global to a list to be added to the llvm.used metadata.

void handleAMDGPUFlatWorkGroupSizeAttr(llvm::Function *F, const AMDGPUFlatWorkGroupSizeAttr *A, const ReqdWorkGroupSizeAttr *ReqdWGS=nullptr, int32_t *MinThreadsVal=nullptr, int32_t *MaxThreadsVal=nullptr)

Emit the IR encoding to attach the AMD GPU flat-work-group-size attribute to F.

void AppendLinkerOptions(StringRef Opts)

Appends Opts to the "llvm.linker.options" metadata value.

bool hasObjCRuntime()

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

void EmitExternalDeclaration(const DeclaratorDecl *D)

void AddDependentLib(StringRef Lib)

Appends a dependent lib to the appropriate metadata value.

void Release()

Finalize LLVM code generation.

llvm::FunctionCallee IsOSVersionAtLeastFn

ProfileList::ExclusionType isFunctionBlockedByProfileList(llvm::Function *Fn, SourceLocation Loc) const

CGPointerAuthInfo getPointerAuthInfoForPointeeType(QualType type)

llvm::MDNode * getTBAABaseTypeInfo(QualType QTy)

getTBAABaseTypeInfo - Get metadata that describes the given base access type.

CGPointerAuthInfo EmitPointerAuthInfo(const RecordDecl *RD)

void EmitVTableTypeMetadata(const CXXRecordDecl *RD, llvm::GlobalVariable *VTable, const VTableLayout &VTLayout)

Emit type metadata for the given vtable using the given layout.

bool lookupRepresentativeDecl(StringRef MangledName, GlobalDecl &Result) const

void EmitOMPAllocateDecl(const OMPAllocateDecl *D)

Emit a code for the allocate directive.

void setGlobalVisibility(llvm::GlobalValue *GV, const NamedDecl *D) const

Set the visibility for the given LLVM GlobalValue.

CoverageMappingModuleGen * getCoverageMapping() const

llvm::Constant * GetNonVirtualBaseClassOffset(const CXXRecordDecl *ClassDecl, CastExpr::path_const_iterator PathBegin, CastExpr::path_const_iterator PathEnd)

Returns the offset from a derived class to a class.

bool TryEmitBaseDestructorAsAlias(const CXXDestructorDecl *D)

Try to emit a base destructor as an alias to its primary base-class destructor.

llvm::GlobalValue::LinkageTypes getLLVMLinkageVarDefinition(const VarDecl *VD)

Returns LLVM linkage for a declarator.

llvm::Constant * getMemberPointerConstant(const UnaryOperator *e)

bool HasHiddenLTOVisibility(const CXXRecordDecl *RD)

Returns whether the given record has hidden LTO visibility and therefore may participate in (single-m...

const llvm::DataLayout & getDataLayout() const

llvm::Constant * getNSConcreteGlobalBlock()

void addUndefinedGlobalForTailCall(std::pair< const FunctionDecl *, SourceLocation > Global)

CharUnits computeNonVirtualBaseClassOffset(const CXXRecordDecl *DerivedClass, CastExpr::path_const_iterator Start, CastExpr::path_const_iterator End)

ObjCEntrypoints & getObjCEntrypoints() const

TBAAAccessInfo getTBAAVTablePtrAccessInfo(llvm::Type *VTablePtrType)

getTBAAVTablePtrAccessInfo - Get the TBAA information that describes an access to a virtual table poi...

bool shouldEmitConvergenceTokens() const

CGCXXABI & getCXXABI() const

ConstantAddress GetWeakRefReference(const ValueDecl *VD)

Get a reference to the target of VD.

CGPointerAuthInfo getFunctionPointerAuthInfo(QualType T)

Return the abstract pointer authentication schema for a pointer to the given function type.

CharUnits getVBaseAlignment(CharUnits DerivedAlign, const CXXRecordDecl *Derived, const CXXRecordDecl *VBase)

Returns the assumed alignment of a virtual base of a class.

llvm::Constant * GetFunctionStart(const ValueDecl *Decl)

llvm::GlobalVariable * getAddrOfConstantCompoundLiteralIfEmitted(const CompoundLiteralExpr *E)

If it's been emitted already, returns the GlobalVariable corresponding to a compound literal.

static llvm::GlobalValue::VisibilityTypes GetLLVMVisibility(Visibility V)

void EmitTentativeDefinition(const VarDecl *D)

bool ReturnTypeUsesFP2Ret(QualType ResultType)

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

void EmitDeferredUnusedCoverageMappings()

Emit all the deferred coverage mappings for the uninstrumented functions.

void addUsedOrCompilerUsedGlobal(llvm::GlobalValue *GV)

Add a global to a list to be added to the llvm.compiler.used metadata.

CGOpenMPRuntime & getOpenMPRuntime()

Return a reference to the configured OpenMP runtime.

bool imbueXRayAttrs(llvm::Function *Fn, SourceLocation Loc, StringRef Category=StringRef()) const

Imbue XRay attributes to a function, applying the always/never attribute lists in the process.

llvm::Constant * getMemberFunctionPointer(const FunctionDecl *FD, llvm::Type *Ty=nullptr)

SanitizerMetadata * getSanitizerMetadata()

llvm::Metadata * CreateMetadataIdentifierGeneralized(QualType T)

Create a metadata identifier for the generalization of the given type.

void EmitGlobalAnnotations()

Emit all the global annotations.

llvm::Constant * getAddrOfGlobalBlockIfEmitted(const BlockExpr *BE)

Returns the address of a block which requires no caputres, or null if we've yet to emit the block for...

std::optional< PointerAuthQualifier > getVTablePointerAuthentication(const CXXRecordDecl *thisClass)

llvm::Function * codegenCXXStructor(GlobalDecl GD)

CharUnits getClassPointerAlignment(const CXXRecordDecl *CD)

Returns the assumed alignment of an opaque pointer to the given class.

const llvm::Triple & getTriple() const

void setAtomicSetterHelperFnMap(QualType Ty, llvm::Constant *Fn)

llvm::Constant * getOrCreateStaticVarDecl(const VarDecl &D, llvm::GlobalValue::LinkageTypes Linkage)

SmallVector< const CXXRecordDecl *, 0 > getMostBaseClasses(const CXXRecordDecl *RD)

Return a vector of most-base classes for RD.

void AddDeferredUnusedCoverageMapping(Decl *D)

Stored a deferred empty coverage mapping for an unused and thus uninstrumented top level declaration.

bool AlwaysHasLTOVisibilityPublic(const CXXRecordDecl *RD)

Returns whether the given record has public LTO visibility (regardless of -lto-whole-program-visibili...

void MaybeHandleStaticInExternC(const SomeDecl *D, llvm::GlobalValue *GV)

If the declaration has internal linkage but is inside an extern "C" linkage specification,...

void DecorateInstructionWithTBAA(llvm::Instruction *Inst, TBAAAccessInfo TBAAInfo)

DecorateInstructionWithTBAA - Decorate the instruction with a TBAA tag.

uint16_t getPointerAuthDeclDiscriminator(GlobalDecl GD)

Return the "other" decl-specific discriminator for the given decl.

llvm::Constant * getAtomicSetterHelperFnMap(QualType Ty)

TBAAAccessInfo getTBAAInfoForSubobject(LValue Base, QualType AccessType)

getTBAAInfoForSubobject - Get TBAA information for an access with a given base lvalue.

bool shouldUseTBAA() const

llvm::GlobalVariable::LinkageTypes getFunctionLinkage(GlobalDecl GD)

void AddGlobalDtor(llvm::Function *Dtor, int Priority=65535, bool IsDtorAttrFunc=false)

AddGlobalDtor - Add a function to the list that will be called when the module is unloaded.

bool ReturnSlotInterferesWithArgs(const CGFunctionInfo &FI)

Return true iff the given type uses an argument slot when 'sret' is used as a return type.

bool ReturnTypeHasInReg(const CGFunctionInfo &FI)

Return true iff the given type has inreg set.

void EmitVTable(CXXRecordDecl *Class)

This is a callback from Sema to tell us that a particular vtable is required to be emitted in this tr...

llvm::Constant * CreateRuntimeVariable(llvm::Type *Ty, StringRef Name)

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

void AdjustMemoryAttribute(StringRef Name, CGCalleeInfo CalleeInfo, llvm::AttributeList &Attrs)

Adjust Memory attribute to ensure that the BE gets the right attribute.

void ConstructAttributeList(StringRef Name, const CGFunctionInfo &Info, CGCalleeInfo CalleeInfo, llvm::AttributeList &Attrs, unsigned &CallingConv, bool AttrOnCallSite, bool IsThunk)

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

CharUnits getDynamicOffsetAlignment(CharUnits ActualAlign, const CXXRecordDecl *Class, CharUnits ExpectedTargetAlign)

Given a class pointer with an actual known alignment, and the expected alignment of an object at a dy...

llvm::Constant * GetOrCreateLLVMGlobal(StringRef MangledName, llvm::Type *Ty, LangAS AddrSpace, const VarDecl *D, ForDefinition_t IsForDefinition=NotForDefinition)

GetOrCreateLLVMGlobal - If the specified mangled name is not in the module, create and return an llvm...

TBAAAccessInfo getTBAAAccessInfo(QualType AccessType)

getTBAAAccessInfo - Get TBAA information that describes an access to an object of the given type.

void setFunctionLinkage(GlobalDecl GD, llvm::Function *F)

llvm::Constant * GetAddrOfGlobal(GlobalDecl GD, ForDefinition_t IsForDefinition=NotForDefinition)

ConstantAddress GetAddrOfConstantCFString(const StringLiteral *Literal)

Return a pointer to a constant CFString object for the given string.

InstrProfStats & getPGOStats()

ProfileList::ExclusionType isFunctionBlockedFromProfileInstr(llvm::Function *Fn, SourceLocation Loc) const

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

Add global annotations that are set on D, for the global GV.

void setTLSMode(llvm::GlobalValue *GV, const VarDecl &D) const

Set the TLS mode for the given LLVM GlobalValue for the thread-local variable declaration D.

ItaniumVTableContext & getItaniumVTableContext()

ConstantAddress GetAddrOfConstantStringFromLiteral(const StringLiteral *S, StringRef Name=".str")

Return a pointer to a constant array for the given string literal.

ASTContext & getContext() const

ConstantAddress GetAddrOfTemplateParamObject(const TemplateParamObjectDecl *TPO)

Get the address of a template parameter object.

void EmitOMPThreadPrivateDecl(const OMPThreadPrivateDecl *D)

Emit a code for threadprivate directive.

llvm::Constant * getNSConcreteStackBlock()

ConstantAddress GetAddrOfUnnamedGlobalConstantDecl(const UnnamedGlobalConstantDecl *GCD)

Get the address of a UnnamedGlobalConstant.

TBAAAccessInfo mergeTBAAInfoForCast(TBAAAccessInfo SourceInfo, TBAAAccessInfo TargetInfo)

mergeTBAAInfoForCast - Get merged TBAA information for the purposes of type casts.

llvm::Constant * GetAddrOfGlobalVar(const VarDecl *D, llvm::Type *Ty=nullptr, ForDefinition_t IsForDefinition=NotForDefinition)

Return the llvm::Constant for the address of the given global variable.

MicrosoftVTableContext & getMicrosoftVTableContext()

const HeaderSearchOptions & getHeaderSearchOpts() const

llvm::SanitizerStatReport & getSanStats()

llvm::Constant * EmitAnnotationString(StringRef Str)

Emit an annotation string.

llvm::Type * getVTableComponentType() const

void EmitOMPDeclareMapper(const OMPDeclareMapperDecl *D, CodeGenFunction *CGF=nullptr)

Emit a code for declare mapper construct.

llvm::Function * getLLVMLifetimeEndFn()

Lazily declare the @llvm.lifetime.end intrinsic.

bool supportsCOMDAT() const

void RefreshTypeCacheForClass(const CXXRecordDecl *Class)

llvm::MDNode * getTBAATypeInfo(QualType QTy)

getTBAATypeInfo - Get metadata used to describe accesses to objects of the given type.

void setAddrOfConstantCompoundLiteral(const CompoundLiteralExpr *CLE, llvm::GlobalVariable *GV)

Notes that CLE's GlobalVariable is GV.

void EmitOMPRequiresDecl(const OMPRequiresDecl *D)

Emit a code for requires directive.

void HandleCXXStaticMemberVarInstantiation(VarDecl *VD)

Tell the consumer that this variable has been instantiated.

bool ReturnTypeUsesSRet(const CGFunctionInfo &FI)

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

const TargetCodeGenInfo & getTargetCodeGenInfo()

const CodeGenOptions & getCodeGenOpts() const

StringRef getMangledName(GlobalDecl GD)

llvm::Constant * GetConstantArrayFromStringLiteral(const StringLiteral *E)

Return a constant array for the given string.

void SetCommonAttributes(GlobalDecl GD, llvm::GlobalValue *GV)

Set attributes which are common to any form of a global definition (alias, Objective-C method,...

void addDefaultFunctionDefinitionAttributes(llvm::AttrBuilder &attrs)

Like the overload taking a Function &, but intended specifically for frontends that want to build on ...

std::optional< CharUnits > getOMPAllocateAlignment(const VarDecl *VD)

Return the alignment specified in an allocate directive, if present.

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

Will return a global variable of the given type.

llvm::FunctionCallee getTerminateFn()

Get the declaration of std::terminate for the platform.

CharUnits getNaturalPointeeTypeAlignment(QualType T, LValueBaseInfo *BaseInfo=nullptr, TBAAAccessInfo *TBAAInfo=nullptr)

llvm::FunctionCallee getBlockObjectDispose()

TBAAAccessInfo mergeTBAAInfoForConditionalOperator(TBAAAccessInfo InfoA, TBAAAccessInfo InfoB)

mergeTBAAInfoForConditionalOperator - Get merged TBAA information for the purposes of conditional ope...

llvm::LLVMContext & getLLVMContext()

llvm::GlobalValue * GetGlobalValue(StringRef Ref)

bool shouldZeroInitPadding() const

void GenKernelArgMetadata(llvm::Function *FN, const FunctionDecl *FD=nullptr, CodeGenFunction *CGF=nullptr)

OpenCL v1.2 s5.6.4.6 allows the compiler to store kernel argument information in the program executab...

void CreateFunctionTypeMetadataForIcall(const FunctionDecl *FD, llvm::Function *F)

Create and attach type metadata to the given function.

void setKCFIType(const FunctionDecl *FD, llvm::Function *F)

Set type metadata to the given function.

void setAtomicGetterHelperFnMap(QualType Ty, llvm::Constant *Fn)

void maybeSetTrivialComdat(const Decl &D, llvm::GlobalObject &GO)

void EmitOMPDeclareReduction(const OMPDeclareReductionDecl *D, CodeGenFunction *CGF=nullptr)

Emit a code for declare reduction construct.

const ItaniumVTableContext & getItaniumVTableContext() const

llvm::Function * getIntrinsic(unsigned IID, ArrayRef< llvm::Type * > Tys={})

void AddDetectMismatch(StringRef Name, StringRef Value)

Appends a detect mismatch command to the linker options.

void setDLLImportDLLExport(llvm::GlobalValue *GV, GlobalDecl D) const

CGObjCRuntime & getObjCRuntime()

Return a reference to the configured Objective-C runtime.

llvm::Value * createOpenCLIntToSamplerConversion(const Expr *E, CodeGenFunction &CGF)

ConstantAddress GetAddrOfGlobalTemporary(const MaterializeTemporaryExpr *E, const Expr *Inner)

Returns a pointer to a global variable representing a temporary with static or thread storage duratio...

llvm::Constant * EmitNullConstant(QualType T)

Return the result of value-initializing the given type, i.e.

LangAS GetGlobalConstantAddressSpace() const

Return the AST address space of constant literal, which is used to emit the constant literal as globa...

LangAS GetGlobalVarAddressSpace(const VarDecl *D)

Return the AST address space of the underlying global variable for D, as determined by its declaratio...

llvm::GlobalVariable::LinkageTypes getVTableLinkage(const CXXRecordDecl *RD)

Return the appropriate linkage for the vtable, VTT, and type information of the given class.

void SetLLVMFunctionAttributes(GlobalDecl GD, const CGFunctionInfo &Info, llvm::Function *F, bool IsThunk)

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

void addDeferredVTable(const CXXRecordDecl *RD)

llvm::Type * getGenericBlockLiteralType()

The type of a generic block literal.

CharUnits getMinimumObjectSize(QualType Ty)

Returns the minimum object size for an object of the given type.

void addReplacement(StringRef Name, llvm::Constant *C)

llvm::ConstantInt * CreateKCFITypeId(QualType T)

Generate a KCFI type identifier for T.

std::optional< CGPointerAuthInfo > getVTablePointerAuthInfo(CodeGenFunction *Context, const CXXRecordDecl *Record, llvm::Value *StorageAddress)

llvm::Constant * getConstantSignedPointer(llvm::Constant *Pointer, const PointerAuthSchema &Schema, llvm::Constant *StorageAddress, GlobalDecl SchemaDecl, QualType SchemaType)

Sign a constant pointer using the given scheme, producing a constant with the same IR type.

llvm::FunctionCallee IsPlatformVersionAtLeastFn

void AddGlobalCtor(llvm::Function *Ctor, int Priority=65535, unsigned LexOrder=~0U, llvm::Constant *AssociatedData=nullptr)

AddGlobalCtor - Add a function to the list that will be called before main() runs.

bool shouldSignPointer(const PointerAuthSchema &Schema)

Does a given PointerAuthScheme require us to sign a value.

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

Set the LLVM function attributes which only apply to a function definition.

llvm::Metadata * CreateMetadataIdentifierForVirtualMemPtrType(QualType T)

Create a metadata identifier that is intended to be used to check virtual calls via a member function...

llvm::Constant * getStaticLocalDeclAddress(const VarDecl *D)

bool MayDropFunctionReturn(const ASTContext &Context, QualType ReturnType) const

Whether this function's return type has no side effects, and thus may be trivially discarded if it is...

ConstantAddress GetAddrOfConstantStringFromObjCEncode(const ObjCEncodeExpr *)

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

const GlobalDecl getMangledNameDecl(StringRef)

void ClearUnusedCoverageMapping(const Decl *D)

Remove the deferred empty coverage mapping as this declaration is actually instrumented.

void EmitTopLevelDecl(Decl *D)

Emit code for a single top level declaration.

llvm::Function * CreateGlobalInitOrCleanUpFunction(llvm::FunctionType *ty, const Twine &name, const CGFunctionInfo &FI, SourceLocation Loc=SourceLocation(), bool TLS=false, llvm::GlobalVariable::LinkageTypes Linkage=llvm::GlobalVariable::InternalLinkage)

llvm::Constant * EmitAnnotationUnit(SourceLocation Loc)

Emit the annotation's translation unit.

CGPointerAuthInfo getPointerAuthInfoForType(QualType type)

ConstantAddress GetAddrOfConstantCString(const std::string &Str, const char *GlobalName=nullptr)

Returns a pointer to a character array containing the literal and a terminating '\0' character.

std::vector< Structor > CtorList

void printPostfixForExternalizedDecl(llvm::raw_ostream &OS, const Decl *D) const

Print the postfix for externalized static variable or kernels for single source offloading languages ...

llvm::Constant * GetAddrOfThunk(StringRef Name, llvm::Type *FnTy, GlobalDecl GD)

Get the address of the thunk for the given global decl.

void moveLazyEmissionStates(CodeGenModule *NewBuilder)

Move some lazily-emitted states to the NewBuilder.

llvm::ConstantInt * getSize(CharUnits numChars)

Emit the given number of characters as a value of type size_t.

void finalizeKCFITypes()

Emit KCFI type identifier constants and remove unused identifiers.

This class organizes the cross-module state that is used while lowering AST types to LLVM types.

ItaniumVTableContext & getItaniumVTableContext()

MicrosoftVTableContext & getMicrosoftVTableContext()

A specialization of Address that requires the address to be an LLVM Constant.

ValueOpt(unsigned InitVal)

The Counter with an optional additional Counter for branches.

CounterPair(unsigned Val)

May be None.

Organizes the cross-function state that is used while generating code coverage mapping data.

This class records statistics on instrumentation based profiling.

bool hasDiagnostics()

Whether or not the stats we've gathered indicate any potential problems.

void addMissing(bool MainFile)

Record that a function we've visited has no profile data.

void addMismatched(bool MainFile)

Record that a function we've visited has mismatched profile data.

void addVisited(bool MainFile)

Record that we've visited a function and whether or not that function was in the main source file.

void reportDiagnostics(DiagnosticsEngine &Diags, StringRef MainFile)

Report potential problems we've found to Diags.

LValue - This represents an lvalue references.

TargetCodeGenInfo - This class organizes various target-specific codegeneration issues,...

CompoundLiteralExpr - [C99 6.5.2.5].

Stores additional source code information like skipped ranges which is required by the coverage mappi...

DeclContext - This is used only as base class of specific decl types that can act as declaration cont...

Decl - This represents one declaration (or definition), e.g.

Represents a ValueDecl that came out of a declarator.

Concrete class used by the front-end to report problems and issues.

ExplicitCastExpr - An explicit cast written in the source code.

This represents one expression.

Represents a function declaration or definition.

FunctionType - C99 6.7.5.3 - Function Declarators.

GlobalDecl - represents a global declaration.

const Decl * getDecl() const

Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...

bool hasDefaultVisibilityExportMapping() const

bool isExplicitDefaultVisibilityExportMapping() const

bool isAllDefaultVisibilityExportMapping() const

Represents a linkage specification.

Represents a prvalue temporary that is written into memory so that a reference can bind to it.

Describes a module or submodule.

This represents a decl that may have a name.

This represents '#pragma omp allocate ...' directive.

This represents '#pragma omp declare mapper ...' directive.

This represents '#pragma omp declare reduction ...' directive.

This represents '#pragma omp requires...' directive.

This represents '#pragma omp threadprivate ...' directive.

ObjCEncodeExpr, used for @encode in Objective-C.

ObjCImplementationDecl - Represents a class definition - this is where method definitions are specifi...

The basic abstraction for the target Objective-C runtime.

PreprocessorOptions - This class is used for passing the various options used in preprocessor initial...

ExclusionType

Represents if an how something should be excluded from profiling.

A (possibly-)qualified type.

Represents a struct/union/class.

Encodes a location in the source.

Stmt - This represents one statement.

StringLiteral - This represents a string literal expression, e.g.

Represents the declaration of a struct/union/class/enum.

Exposes information about the current target.

A template parameter object.

A declaration that models statements at global scope.

The base class of the type hierarchy.

CXXRecordDecl * getAsCXXRecordDecl() const

Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...

UnaryOperator - This represents the unary-expression's (except sizeof and alignof),...

An artificial decl, representing a global anonymous constant value which is uniquified by value withi...

Represent the declaration of a variable (in which case it is an lvalue) a function (in which case it ...

Represents a variable declaration or definition.

Defines the clang::TargetInfo interface.

@ Decl

The l-value was an access to a declared entity or something equivalently strong, like the address of ...

const internal::VariadicAllOfMatcher< Type > type

Matches Types in the clang AST.

The JSON file list parser is used to communicate input to InstallAPI.

GVALinkage

A more specific kind of linkage than enum Linkage.

Linkage

Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have.

@ Module

Module linkage, which indicates that the entity can be referred to from other translation units withi...

@ Result

The result type of a method or function.

LangAS

Defines the address space values used by the address space qualifier of QualType.

const FunctionProtoType * T

CallingConv

CallingConv - Specifies the calling convention that a function uses.

@ Class

The "class" keyword introduces the elaborated-type-specifier.

Visibility

Describes the different kinds of visibility that a declaration may have.

@ HiddenVisibility

Objects with "hidden" visibility are not seen by the dynamic linker.

@ ProtectedVisibility

Objects with "protected" visibility are seen by the dynamic linker but always dynamically resolve to ...

@ DefaultVisibility

Objects with "default" visibility are seen by the dynamic linker and act like normal objects.

Diagnostic wrappers for TextAPI types for error reporting.

llvm::Constant * Initializer

Structor(int Priority, unsigned LexOrder, llvm::Constant *Initializer, llvm::Constant *AssociatedData)

llvm::Constant * AssociatedData

This structure provides a set of types that are commonly used during IR emission.

llvm::Function * objc_retainAutoreleasedReturnValue

id objc_retainAutoreleasedReturnValue(id);

llvm::Function * objc_retainAutoreleaseReturnValue

id objc_retainAutoreleaseReturnValue(id);

llvm::FunctionCallee objc_alloc

void objc_alloc(id);

llvm::Function * objc_retain

id objc_retain(id);

llvm::FunctionCallee objc_alloc_init

void objc_alloc_init(id);

llvm::Function * objc_autorelease

id objc_autorelease(id);

llvm::Function * objc_moveWeak

void objc_moveWeak(id *dest, id *src);

llvm::FunctionCallee objc_autoreleasePoolPopInvoke

void objc_autoreleasePoolPop(void*); Note this method is used when we are using exception handling

llvm::InlineAsm * retainAutoreleasedReturnValueMarker

A void(void) inline asm to use to mark that the return value of a call will be immediately retain.

llvm::Function * clang_arc_use

void clang.arc.use(...);

llvm::Function * objc_initWeak

id objc_initWeak(id*, id);

llvm::FunctionCallee objc_retainRuntimeFunction

id objc_retain(id); Note this is the runtime method not the intrinsic.

llvm::Function * objc_copyWeak

void objc_copyWeak(id *dest, id *src);

llvm::Function * objc_destroyWeak

void objc_destroyWeak(id*);

llvm::Function * objc_retainAutorelease

id objc_retainAutorelease(id);

llvm::Function * objc_autoreleasePoolPush

void *objc_autoreleasePoolPush(void);

llvm::Function * objc_retainBlock

id objc_retainBlock(id);

llvm::Function * objc_storeStrong

void objc_storeStrong(id*, id);

llvm::Function * objc_loadWeak

id objc_loadWeak(id*);

llvm::Function * clang_arc_noop_use

void clang.arc.noop.use(...);

llvm::Function * objc_loadWeakRetained

id objc_loadWeakRetained(id*);

llvm::Function * objc_release

void objc_release(id);

llvm::FunctionCallee objc_autoreleaseRuntimeFunction

id objc_autorelease(id); Note this is the runtime method not the intrinsic.

llvm::Function * objc_autoreleaseReturnValue

id objc_autoreleaseReturnValue(id);

llvm::FunctionCallee objc_releaseRuntimeFunction

void objc_release(id); Note this is the runtime method not the intrinsic.

llvm::FunctionCallee objc_allocWithZone

void objc_allocWithZone(id);

llvm::FunctionCallee objc_autoreleasePoolPop

void objc_autoreleasePoolPop(void*);

llvm::Function * objc_storeWeak

id objc_storeWeak(id*, id);

llvm::Function * objc_unsafeClaimAutoreleasedReturnValue

id objc_unsafeClaimAutoreleasedReturnValue(id);

bool operator<(const OrderGlobalInitsOrStermFinalizers &RHS) const

bool operator==(const OrderGlobalInitsOrStermFinalizers &RHS) const

OrderGlobalInitsOrStermFinalizers(unsigned int p, unsigned int l)

static TBAAAccessInfo getMayAliasInfo()


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4