clang
3.9.0
|
Namespaces | |
swiftcall | |
Classes | |
class | ABIArgInfo |
ABIArgInfo - Helper class to encapsulate information about how a specific C type should be passed to or returned from a function. More... | |
class | RequiredArgs |
A class for recording the number of arguments that a function signature requires. More... | |
struct | CGFunctionInfoArgInfo |
class | CGFunctionInfo |
CGFunctionInfo - Class to encapsulate the information about a function definition. More... | |
class | CGCalleeInfo |
CGCalleeInfo - Class to encapsulate the information about a callee to be used during the generation of call/invoke instructions. More... | |
class | ABIInfo |
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions. More... | |
class | SwiftABIInfo |
A refining implementation of ABIInfo for targets that support swiftcall. More... | |
class | Address |
An aligned address. More... | |
class | ConstantAddress |
A specialization of Address that requires the address to be an LLVM Constant. More... | |
class | BlockFlags |
class | BlockFieldFlags |
class | BlockByrefInfo |
Information about the layout of a __block variable. More... | |
class | CGBlockInfo |
CGBlockInfo - Information to generate a block literal. More... | |
class | CGBuilderInserter |
This is an IRBuilder insertion helper that forwards to CodeGenFunction::InsertHelper, which adds necessary metadata to instructions. More... | |
class | CGBuilderTy |
struct | CallArg |
class | CallArgList |
CallArgList - Type for representing both the value and type of arguments in a call. More... | |
class | FunctionArgList |
FunctionArgList - Type for representing both the decl and type of parameters to a function. More... | |
class | ReturnValueSlot |
ReturnValueSlot - Contains the address where the return value of a function can be stored, and whether the address is volatile or not. More... | |
struct | CatchTypeInfo |
The MS C++ ABI needs a pointer to RTTI data plus some flags to describe the type of a catch handler, so we use this wrapper. More... | |
class | EHScope |
A protected scope for zero-cost EH handling. More... | |
class | EHCatchScope |
A scope which attempts to handle some, possibly all, types of exceptions. More... | |
struct | ExtInfo |
Extra information required for cleanups that have resolved branches through them. More... | |
class | EHFilterScope |
An exceptions scope which filters exceptions thrown through it. More... | |
class | EHTerminateScope |
An exceptions scope which calls std::terminate if any exception reaches it. More... | |
class | EHPadEndScope |
struct | EHPersonality |
The exceptions personality for a function. More... | |
class | CGCUDARuntime |
class | CGCXXABI |
Implements C++ ABI-specific code generation functions. More... | |
class | CGDebugInfo |
This class gathers all debug information during compilation and is responsible for emitting to llvm globals or pass directly to the backend. More... | |
class | ApplyDebugLocation |
A scoped helper to set the current debug location to the specified location or preferred location of the specified Expr. More... | |
struct | LoopAttributes |
Attributes that may be specified on loops. More... | |
class | LoopInfo |
Information used when generating a structured loop. More... | |
class | LoopInfoStack |
A stack of loop information corresponding to loop nesting levels. More... | |
class | CGObjCRuntime |
Implements runtime-specific code generation functions. More... | |
class | CGOpenCLRuntime |
class | PrePostActionTy |
A basic class for pre|post-action for advanced codegen sequence for OpenMP region. More... | |
class | RegionCodeGenTy |
Class provides a way to call simple version of codegen for OpenMP region, or an advanced with possible pre|post-actions in codegen. More... | |
struct | OMPTaskDataTy |
class | CGOpenMPRuntime |
class | OffloadEntriesInfoManagerTy |
Entity that registers the offloading constants that were emitted so far. More... | |
struct | TaskResultTy |
class | CGOpenMPRuntimeNVPTX |
struct | CGBitFieldInfo |
Structure with information about how a bitfield should be accessed. More... | |
class | CGRecordLayout |
CGRecordLayout - This class handles struct and union layout info while lowering AST types to LLVM types. More... | |
class | RValue |
RValue - This trivial value class is used to represent the result of an expression that is evaluated. More... | |
class | LValue |
LValue - This represents an lvalue references. More... | |
class | AggValueSlot |
An aggregate value slot. More... | |
class | CodeGenVTables |
class | CodeGenFunction |
CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code. More... | |
struct | DominatingLLVMValue |
Helper class with most of the code for saving a value for a conditional expression cleanup. More... | |
struct | DominatingPointer< T, true > |
A partial specialization of DominatingValue for llvm::Values that might be llvm::Instructions. More... | |
struct | DominatingValue< Address > |
A specialization of DominatingValue for Address. More... | |
struct | DominatingValue< RValue > |
A specialization of DominatingValue for RValue. More... | |
struct | OrderGlobalInits |
struct | ObjCEntrypoints |
class | InstrProfStats |
This class records statistics on instrumentation based profiling. More... | |
class | BlockByrefHelpers |
A pair of helper functions for a __block variable. More... | |
class | CodeGenModule |
This class organizes the cross-function state that is used while generating LLVM code. More... | |
class | CodeGenPGO |
Per-function PGO state. More... | |
struct | TBAAPathTag |
class | CodeGenTBAA |
CodeGenTBAA - This class organizes the cross-module state that is used while lowering AST types to LLVM types. More... | |
struct | CodeGenTypeCache |
This structure provides a set of types that are commonly used during IR emission. More... | |
class | CodeGenTypes |
This class organizes the cross-module state that is used while lowering AST types to LLVM types. More... | |
class | CoverageMappingModuleGen |
Organizes the cross-function state that is used while generating code coverage mapping data. More... | |
class | CoverageMappingGen |
Organizes the per-function state that is used while generating code coverage mapping data. More... | |
struct | BranchFixup |
A branch fixup. More... | |
struct | InvariantValue |
struct | DominatingValue |
A metaprogramming class for ensuring that a value will dominate an arbitrary position in a function. More... | |
struct | DominatingPointer |
struct | DominatingPointer< T, false > |
struct | DominatingValue< T * > |
class | EHScopeStack |
A stack of scopes which respond to exceptions, including cleanups and catch blocks. More... | |
class | SanitizerMetadata |
class | TargetCodeGenInfo |
TargetCodeGenInfo - This class organizes various target-specific codegeneration issues, like target-specific attributes, builtins and so on. More... | |
Typedefs | |
typedef CGBuilderInserter | CGBuilderInserterTy |
typedef llvm::IRBuilder < llvm::ConstantFolder, CGBuilderInserterTy > | CGBuilderBaseTy |
typedef SmallVector < llvm::AttributeSet, 8 > | AttributeListType |
Functions | |
const CGFunctionInfo & | arrangeObjCMessageSendSignature (CodeGenModule &CGM, const ObjCMethodDecl *MD, QualType receiverType) |
const CGFunctionInfo & | arrangeFreeFunctionType (CodeGenModule &CGM, CanQual< FunctionProtoType > Ty, const FunctionDecl *FD) |
const CGFunctionInfo & | arrangeFreeFunctionType (CodeGenModule &CGM, CanQual< FunctionNoProtoType > Ty) |
const CGFunctionInfo & | arrangeCXXMethodType (CodeGenModule &CGM, const CXXRecordDecl *RD, const FunctionProtoType *FTP, const CXXMethodDecl *MD) |
const CGFunctionInfo & | arrangeFreeFunctionCall (CodeGenModule &CGM, CanQualType returnType, ArrayRef< CanQualType > argTypes, FunctionType::ExtInfo info, RequiredArgs args) |
BlockFlags | operator| (BlockLiteralFlags l, BlockLiteralFlags r) |
BlockFieldFlags | operator| (BlockFieldFlag_t l, BlockFieldFlag_t r) |
struct ExtInfo & | getExtInfo () |
static size_t | getSizeForCleanupSize (size_t Size) |
Gets the size required for a lazy cleanup scope with the given cleanup-data requirements. More... | |
size_t | getAllocatedSize () const |
EHCleanupScope (bool isNormal, bool isEH, bool isActive, unsigned cleanupSize, unsigned fixupDepth, EHScopeStack::stable_iterator enclosingNormal, EHScopeStack::stable_iterator enclosingEH) | |
void | Destroy () |
~EHCleanupScope ()=delete | |
bool | isNormalCleanup () const |
llvm::BasicBlock * | getNormalBlock () const |
void | setNormalBlock (llvm::BasicBlock *BB) |
bool | isEHCleanup () const |
bool | isActive () const |
void | setActive (bool A) |
bool | isLifetimeMarker () const |
void | setLifetimeMarker () |
bool | hasActiveFlag () const |
Address | getActiveFlag () const |
void | setActiveFlag (Address Var) |
void | setTestFlagInNormalCleanup () |
bool | shouldTestFlagInNormalCleanup () const |
void | setTestFlagInEHCleanup () |
bool | shouldTestFlagInEHCleanup () const |
unsigned | getFixupDepth () const |
EHScopeStack::stable_iterator | getEnclosingNormalCleanup () const |
size_t | getCleanupSize () const |
void * | getCleanupBuffer () |
EHScopeStack::Cleanup * | getCleanup () |
bool | hasBranches () const |
True if this cleanup scope has any branch-afters or branch-throughs. More... | |
void | addBranchAfter (llvm::ConstantInt *Index, llvm::BasicBlock *Block) |
Add a branch-after to this cleanup scope. More... | |
unsigned | getNumBranchAfters () const |
Return the number of unique branch-afters on this scope. More... | |
llvm::BasicBlock * | getBranchAfterBlock (unsigned I) const |
llvm::ConstantInt * | getBranchAfterIndex (unsigned I) const |
bool | addBranchThrough (llvm::BasicBlock *Block) |
Add a branch-through to this cleanup scope. More... | |
bool | hasBranchThroughs () const |
Determines if this cleanup scope has any branch throughs. More... | |
static bool | classof (const EHScope *Scope) |
CGCUDARuntime * | CreateNVCUDARuntime (CodeGenModule &CGM) |
Creates an instance of a CUDA runtime class. More... | |
CGCXXABI * | CreateItaniumCXXABI (CodeGenModule &CGM) |
Creates an Itanium-family ABI. More... | |
CGCXXABI * | CreateMicrosoftCXXABI (CodeGenModule &CGM) |
Creates a Microsoft-family ABI. More... | |
CGObjCRuntime * | CreateGNUObjCRuntime (CodeGenModule &CGM) |
Creates an instance of an Objective-C runtime class. More... | |
CGObjCRuntime * | CreateMacObjCRuntime (CodeGenModule &CGM) |
llvm::Function * | createOffloadingBinaryDescriptorRegistration () |
Creates and registers offloading binary descriptor for the current compilation unit. More... | |
void | createOffloadEntriesAndInfoMetadata () |
Creates all the offload entries in the current compilation unit along with the associated metadata. More... | |
void | loadOffloadInfoMetadata () |
Loads all the offload entries information from the host IR metadata. More... | |
QualType | getTgtOffloadEntryQTy () |
Returns __tgt_offload_entry type. More... | |
QualType | getTgtDeviceImageQTy () |
Returns __tgt_device_image type. More... | |
QualType | getTgtBinaryDescriptorQTy () |
Returns __tgt_bin_desc type. More... | |
void | scanForTargetRegionsFunctions (const Stmt *S, StringRef ParentName) |
Start scanning from statement S and and emit all target regions found along the way. More... | |
void | emitKmpRoutineEntryT (QualType KmpInt32Ty) |
Build type kmp_routine_entry_t (if not built yet). More... | |
llvm::Value * | emitUpdateLocation (CodeGenFunction &CGF, SourceLocation Loc, unsigned Flags=0) |
Emits object of ident_t type with info for source location. More... | |
llvm::Type * | getIdentTyPointerTy () |
Returns pointer to ident_t type. More... | |
llvm::Type * | getKmpc_MicroPointerTy () |
Returns pointer to kmpc_micro type. More... | |
llvm::Constant * | createRuntimeFunction (unsigned Function) |
Returns specified OpenMP runtime function. More... | |
llvm::Constant * | createForStaticInitFunction (unsigned IVSize, bool IVSigned) |
Returns __kmpc_for_static_init_* runtime function for the specified size IVSize and sign IVSigned. More... | |
llvm::Constant * | createDispatchInitFunction (unsigned IVSize, bool IVSigned) |
Returns __kmpc_dispatch_init_* runtime function for the specified size IVSize and sign IVSigned. More... | |
llvm::Constant * | createDispatchNextFunction (unsigned IVSize, bool IVSigned) |
Returns __kmpc_dispatch_next_* runtime function for the specified size IVSize and sign IVSigned. More... | |
llvm::Constant * | createDispatchFiniFunction (unsigned IVSize, bool IVSigned) |
Returns __kmpc_dispatch_fini_* runtime function for the specified size IVSize and sign IVSigned. More... | |
llvm::Constant * | getOrCreateThreadPrivateCache (const VarDecl *VD) |
If the specified mangled name is not in the module, create and return threadprivate cache object. More... | |
virtual Address | emitThreadIDAddress (CodeGenFunction &CGF, SourceLocation Loc) |
Emits address of the word in a memory where current thread id is stored. More... | |
llvm::Value * | getThreadID (CodeGenFunction &CGF, SourceLocation Loc) |
Gets thread id value for the current thread. More... | |
llvm::Constant * | getOrCreateInternalVariable (llvm::Type *Ty, const llvm::Twine &Name) |
Gets (if variable with the given name already exist) or creates internal global variable with the specified Name. More... | |
void | emitThreadPrivateVarInit (CodeGenFunction &CGF, Address VDAddr, llvm::Value *Ctor, llvm::Value *CopyCtor, llvm::Value *Dtor, SourceLocation Loc) |
Emits initialization code for the threadprivate variables. More... | |
llvm::Value * | getCriticalRegionLock (StringRef CriticalName) |
Returns corresponding lock object for the specified critical region name. More... | |
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param Data Additional data for task generation like final list of privates etc *TaskResultTy | emitTaskInit (CodeGenFunction &CGF, SourceLocation Loc, const OMPExecutableDirective &D, llvm::Value *TaskFunction, QualType SharedsTy, Address Shareds, const OMPTaskDataTy &Data) |
CGOpenMPRuntime (CodeGenModule &CGM) | |
virtual | ~CGOpenMPRuntime () |
virtual void | clear () |
virtual void | emitUserDefinedReduction (CodeGenFunction *CGF, const OMPDeclareReductionDecl *D) |
Emit code for the specified user defined reduction construct. More... | |
virtual std::pair < llvm::Function *, llvm::Function * > | getUserDefinedReduction (const OMPDeclareReductionDecl *D) |
Get combiner/initializer for the specified user-defined reduction, if any. More... | |
virtual llvm::Value * | emitParallelOrTeamsOutlinedFunction (const OMPExecutableDirective &D, const VarDecl *ThreadIDVar, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen) |
Emits outlined function for the specified OpenMP parallel directive D. More... | |
virtual llvm::Value * | emitTaskOutlinedFunction (const OMPExecutableDirective &D, const VarDecl *ThreadIDVar, const VarDecl *PartIDVar, const VarDecl *TaskTVar, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen, bool Tied, unsigned &NumberOfParts) |
Emits outlined function for the OpenMP task directive D. More... | |
void | functionFinished (CodeGenFunction &CGF) |
Cleans up references to the objects in finished function. More... | |
virtual void | emitParallelCall (CodeGenFunction &CGF, SourceLocation Loc, llvm::Value *OutlinedFn, ArrayRef< llvm::Value * > CapturedVars, const Expr *IfCond) |
Emits code for parallel or serial call of the OutlinedFn with variables captured in a record which address is stored in CapturedStruct. More... | |
virtual void | emitCriticalRegion (CodeGenFunction &CGF, StringRef CriticalName, const RegionCodeGenTy &CriticalOpGen, SourceLocation Loc, const Expr *Hint=nullptr) |
Emits a critical region. More... | |
virtual void | emitMasterRegion (CodeGenFunction &CGF, const RegionCodeGenTy &MasterOpGen, SourceLocation Loc) |
Emits a master region. More... | |
virtual void | emitTaskyieldCall (CodeGenFunction &CGF, SourceLocation Loc) |
Emits code for a taskyield directive. More... | |
virtual void | emitTaskgroupRegion (CodeGenFunction &CGF, const RegionCodeGenTy &TaskgroupOpGen, SourceLocation Loc) |
Emit a taskgroup region. More... | |
virtual void | emitSingleRegion (CodeGenFunction &CGF, const RegionCodeGenTy &SingleOpGen, SourceLocation Loc, ArrayRef< const Expr * > CopyprivateVars, ArrayRef< const Expr * > DestExprs, ArrayRef< const Expr * > SrcExprs, ArrayRef< const Expr * > AssignmentOps) |
Emits a single region. More... | |
virtual void | emitOrderedRegion (CodeGenFunction &CGF, const RegionCodeGenTy &OrderedOpGen, SourceLocation Loc, bool IsThreads) |
Emit an ordered region. More... | |
virtual void | emitBarrierCall (CodeGenFunction &CGF, SourceLocation Loc, OpenMPDirectiveKind Kind, bool EmitChecks=true, bool ForceSimpleCall=false) |
Emit an implicit/explicit barrier for OpenMP threads. More... | |
virtual bool | isStaticNonchunked (OpenMPScheduleClauseKind ScheduleKind, bool Chunked) const |
Check if the specified ScheduleKind is static non-chunked. More... | |
virtual bool | isStaticNonchunked (OpenMPDistScheduleClauseKind ScheduleKind, bool Chunked) const |
Check if the specified ScheduleKind is static non-chunked. More... | |
virtual bool | isDynamic (OpenMPScheduleClauseKind ScheduleKind) const |
Check if the specified ScheduleKind is dynamic. More... | |
virtual void | emitForDispatchInit (CodeGenFunction &CGF, SourceLocation Loc, const OpenMPScheduleTy &ScheduleKind, unsigned IVSize, bool IVSigned, bool Ordered, llvm::Value *UB, llvm::Value *Chunk=nullptr) |
virtual void | emitForStaticInit (CodeGenFunction &CGF, SourceLocation Loc, const OpenMPScheduleTy &ScheduleKind, unsigned IVSize, bool IVSigned, bool Ordered, Address IL, Address LB, Address UB, Address ST, llvm::Value *Chunk=nullptr) |
Call the appropriate runtime routine to initialize it before start of loop. More... | |
virtual void | emitDistributeStaticInit (CodeGenFunction &CGF, SourceLocation Loc, OpenMPDistScheduleClauseKind SchedKind, unsigned IVSize, bool IVSigned, bool Ordered, Address IL, Address LB, Address UB, Address ST, llvm::Value *Chunk=nullptr) |
virtual void | emitForOrderedIterationEnd (CodeGenFunction &CGF, SourceLocation Loc, unsigned IVSize, bool IVSigned) |
Call the appropriate runtime routine to notify that we finished iteration of the ordered loop with the dynamic scheduling. More... | |
virtual void | emitForStaticFinish (CodeGenFunction &CGF, SourceLocation Loc) |
Call the appropriate runtime routine to notify that we finished all the work with current loop. More... | |
virtual llvm::Value * | emitForNext (CodeGenFunction &CGF, SourceLocation Loc, unsigned IVSize, bool IVSigned, Address IL, Address LB, Address UB, Address ST) |
Call __kmpc_dispatch_next( ident_t *loc, kmp_int32 tid, kmp_int32 *p_lastiter, kmp_int[32|64] *p_lower, kmp_int[32|64] *p_upper, kmp_int[32|64] *p_stride);. More... | |
virtual void | emitNumThreadsClause (CodeGenFunction &CGF, llvm::Value *NumThreads, SourceLocation Loc) |
Emits call to void __kmpc_push_num_threads(ident_t *loc, kmp_int32 global_tid, kmp_int32 num_threads) to generate code for 'num_threads' clause. More... | |
virtual void | emitProcBindClause (CodeGenFunction &CGF, OpenMPProcBindClauseKind ProcBind, SourceLocation Loc) |
Emit call to void __kmpc_push_proc_bind(ident_t *loc, kmp_int32 global_tid, int proc_bind) to generate code for 'proc_bind' clause. More... | |
virtual Address | getAddrOfThreadPrivate (CodeGenFunction &CGF, const VarDecl *VD, Address VDAddr, SourceLocation Loc) |
Returns address of the threadprivate variable for the current thread. More... | |
virtual llvm::Function * | emitThreadPrivateVarDefinition (const VarDecl *VD, Address VDAddr, SourceLocation Loc, bool PerformInit, CodeGenFunction *CGF=nullptr) |
Emit a code for initialization of threadprivate variable. More... | |
virtual void | emitFlush (CodeGenFunction &CGF, ArrayRef< const Expr * > Vars, SourceLocation Loc) |
Emit flush of the variables specified in 'omp flush' directive. More... | |
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param IfCond Not a nullptr if if clause was nullptr *otherwise *param Data Additional data for task generation like final list of privates etc *virtual void | emitTaskCall (CodeGenFunction &CGF, SourceLocation Loc, const OMPExecutableDirective &D, llvm::Value *TaskFunction, QualType SharedsTy, Address Shareds, const Expr *IfCond, const OMPTaskDataTy &Data) |
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param IfCond Not a nullptr if if clause was nullptr *otherwise *param Data Additional data for task generation like final list of privates etc *virtual void | emitTaskLoopCall (CodeGenFunction &CGF, SourceLocation Loc, const OMPLoopDirective &D, llvm::Value *TaskFunction, QualType SharedsTy, Address Shareds, const Expr *IfCond, const OMPTaskDataTy &Data) |
virtual void | emitInlinedDirective (CodeGenFunction &CGF, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen, bool HasCancel=false) |
Emit code for the directive that does not require outlining. More... | |
virtual void | emitReduction (CodeGenFunction &CGF, SourceLocation Loc, ArrayRef< const Expr * > Privates, ArrayRef< const Expr * > LHSExprs, ArrayRef< const Expr * > RHSExprs, ArrayRef< const Expr * > ReductionOps, bool WithNowait, bool SimpleReduction) |
Emit a code for reduction clause. More... | |
virtual void | emitTaskwaitCall (CodeGenFunction &CGF, SourceLocation Loc) |
Emit code for 'taskwait' directive. More... | |
virtual void | emitCancellationPointCall (CodeGenFunction &CGF, SourceLocation Loc, OpenMPDirectiveKind CancelRegion) |
Emit code for 'cancellation point' construct. More... | |
virtual void | emitCancelCall (CodeGenFunction &CGF, SourceLocation Loc, const Expr *IfCond, OpenMPDirectiveKind CancelRegion) |
Emit code for 'cancel' construct. More... | |
virtual void | emitTargetOutlinedFunction (const OMPExecutableDirective &D, StringRef ParentName, llvm::Function *&OutlinedFn, llvm::Constant *&OutlinedFnID, bool IsOffloadEntry, const RegionCodeGenTy &CodeGen) |
Emit outilined function for 'target' directive. More... | |
virtual void | emitTargetCall (CodeGenFunction &CGF, const OMPExecutableDirective &D, llvm::Value *OutlinedFn, llvm::Value *OutlinedFnID, const Expr *IfCond, const Expr *Device, ArrayRef< llvm::Value * > CapturedVars) |
Emit the target offloading code associated with D. More... | |
virtual bool | emitTargetFunctions (GlobalDecl GD) |
Emit the target regions enclosed in GD function definition or the function itself in case it is a valid device function. More... | |
virtual bool | emitTargetGlobalVariable (GlobalDecl GD) |
Emit the global variable if it is a valid device global variable. More... | |
virtual bool | emitTargetGlobal (GlobalDecl GD) |
Emit the global GD if it is meaningful for the target. More... | |
virtual llvm::Function * | emitRegistrationFunction () |
Creates the offloading descriptor in the event any target region was emitted in the current module and return the function that registers it. More... | |
virtual void | emitTeamsCall (CodeGenFunction &CGF, const OMPExecutableDirective &D, SourceLocation Loc, llvm::Value *OutlinedFn, ArrayRef< llvm::Value * > CapturedVars) |
Emits code for teams call of the OutlinedFn with variables captured in a record which address is stored in CapturedStruct. More... | |
virtual void | emitNumTeamsClause (CodeGenFunction &CGF, const Expr *NumTeams, const Expr *ThreadLimit, SourceLocation Loc) |
Emits call to void __kmpc_push_num_teams(ident_t *loc, kmp_int32 global_tid, kmp_int32 num_teams, kmp_int32 thread_limit) to generate code for num_teams clause. More... | |
virtual void | emitTargetDataCalls (CodeGenFunction &CGF, const OMPExecutableDirective &D, const Expr *IfCond, const Expr *Device, const RegionCodeGenTy &CodeGen) |
Emit the target data mapping code associated with D. More... | |
virtual void | emitTargetDataStandAloneCall (CodeGenFunction &CGF, const OMPExecutableDirective &D, const Expr *IfCond, const Expr *Device) |
Emit the data mapping/movement code associated with the directive D that should be of the form 'target [{enter|exit} data | update]'. More... | |
virtual void | emitDeclareSimdFunction (const FunctionDecl *FD, llvm::Function *Fn) |
Marks function Fn with properly mangled versions of vector functions. More... | |
virtual void | emitDoacrossInit (CodeGenFunction &CGF, const OMPLoopDirective &D) |
Emit initialization for doacross loop nesting support. More... | |
virtual void | emitDoacrossOrdered (CodeGenFunction &CGF, const OMPDependClause *C) |
Emit code for doacross ordered directive with 'depend' clause. More... | |
static AlignmentSource | getFieldAlignmentSource (AlignmentSource Source) |
Given that the base address has the given alignment source, what's our confidence in the alignment of the field? More... | |
CXXCtorType | toCXXCtorType (StructorType T) |
StructorType | getFromCtorType (CXXCtorType T) |
CXXDtorType | toCXXDtorType (StructorType T) |
StructorType | getFromDtorType (CXXDtorType T) |
Variables | |
class LLVM_ALIGNAS(8) EHCleanupScope EHScopeStack::stable_iterator | EnclosingEH |
A cleanup scope which generates the cleanup blocks lazily. More... | |
llvm::BasicBlock * | NormalBlock |
The dual entry/exit block along the normal edge. More... | |
llvm::AllocaInst * | ActiveFlag |
An optional i1 variable indicating whether this cleanup has been activated yet. More... | |
struct ExtInfo * | ExtInfo |
unsigned | FixupDepth |
The number of fixups required by enclosing scopes (not including this one). More... | |
class clang::CodeGen::CGOpenMPRuntime | kmp_task_t |
*QualType | KmpTaskTQTy |
QualType | KmpDependInfoTy |
Type typedef struct kmp_depend_info { kmp_intptr_t base_addr; size_t len; struct { bool in:1; bool out:1; } flags; } kmp_depend_info_t;. More... | |
QualType | KmpDimTy |
struct kmp_dim { // loop bounds info casted to kmp_int64 kmp_int64 lo; // lower kmp_int64 up; // upper kmp_int64 st; // stride }; More... | |
QualType | TgtOffloadEntryQTy |
Type struct __tgt_offload_entry{ void *addr; // Pointer to the offload entry info. More... | |
QualType | TgtDeviceImageQTy |
struct __tgt_device_image{ void *ImageStart; // Pointer to the target code start. More... | |
QualType | TgtBinaryDescriptorQTy |
struct __tgt_bin_desc{ int32_t NumDevices; // Number of devices supported. More... | |
OffloadEntriesInfoManagerTy | OffloadEntriesInfoManager |
llvm::SmallPtrSet< const VarDecl *, 4 > | ThreadPrivateWithDefinition |
Set of threadprivate variables with the generated initializer. More... | |
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param Data Additional data for task generation like | tiednsee |
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param Data Additional data for task generation like final * | state |
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param IfCond Not a nullptr if if clause was | specified |
typedef SmallVector<llvm::AttributeSet, 8> clang::CodeGen::AttributeListType |
typedef llvm::IRBuilder<llvm::ConstantFolder, CGBuilderInserterTy> clang::CodeGen::CGBuilderBaseTy |
Definition at line 43 of file CGBuilder.h.
Definition at line 40 of file CGBuilder.h.
|
strong |
The source of the alignment of an l-value; an expression of confidence in the alignment actually matching the estimate.
Definition at line 50 of file CGBlocks.h.
Enumerator | |
---|---|
BLOCK_FIELD_IS_OBJECT | |
BLOCK_FIELD_IS_BLOCK | |
BLOCK_FIELD_IS_BYREF | |
BLOCK_FIELD_IS_WEAK | |
BLOCK_FIELD_IS_ARC | |
BLOCK_BYREF_CALLER | |
BLOCK_BYREF_CURRENT_MAX |
Definition at line 98 of file CGBlocks.h.
Enumerator | |
---|---|
BLOCK_HAS_COPY_DISPOSE | |
BLOCK_HAS_CXX_OBJ | |
BLOCK_IS_GLOBAL | |
BLOCK_USE_STRET | |
BLOCK_HAS_SIGNATURE | |
BLOCK_HAS_EXTENDED_LAYOUT |
Definition at line 60 of file CGBlocks.h.
Definition at line 78 of file EHScopeStack.h.
|
strong |
Enumerator | |
---|---|
Complete | |
Base | |
Deleting |
Definition at line 59 of file CodeGenTypes.h.
The kind of evaluation to perform on values of a particular type.
Basically, is the code in CGExprScalar, CGExprComplex, or CGExprAgg?
TODO: should vectors maybe be split out into their own thing?
Enumerator | |
---|---|
TEK_Scalar | |
TEK_Complex | |
TEK_Aggregate |
Definition at line 97 of file CodeGenFunction.h.
void clang::CodeGen::addBranchAfter | ( | llvm::ConstantInt * | Index, |
llvm::BasicBlock * | Block | ||
) |
Add a branch-after to this cleanup scope.
A branch-after is a branch from a point protected by this (normal) cleanup to a point in the normal cleanup scope immediately containing it. For example, for (;;) { A a; break; } contains a branch-after.
Branch-afters each have their own destination out of the cleanup, guaranteed distinct from anything else threaded through it. Therefore branch-afters usually force a switch after the cleanup.
Definition at line 373 of file CGCleanup.h.
References clang::CodeGen::ExtInfo::BranchAfters, clang::CodeGen::ExtInfo::Branches, and getExtInfo().
bool clang::CodeGen::addBranchThrough | ( | llvm::BasicBlock * | Block | ) |
Add a branch-through to this cleanup scope.
A branch-through is a branch from a scope protected by this (normal) cleanup to an enclosing scope other than the immediately-enclosing normal cleanup scope.
In the following example, the branch through B's scope is a branch-through, while the branch through A's scope is a branch-after: for (;;) { A a; B b; break; }
All branch-throughs have a common destination out of the cleanup, one possibly shared with the fall-through. Therefore branch-throughs usually don't force a switch after the cleanup.
Definition at line 410 of file CGCleanup.h.
References clang::CodeGen::ExtInfo::Branches, and getExtInfo().
const CGFunctionInfo & clang::CodeGen::arrangeCXXMethodType | ( | CodeGenModule & | CGM, |
const CXXRecordDecl * | RD, | ||
const FunctionProtoType * | FTP, | ||
const CXXMethodDecl * | MD | ||
) |
Definition at line 50 of file CodeGenABITypes.cpp.
References clang::CodeGen::CodeGenTypes::arrangeCXXMethodType(), and clang::CodeGen::CodeGenModule::getTypes().
const CGFunctionInfo & clang::CodeGen::arrangeFreeFunctionCall | ( | CodeGenModule & | CGM, |
CanQualType | returnType, | ||
ArrayRef< CanQualType > | argTypes, | ||
FunctionType::ExtInfo | info, | ||
RequiredArgs | args | ||
) |
Definition at line 58 of file CodeGenABITypes.cpp.
References clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), and clang::CodeGen::CodeGenModule::getTypes().
const CGFunctionInfo & clang::CodeGen::arrangeFreeFunctionType | ( | CodeGenModule & | CGM, |
CanQual< FunctionProtoType > | Ty, | ||
const FunctionDecl * | FD | ||
) |
Definition at line 37 of file CodeGenABITypes.cpp.
References clang::CodeGen::CodeGenTypes::arrangeFreeFunctionType(), and clang::CodeGen::CodeGenModule::getTypes().
const CGFunctionInfo & clang::CodeGen::arrangeFreeFunctionType | ( | CodeGenModule & | CGM, |
CanQual< FunctionNoProtoType > | Ty | ||
) |
Definition at line 44 of file CodeGenABITypes.cpp.
References clang::CodeGen::CodeGenTypes::arrangeFreeFunctionType(), and clang::CodeGen::CodeGenModule::getTypes().
const CGFunctionInfo & clang::CodeGen::arrangeObjCMessageSendSignature | ( | CodeGenModule & | CGM, |
const ObjCMethodDecl * | MD, | ||
QualType | receiverType | ||
) |
Definition at line 30 of file CodeGenABITypes.cpp.
References clang::CodeGen::CodeGenTypes::arrangeObjCMessageSendSignature(), and clang::CodeGen::CodeGenModule::getTypes().
|
explicit |
Definition at line 723 of file CGOpenMPRuntime.cpp.
References clang::serialized_diags::create(), clang::CodeGen::CodeGenTypeCache::Int32Ty, clang::CodeGen::CodeGenTypeCache::Int8PtrTy, and loadOffloadInfoMetadata().
|
static |
Definition at line 420 of file CGCleanup.h.
References clang::CodeGen::EHScope::getKind().
|
virtual |
Referenced by clang::CXXBasePath::clear(), clang::MacroArgs::destroy(), clang::serialization::MultiOnDiskHashTable< clang::serialization::reader::ASTDeclContextNameLookupTrait >::operator=(), and clang::serialization::MultiOnDiskHashTable< clang::serialization::reader::ASTDeclContextNameLookupTrait >::~MultiOnDiskHashTable().
Returns __kmpc_dispatch_fini_* runtime function for the specified size IVSize and sign IVSigned.
Definition at line 1684 of file CGOpenMPRuntime.cpp.
References getIdentTyPointerTy(), and clang::Name.
Referenced by emitForOrderedIterationEnd().
Returns __kmpc_dispatch_init_* runtime function for the specified size IVSize and sign IVSigned.
Definition at line 1662 of file CGOpenMPRuntime.cpp.
References getIdentTyPointerTy(), and clang::Name.
Referenced by emitForDispatchInit().
Returns __kmpc_dispatch_next_* runtime function for the specified size IVSize and sign IVSigned.
Definition at line 1701 of file CGOpenMPRuntime.cpp.
References getIdentTyPointerTy(), and clang::Name.
Referenced by emitForNext().
Returns __kmpc_for_static_init_* runtime function for the specified size IVSize and sign IVSigned.
Definition at line 1636 of file CGOpenMPRuntime.cpp.
References getIdentTyPointerTy(), and clang::Name.
Referenced by emitDistributeStaticInit(), and emitForStaticInit().
CGObjCRuntime * clang::CodeGen::CreateGNUObjCRuntime | ( | CodeGenModule & | CGM | ) |
Creates an instance of an Objective-C runtime class.
Definition at line 2938 of file CGObjCGNU.cpp.
References clang::ObjCRuntime::getKind(), clang::CodeGen::CodeGenModule::getLangOpts(), and clang::LangOptions::ObjCRuntime.
CodeGen::CGCXXABI * clang::CodeGen::CreateItaniumCXXABI | ( | CodeGenModule & | CGM | ) |
Creates an Itanium-family ABI.
Definition at line 450 of file CodeGen/ItaniumCXXABI.cpp.
References clang::TargetCXXABI::GenericAArch64, clang::TargetCXXABI::GenericARM, clang::TargetCXXABI::GenericItanium, clang::TargetCXXABI::GenericMIPS, clang::CodeGen::CodeGenModule::getContext(), clang::TargetInfo::getCXXABI(), clang::TargetCXXABI::getKind(), clang::CodeGen::CodeGenModule::getTarget(), clang::ASTContext::getTargetInfo(), clang::TargetInfo::getTriple(), clang::TargetCXXABI::iOS, clang::TargetCXXABI::iOS64, clang::TargetCXXABI::Microsoft, clang::TargetCXXABI::WatchOS, and clang::TargetCXXABI::WebAssembly.
Referenced by createCXXABI().
CGObjCRuntime* clang::CodeGen::CreateMacObjCRuntime | ( | CodeGenModule & | CGM | ) |
CGCXXABI * clang::CodeGen::CreateMicrosoftCXXABI | ( | CodeGenModule & | CGM | ) |
Creates a Microsoft-family ABI.
Definition at line 3275 of file CodeGen/MicrosoftCXXABI.cpp.
Referenced by createCXXABI().
CGCUDARuntime * clang::CodeGen::CreateNVCUDARuntime | ( | CodeGenModule & | CGM | ) |
Creates an instance of a CUDA runtime class.
Definition at line 365 of file CGCUDANV.cpp.
void CGOpenMPRuntime::createOffloadEntriesAndInfoMetadata | ( | ) |
Creates all the offload entries in the current compilation unit along with the associated metadata.
Definition at line 2924 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::OffloadEntriesInfoManagerTy::actOnTargetRegionEntriesInfo(), E, clang::CodeGen::OffloadEntriesInfoManagerTy::empty(), Line, OffloadEntriesInfoManager, clang::CodeGen::OffloadEntriesInfoManagerTy::size(), and v.
Referenced by emitRegistrationFunction().
llvm::Function * CGOpenMPRuntime::createOffloadingBinaryDescriptorRegistration | ( | ) |
Creates and registers offloading binary descriptor for the current compilation unit.
The function that does the registration is returned.
Definition at line 2782 of file CGOpenMPRuntime.cpp.
References createOffloadingBinaryDescriptorFunction(), createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitCallOrInvoke(), clang::CodeGen::OffloadEntriesInfoManagerTy::empty(), clang::ExternalLinkage, getTgtBinaryDescriptorQTy(), getTgtDeviceImageQTy(), getTgtOffloadEntryQTy(), clang::InternalLinkage, OffloadEntriesInfoManager, OMPRTL__tgt_register_lib, and OMPRTL__tgt_unregister_lib.
Referenced by emitRegistrationFunction().
llvm::Constant * CGOpenMPRuntime::createRuntimeFunction | ( | unsigned | Function | ) |
Returns specified OpenMP runtime function.
Function | OpenMP runtime function. |
Definition at line 1056 of file CGOpenMPRuntime.cpp.
References getIdentTyPointerTy(), getKmpc_MicroPointerTy(), getTgtBinaryDescriptorQTy(), OMPRTL__kmpc_barrier, OMPRTL__kmpc_cancel, OMPRTL__kmpc_cancel_barrier, OMPRTL__kmpc_cancellationpoint, OMPRTL__kmpc_copyprivate, OMPRTL__kmpc_critical, OMPRTL__kmpc_critical_with_hint, OMPRTL__kmpc_doacross_fini, OMPRTL__kmpc_doacross_init, OMPRTL__kmpc_doacross_post, OMPRTL__kmpc_doacross_wait, OMPRTL__kmpc_end_critical, OMPRTL__kmpc_end_master, OMPRTL__kmpc_end_ordered, OMPRTL__kmpc_end_reduce, OMPRTL__kmpc_end_reduce_nowait, OMPRTL__kmpc_end_serialized_parallel, OMPRTL__kmpc_end_single, OMPRTL__kmpc_end_taskgroup, OMPRTL__kmpc_flush, OMPRTL__kmpc_for_static_fini, OMPRTL__kmpc_fork_call, OMPRTL__kmpc_fork_teams, OMPRTL__kmpc_global_thread_num, OMPRTL__kmpc_master, OMPRTL__kmpc_omp_task, OMPRTL__kmpc_omp_task_alloc, OMPRTL__kmpc_omp_task_begin_if0, OMPRTL__kmpc_omp_task_complete_if0, OMPRTL__kmpc_omp_task_with_deps, OMPRTL__kmpc_omp_taskwait, OMPRTL__kmpc_omp_taskyield, OMPRTL__kmpc_omp_wait_deps, OMPRTL__kmpc_ordered, OMPRTL__kmpc_push_num_teams, OMPRTL__kmpc_push_num_threads, OMPRTL__kmpc_push_proc_bind, OMPRTL__kmpc_reduce, OMPRTL__kmpc_reduce_nowait, OMPRTL__kmpc_serialized_parallel, OMPRTL__kmpc_single, OMPRTL__kmpc_taskgroup, OMPRTL__kmpc_taskloop, OMPRTL__kmpc_threadprivate_cached, OMPRTL__kmpc_threadprivate_register, OMPRTL__tgt_register_lib, OMPRTL__tgt_target, OMPRTL__tgt_target_data_begin, OMPRTL__tgt_target_data_end, OMPRTL__tgt_target_data_update, OMPRTL__tgt_target_teams, and OMPRTL__tgt_unregister_lib.
Referenced by createOffloadingBinaryDescriptorRegistration(), emitBarrierCall(), emitCancellationPointCall(), emitCriticalRegion(), emitDoacrossInit(), emitDoacrossOrdered(), emitForStaticFinish(), emitMasterRegion(), emitNumThreadsClause(), emitOrderedRegion(), emitProcBindClause(), emitTaskCall(), emitTaskgroupRegion(), emitTaskInit(), emitTaskLoopCall(), emitTaskOutlinedFunction(), emitTaskwaitCall(), emitTaskyieldCall(), emitThreadPrivateVarInit(), getAddrOfThreadPrivate(), and getThreadID().
void clang::CodeGen::Destroy | ( | ) |
Definition at line 306 of file CGCleanup.h.
References ExtInfo.
Referenced by pushTemporaryCleanup().
clang::CodeGen::EHCleanupScope | ( | bool | isNormal, |
bool | isEH, | ||
bool | isActive, | ||
unsigned | cleanupSize, | ||
unsigned | fixupDepth, | ||
EHScopeStack::stable_iterator | enclosingNormal, | ||
EHScopeStack::stable_iterator | enclosingEH | ||
) |
Definition at line 288 of file CGCleanup.h.
References isActive().
Referenced by clang::CodeGen::CodeGenFunction::ActivateCleanupBlock(), clang::CodeGen::EHScopeStack::containsOnlyLifetimeMarkers(), clang::CodeGen::CodeGenFunction::DeactivateCleanupBlock(), clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), getAllocatedSize(), clang::CodeGen::EHScopeStack::getInnermostActiveNormalCleanup(), getSizeForCleanupSize(), clang::CodeGen::CodeGenFunction::initFullExprCleanup(), IsUsedAsNormalCleanup(), clang::CodeGen::EHScopeStack::iterator::operator++(), clang::CodeGen::EHScopeStack::popCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), clang::CodeGen::CodeGenFunction::PopCleanupBlocks(), and SetupCleanupBlockActivation().
|
virtual |
Emit an implicit/explicit barrier for OpenMP threads.
Kind | Directive for which this implicit barrier call must be generated. Must be OMPD_barrier for explicit barrier generation. |
EmitChecks | true if need to emit checks for cancellation barriers. |
ForceSimpleCall | true simple barrier call must be emitted, false if runtime class decides which one to emit (simple or with cancellation checks). |
Definition at line 2314 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CapturedStmtInfo, clang::CodeGen::CodeGenFunction::createBasicBlock(), createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitBlock(), clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), clang::CodeGen::CodeGenFunction::getOMPCancelDestination(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), OMPRTL__kmpc_barrier, OMPRTL__kmpc_cancel_barrier, and clang::Result.
Referenced by emitCancellationPointCall().
|
virtual |
Emit code for 'cancel' construct.
IfCond | Condition in the associated 'if' clause, if it was specified, nullptr otherwise. |
CancelRegion | Region kind for which the cancel must be emitted. |
Definition at line 4705 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::CapturedStmtInfo, emitOMPIfClause(), getCancellationKind(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::OMPD_unknown, OMPRTL__kmpc_cancel, and clang::Result.
|
virtual |
Emit code for 'cancellation point' construct.
CancelRegion | Region kind for which the cancellation point must be emitted. |
Definition at line 4669 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CapturedStmtInfo, clang::CodeGen::CodeGenFunction::createBasicBlock(), createRuntimeFunction(), emitBarrierCall(), clang::CodeGen::CodeGenFunction::EmitBlock(), clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), getCancellationKind(), clang::CodeGen::CodeGenFunction::getOMPCancelDestination(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::OMPD_unknown, OMPRTL__kmpc_cancellationpoint, and clang::Result.
|
virtual |
Emits a critical region.
CriticalName | Name of the critical region. |
CriticalOpGen | Generator for the statement associated with the given critical region. |
Hint | Value of the 'hint' clause (optional). |
Definition at line 2075 of file CGOpenMPRuntime.cpp.
References Action, clang::begin(), clang::CodeGen::CodeGenFunction::Builder, createRuntimeFunction(), emitInlinedDirective(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), emitUpdateLocation(), clang::end(), getCriticalRegionLock(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), OMPRTL__kmpc_critical, OMPRTL__kmpc_critical_with_hint, OMPRTL__kmpc_end_critical, and clang::CodeGen::RegionCodeGenTy::setAction().
|
virtual |
Marks function Fn with properly mangled versions of vector functions.
FD | Function marked as 'declare simd'. |
Fn | LLVM function that must be marked with 'declare simd' attributes. |
Definition at line 6399 of file CGOpenMPRuntime.cpp.
References E, emitX86DeclareSimdFunction(), getCanonicalDecl(), clang::FunctionDecl::getCanonicalDecl(), clang::ASTContext::getOpenMPDefaultSimdAlign(), clang::Expr::getType(), clang::Expr::IgnoreParenImpCasts(), P, clang::FunctionDecl::parameters(), clang::Expr::SE_AllowSideEffects, State, and clang::ASTContext::toCharUnitsFromBits().
|
virtual |
CGF | Reference to current CodeGenFunction. |
Loc | Clang source location. |
SchedKind | Schedule kind, specified by the 'dist_schedule' clause. |
IVSize | Size of the iteration variable in bits. |
IVSigned | Sign of the interation variable. |
Ordered | true if loop is ordered, false otherwise. |
IL | Address of the output variable in which the flag of the last iteration is returned. |
LB | Address of the output variable in which the lower iteration number is returned. |
UB | Address of the output variable in which the upper iteration number is returned. |
ST | Address of the output variable in which the stride value is returned nesessary to generated the static_chunked scheduled loop. |
Chunk | Value of the chunk for the static_chunked scheduled loop. For the default (nullptr) value, the chunk 1 will be used. |
Definition at line 2546 of file CGOpenMPRuntime.cpp.
References createForStaticInitFunction(), emitForStaticInitCall(), emitUpdateLocation(), getRuntimeSchedule(), getThreadID(), and clang::OMPC_SCHEDULE_MODIFIER_unknown.
|
virtual |
Emit initialization for doacross loop nesting support.
D | Loop-based construct used in doacross nesting construct. |
Definition at line 6513 of file CGOpenMPRuntime.cpp.
References addFieldToRecordDecl(), clang::CodeGen::CodeGenFunction::Builder, clang::ASTContext::buildImplicitRecord(), clang::RecordDecl::completeDefinition(), clang::CodeGen::CodeGenFunction::CreateMemTemp(), clang::CodeGen::CGBuilderTy::CreatePointerBitCastOrAddrSpaceCast(), createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EHStack, clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), clang::CodeGen::CodeGenFunction::EmitScalarConversion(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), emitUpdateLocation(), clang::RecordDecl::field_begin(), clang::Type::getAsTagDecl(), clang::Expr::getExprLoc(), clang::ASTContext::getIntTypeForBitwidth(), clang::OMPExecutableDirective::getLocEnd(), clang::OMPExecutableDirective::getLocStart(), clang::OMPLoopDirective::getNumIterations(), clang::ASTContext::getRecordType(), getThreadID(), clang::Expr::getType(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::QualType::isNull(), KmpDimTy, clang::CodeGen::CodeGenFunction::MakeAddrLValue(), NormalAndEHCleanup, OMPRTL__kmpc_doacross_fini, OMPRTL__kmpc_doacross_init, and clang::TagDecl::startDefinition().
|
virtual |
Emit code for doacross ordered directive with 'depend' clause.
C | 'depend' clause with 'sink|source' dependency kind. |
Definition at line 6572 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::CreateMemTemp(), createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), clang::CodeGen::CodeGenFunction::EmitScalarConversion(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), emitUpdateLocation(), OMPDependClause::getCounterValue(), OMPDependClause::getDependencyKind(), clang::Expr::getExprLoc(), clang::CodeGen::Address::getPointer(), getThreadID(), clang::Expr::getType(), OMPRTL__kmpc_doacross_post, and OMPRTL__kmpc_doacross_wait.
|
virtual |
Emit flush of the variables specified in 'omp flush' directive.
Vars | List of variables to flush. |
|
virtual |
Definition at line 2448 of file CGOpenMPRuntime.cpp.
References addMonoNonMonoModifier(), clang::CodeGen::CodeGenFunction::Builder, createDispatchInitFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), getRuntimeSchedule(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::OpenMPScheduleTy::M1, clang::OpenMPScheduleTy::M2, OMP_ord_static, OMP_ord_static_chunked, OMP_sch_static, OMP_sch_static_balanced_chunked, OMP_sch_static_chunked, and clang::OpenMPScheduleTy::Schedule.
|
virtual |
Call __kmpc_dispatch_next( ident_t *loc, kmp_int32 tid, kmp_int32 *p_lastiter, kmp_int[32|64] *p_lower, kmp_int[32|64] *p_upper, kmp_int[32|64] *p_stride);.
IVSize | Size of the iteration variable in bits. |
IVSigned | Sign of the interation variable. |
IL | Address of the output variable in which the flag of the last iteration is returned. |
LB | Address of the output variable in which the lower iteration number is returned. |
UB | Address of the output variable in which the upper iteration number is returned. |
ST | Address of the output variable in which the stride value is returned. |
Definition at line 2582 of file CGOpenMPRuntime.cpp.
References clang::ASTContext::BoolTy, createDispatchNextFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), clang::CodeGen::CodeGenFunction::EmitScalarConversion(), emitUpdateLocation(), clang::CodeGen::CodeGenFunction::getContext(), clang::ASTContext::getIntTypeForBitwidth(), clang::CodeGen::Address::getPointer(), and getThreadID().
|
virtual |
Call the appropriate runtime routine to notify that we finished iteration of the ordered loop with the dynamic scheduling.
CGF | Reference to current CodeGenFunction. |
Loc | Clang source location. |
IVSize | Size of the iteration variable in bits. |
IVSigned | Sign of the interation variable. |
Definition at line 2571 of file CGOpenMPRuntime.cpp.
References createDispatchFiniFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), getThreadID(), and clang::CodeGen::CodeGenFunction::HaveInsertPoint().
|
virtual |
Call the appropriate runtime routine to notify that we finished all the work with current loop.
CGF | Reference to current CodeGenFunction. |
Loc | Clang source location. |
Definition at line 2561 of file CGOpenMPRuntime.cpp.
References createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), and OMPRTL__kmpc_for_static_fini.
|
virtual |
Call the appropriate runtime routine to initialize it before start of loop.
Depending on the loop schedule, it is nesessary to call some runtime routine before start of the OpenMP loop to get the loop upper / lower bounds LB and UB and stride ST.
CGF | Reference to current CodeGenFunction. |
Loc | Clang source location. |
ScheduleKind | Schedule kind, specified by the 'schedule' clause. |
IVSize | Size of the iteration variable in bits. |
IVSigned | Sign of the interation variable. |
Ordered | true if loop is ordered, false otherwise. |
IL | Address of the output variable in which the flag of the last iteration is returned. |
LB | Address of the output variable in which the lower iteration number is returned. |
UB | Address of the output variable in which the upper iteration number is returned. |
ST | Address of the output variable in which the stride value is returned nesessary to generated the static_chunked scheduled loop. |
Chunk | Value of the chunk for the static_chunked scheduled loop. For the default (nullptr) value, the chunk 1 will be used. |
Definition at line 2529 of file CGOpenMPRuntime.cpp.
References createForStaticInitFunction(), emitForStaticInitCall(), emitUpdateLocation(), getRuntimeSchedule(), getThreadID(), clang::OpenMPScheduleTy::M1, clang::OpenMPScheduleTy::M2, and clang::OpenMPScheduleTy::Schedule.
|
virtual |
Emit code for the directive that does not require outlining.
InnermostKind | Kind of innermost directive (for simple directives it is a directive itself, for combined - its innermost directive). |
CodeGen | Code generation sequence for the D directive. |
HasCancel | true if region has inner cancel directive, false otherwise. |
Definition at line 4634 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::CapturedStmtInfo, clang::CodeGen::CodeGenFunction::CGCapturedStmtInfo::EmitBody(), and clang::CodeGen::CodeGenFunction::HaveInsertPoint().
Referenced by emitCriticalRegion(), emitMasterRegion(), emitOrderedRegion(), and emitTaskgroupRegion().
void CGOpenMPRuntime::emitKmpRoutineEntryT | ( | QualType | KmpInt32Ty | ) |
Build type kmp_routine_entry_t (if not built yet).
Definition at line 3053 of file CGOpenMPRuntime.cpp.
Referenced by emitTaskInit().
|
virtual |
Emits a master region.
MasterOpGen | Generator for the statement associated with the given master region. |
Definition at line 2101 of file CGOpenMPRuntime.cpp.
References Action, createRuntimeFunction(), emitInlinedDirective(), emitUpdateLocation(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), OMPRTL__kmpc_end_master, OMPRTL__kmpc_master, and clang::CodeGen::RegionCodeGenTy::setAction().
|
virtual |
Emits call to void __kmpc_push_num_teams(ident_t *loc, kmp_int32 global_tid, kmp_int32 num_teams, kmp_int32 thread_limit) to generate code for num_teams clause.
NumTeams | An integer expression of teams. |
ThreadLimit | An integer expression of threads. |
|
virtual |
Emits call to void __kmpc_push_num_threads(ident_t *loc, kmp_int32 global_tid, kmp_int32 num_threads) to generate code for 'num_threads' clause.
NumThreads | An integer value of threads. |
Definition at line 2606 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::Builder, createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::CodeGen::CodeGenTypeCache::Int32Ty, and OMPRTL__kmpc_push_num_threads.
|
virtual |
Emit an ordered region.
OrderedOpGen | Generator for the statement associated with the given ordered region. |
Definition at line 2293 of file CGOpenMPRuntime.cpp.
References Action, createRuntimeFunction(), emitInlinedDirective(), emitUpdateLocation(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), OMPRTL__kmpc_end_ordered, OMPRTL__kmpc_ordered, and clang::CodeGen::RegionCodeGenTy::setAction().
|
virtual |
Emits code for parallel or serial call of the OutlinedFn with variables captured in a record which address is stored in CapturedStruct.
OutlinedFn | Outlined function to be run in parallel threads. Type of this function is void(*)(kmp_int32 *, kmp_int32, struct context_vars*). |
CapturedVars | A pointer to the record with the references to variables used in OutlinedFn function. |
IfCond | Condition in the associated 'if' clause, if it was specified, nullptr otherwise. |
|
virtual |
Emits outlined function for the specified OpenMP parallel directive D.
This outlined function has type void(*)(kmp_int32 ThreadID, kmp_int32 BoundID, struct context_vars).
D | OpenMP directive. |
ThreadIDVar | Variable for thread id in the current OpenMP region. |
InnermostKind | Kind of innermost directive (for simple directives it is a directive itself, for combined - its innermost directive). |
CodeGen | Code generation sequence for the D directive. |
Referenced by emitCommonOMPParallelDirective(), emitCommonOMPTeamsDirective(), and clang::CodeGen::CGOpenMPRuntimeNVPTX::emitParallelOrTeamsOutlinedFunction().
|
virtual |
Emit call to void __kmpc_push_proc_bind(ident_t *loc, kmp_int32 global_tid, int proc_bind) to generate code for 'proc_bind' clause.
Definition at line 2619 of file CGOpenMPRuntime.cpp.
References createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::OMPC_PROC_BIND_unknown, and OMPRTL__kmpc_push_proc_bind.
|
virtual |
Emit a code for reduction clause.
Next code should be emitted for reduction:
Privates | List of private copies for original reduction arguments. |
LHSExprs | List of LHS in ReductionOps reduction operations. |
RHSExprs | List of RHS in ReductionOps reduction operations. |
ReductionOps | List of reduction operations in form 'LHS binop RHS' or 'operator binop(LHS, RHS)'. |
WithNowait | true if parent directive has also nowait clause, false otherwise. |
|
virtual |
Creates the offloading descriptor in the event any target region was emitted in the current module and return the function that registers it.
Definition at line 5995 of file CGOpenMPRuntime.cpp.
References createOffloadEntriesAndInfoMetadata(), and createOffloadingBinaryDescriptorRegistration().
|
virtual |
Emits a single region.
SingleOpGen | Generator for the statement associated with the given single region. |
|
virtual |
Emit the target offloading code associated with D.
The emitted code attempts offloading the execution to the device, an the event of a failure it executes the host version outlined in OutlinedFn.
D | Directive to emit. |
OutlinedFn | Host version of the code to be offloaded. |
OutlinedFnID | ID of host version of the code to be offloaded. |
IfCond | Expression evaluated in if clause associated with the target directive, or null if no if clause is used. |
Device | Expression evaluated in device clause associated with the target directive, or null if no device clause is used. |
CapturedVars | Values captured in the current region. |
|
virtual |
Emit the target data mapping code associated with D.
D | Directive to emit. |
IfCond | Expression evaluated in if clause associated with the target directive, or null if no if clause is used. |
Device | Expression evaluated in device clause associated with the target directive, or null if no device clause is used. |
CodeGen | Function that emits the enclosed region. |
Definition at line 6058 of file CGOpenMPRuntime.cpp.
References emitOffloadingArrays(), emitOffloadingArraysArgument(), emitOMPIfClause(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), OMPRTL__tgt_target_data_begin, and OMPRTL__tgt_target_data_end.
|
virtual |
Emit the data mapping/movement code associated with the directive D that should be of the form 'target [{enter|exit} data | update]'.
D | Directive to emit. |
IfCond | Expression evaluated in if clause associated with the target directive, or null if no if clause is used. |
Device | Expression evaluated in device clause associated with the target directive, or null if no device clause is used. |
Definition at line 6179 of file CGOpenMPRuntime.cpp.
References emitOffloadingArrays(), emitOffloadingArraysArgument(), emitOMPIfClause(), clang::OMPExecutableDirective::getDirectiveKind(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), OMPRTL__tgt_target_data_begin, OMPRTL__tgt_target_data_end, and OMPRTL__tgt_target_data_update.
|
virtual |
Emit the target regions enclosed in GD function definition or the function itself in case it is a valid device function.
Returns true if GD was dealt with successfully.
GD | Function to scan. |
Definition at line 5943 of file CGOpenMPRuntime.cpp.
References clang::GlobalDecl::getDecl(), and scanForTargetRegionsFunctions().
Referenced by emitTargetGlobal().
|
virtual |
Emit the global GD if it is meaningful for the target.
Returns if it was emitted succesfully.
GD | Global to scan. |
Definition at line 5987 of file CGOpenMPRuntime.cpp.
References emitTargetFunctions(), emitTargetGlobalVariable(), and clang::GlobalDecl::getDecl().
|
virtual |
Emit the global variable if it is a valid device global variable.
Returns true if GD was dealt with successfully.
GD | Variable declaration to emit. |
Definition at line 5960 of file CGOpenMPRuntime.cpp.
References clang::Ctor_Complete, clang::Dtor_Complete, clang::Type::getAsCXXRecordDecl(), clang::Type::getBaseElementTypeUnsafe(), clang::GlobalDecl::getDecl(), and scanForTargetRegionsFunctions().
Referenced by emitTargetGlobal().
|
virtual |
Emit outilined function for 'target' directive.
D | Directive to emit. |
ParentName | Name of the function that encloses the target region. |
OutlinedFn | Outlined function value to be defined by this call. |
OutlinedFnID | Outlined function ID value to be defined by this call. |
IsOffloadEntry | True if the outlined function is an offload entry. |
CodeGen | Code generation sequence for the D directive. An oulined function may not be an entry if, e.g. the if clause always evaluates to false. |
|
virtual |
Definition at line 3866 of file CGOpenMPRuntime.cpp.
References Action, addFieldToRecordDecl(), clang::CodeGen::CodeGenFunction::Builder, clang::RecordDecl::completeDefinition(), clang::CodeGen::CodeGenFunction::ConvertTypeForMem(), clang::CodeGen::CGBuilderTy::CreateConstArrayGEP(), clang::CodeGen::CodeGenFunction::CreateMemTemp(), clang::CodeGen::CGBuilderTy::CreatePointerBitCastOrAddrSpaceCast(), createRuntimeFunction(), clang::CodeGen::CGBuilderTy::CreateStructGEP(), clang::CodeGen::OMPTaskDataTy::Dependences, clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitOMPArraySectionExpr(), emitOMPIfClause(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), emitTaskInit(), emitUpdateLocation(), clang::RecordDecl::field_begin(), clang::Type::getAsTagDecl(), clang::CodeGen::Address::getPointer(), clang::CodeGen::LValue::getPointer(), getThreadID(), clang::Expr::getType(), clang::CodeGen::CodeGenFunction::getTypeSize(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::Expr::IgnoreParenImpCasts(), clang::CodeGen::CodeGenTypeCache::IntPtrTy, clang::QualType::isNull(), KmpDependInfoTy, clang::CodeGen::TaskResultTy::KmpTaskTQTyRD, clang::CodeGen::CodeGenFunction::MakeAddrLValue(), clang::CodeGen::TaskResultTy::NewTask, clang::CodeGen::TaskResultTy::NewTaskNewTaskTTy, clang::ArrayType::Normal, clang::OMPC_DEPEND_unknown, OMPRTL__kmpc_omp_task, OMPRTL__kmpc_omp_task_begin_if0, OMPRTL__kmpc_omp_task_complete_if0, OMPRTL__kmpc_omp_task_with_deps, OMPRTL__kmpc_omp_wait_deps, clang::Result, clang::CodeGen::RegionCodeGenTy::setAction(), clang::TagDecl::startDefinition(), clang::CodeGen::TaskResultTy::TaskEntry, clang::CodeGen::TaskResultTy::TDBase, clang::CodeGen::CodeGenTypeCache::VoidPtrTy, and clang::CharUnits::Zero().
|
virtual |
Emit a taskgroup region.
TaskgroupOpGen | Generator for the statement associated with the given taskgroup region. |
Definition at line 2133 of file CGOpenMPRuntime.cpp.
References Action, createRuntimeFunction(), emitInlinedDirective(), emitUpdateLocation(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), OMPRTL__kmpc_end_taskgroup, OMPRTL__kmpc_taskgroup, and clang::CodeGen::RegionCodeGenTy::setAction().
CGOpenMPRuntime::TaskResultTy CGOpenMPRuntime::emitTaskInit | ( | CodeGenFunction & | CGF, |
SourceLocation | Loc, | ||
const OMPExecutableDirective & | D, | ||
llvm::Value * | TaskFunction, | ||
QualType | SharedsTy, | ||
Address | Shareds, | ||
const OMPTaskDataTy & | Data | ||
) |
Definition at line 3682 of file CGOpenMPRuntime.cpp.
References array_pod_sort_comparator(), clang::begin(), clang::CodeGen::CodeGenFunction::Builder, checkDestructorsRequired(), checkInitIsRequired(), clang::CodeGen::CodeGenFunction::ConvertType(), createKmpTaskTRecordDecl(), createKmpTaskTWithPrivatesRecordDecl(), clang::CodeGen::CGBuilderTy::CreatePointerBitCastOrAddrSpaceCast(), createRuntimeFunction(), E, clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), emitDestructorsFunction(), emitKmpRoutineEntryT(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), emitPrivatesInit(), emitProxyTaskFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), emitTaskDupFunction(), emitTaskPrivateMappingFunction(), emitUpdateLocation(), clang::RecordDecl::field_empty(), clang::CodeGen::OMPTaskDataTy::Final, clang::CodeGen::OMPTaskDataTy::FirstprivateCopies, clang::CodeGen::OMPTaskDataTy::FirstprivateInits, clang::CodeGen::OMPTaskDataTy::FirstprivateVars, clang::Type::getAsStructureType(), clang::Type::getAsTagDecl(), clang::RecordType::getDecl(), clang::OMPExecutableDirective::getDirectiveKind(), clang::CodeGen::CodeGenFunction::getNaturalTypeAlignment(), clang::CodeGen::CGBuilderTy::getSize(), getThreadID(), clang::CodeGen::CodeGenFunction::getTypeSize(), I, clang::QualType::isNull(), clang::isOpenMPTaskLoopDirective(), KmpTaskTQTy, clang::CodeGen::TaskResultTy::KmpTaskTQTyRD, clang::CodeGen::OMPTaskDataTy::LastprivateCopies, clang::CodeGen::OMPTaskDataTy::LastprivateVars, clang::CodeGen::CodeGenFunction::MakeNaturalAlignAddrLValue(), clang::CodeGen::TaskResultTy::NewTask, clang::CodeGen::TaskResultTy::NewTaskNewTaskTTy, OMPRTL__kmpc_omp_task_alloc, clang::CodeGen::OMPTaskDataTy::Priority, clang::CodeGen::OMPTaskDataTy::PrivateCopies, Privates, clang::CodeGen::OMPTaskDataTy::PrivateVars, clang::Result, clang::CodeGen::TaskResultTy::TaskDupFn, clang::CodeGen::TaskResultTy::TaskEntry, clang::CodeGen::TaskResultTy::TDBase, and clang::CodeGen::OMPTaskDataTy::Tied.
Referenced by emitTaskCall(), and emitTaskLoopCall().
|
virtual |
Definition at line 4056 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CGBuilderTy::CreatePointerBitCastOrAddrSpaceCast(), createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitTaskInit(), emitUpdateLocation(), clang::CodeGen::CodeGenFunction::EvaluateExprAsBool(), clang::RecordDecl::field_begin(), clang::CodeGen::LValue::getAddress(), clang::OMPLoopDirective::getLowerBoundVariable(), clang::CodeGen::LValue::getPointer(), clang::CodeGen::LValue::getQuals(), clang::OMPLoopDirective::getStrideVariable(), getThreadID(), clang::OMPLoopDirective::getUpperBoundVariable(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::CodeGen::CodeGenTypeCache::Int64Ty, clang::CodeGen::CodeGenTypeCache::IntTy, clang::CodeGen::TaskResultTy::KmpTaskTQTyRD, clang::CodeGen::TaskResultTy::NewTask, clang::CodeGen::OMPTaskDataTy::Nogroup, OMPRTL__kmpc_taskloop, clang::Result, clang::CodeGen::OMPTaskDataTy::Schedule, clang::CodeGen::TaskResultTy::TaskDupFn, clang::CodeGen::TaskResultTy::TDBase, and clang::CodeGen::CodeGenTypeCache::VoidPtrTy.
|
virtual |
Emits outlined function for the OpenMP task directive D.
This outlined function has type void(*)(kmp_int32 ThreadID, struct task_t* TaskT).
D | OpenMP directive. |
ThreadIDVar | Variable for thread id in the current OpenMP region. |
PartIDVar | Variable for partition id in the current OpenMP untied task region. |
TaskTVar | Variable for task_t argument. |
InnermostKind | Kind of innermost directive (for simple directives it is a directive itself, for combined - its innermost directive). |
CodeGen | Code generation sequence for the D directive. |
Tied | true if task is generated for tied task, false otherwise. |
NumberOfParts | Number of parts in untied task. Ignored for tied tasks. |
Definition at line 861 of file CGOpenMPRuntime.cpp.
References Action, clang::Type::castAs(), createRuntimeFunction(), emitUpdateLocation(), clang::OMPExecutableDirective::getAssociatedStmt(), clang::OMPExecutableDirective::getLocStart(), getThreadID(), clang::ValueDecl::getType(), clang::Type::isPointerType(), OMPRTL__kmpc_omp_task, and clang::CodeGen::RegionCodeGenTy::setAction().
|
virtual |
Emit code for 'taskwait' directive.
Definition at line 4621 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::CapturedStmtInfo, createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), and OMPRTL__kmpc_omp_taskwait.
|
virtual |
Emits code for a taskyield directive.
Definition at line 2120 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::CapturedStmtInfo, createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), getThreadID(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), and OMPRTL__kmpc_omp_taskyield.
|
virtual |
Emits code for teams call of the OutlinedFn with variables captured in a record which address is stored in CapturedStruct.
OutlinedFn | Outlined function to be run by team masters. Type of this function is void(*)(kmp_int32 *, kmp_int32, struct context_vars*). |
CapturedVars | A pointer to the record with the references to variables used in OutlinedFn function. |
|
virtual |
Emits address of the word in a memory where current thread id is stored.
Definition at line 1995 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::CapturedStmtInfo, clang::CodeGen::CodeGenFunction::CreateMemTemp(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::getContext(), clang::ASTContext::getIntTypeForBitwidth(), getThreadID(), and clang::CodeGen::CodeGenFunction::MakeAddrLValue().
|
virtual |
Emit a code for initialization of threadprivate variable.
It emits a call to runtime library which adds initial value to the newly created threadprivate variable (if it is not constant) and registers destructor for the variable (if any).
VD | Threadprivate variable. |
VDAddr | Address of the global variable VD. |
Loc | Location of threadprivate declaration. |
PerformInit | true if initialization expression is not constant. |
Definition at line 1770 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::ConvertTypeForMem(), clang::CodeGen::CGBuilderTy::CreateElementBitCast(), clang::CreateEmpty(), clang::CodeGen::CGBuilderTy::CreateStore(), clang::QualType::DK_none, clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), clang::CodeGen::CodeGenFunction::emitDestroy(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), emitThreadPrivateVarInit(), clang::CodeGen::CodeGenFunction::FinishFunction(), clang::CodeGen::CodeGenFunction::GetAddrOfLocalVar(), clang::CodeGen::Address::getAlignment(), clang::VarDecl::getAnyInitializer(), clang::VarDecl::getDefinition(), clang::CodeGen::CodeGenFunction::getDestroyer(), clang::CodeGen::Address::getType(), clang::ValueDecl::getType(), clang::QualType::isDestructedType(), clang::CodeGen::CodeGenFunction::needsEHCleanup(), clang::CodeGen::CodeGenFunction::ReturnValue, clang::CodeGen::CodeGenFunction::StartFunction(), and ThreadPrivateWithDefinition.
Referenced by clang::CodeGen::CodeGenModule::EmitOMPThreadPrivateDecl().
void CGOpenMPRuntime::emitThreadPrivateVarInit | ( | CodeGenFunction & | CGF, |
Address | VDAddr, | ||
llvm::Value * | Ctor, | ||
llvm::Value * | CopyCtor, | ||
llvm::Value * | Dtor, | ||
SourceLocation | Loc | ||
) |
Emits initialization code for the threadprivate variables.
VDAddr | Address of the global variable VD. |
Ctor | Pointer to a global init function for VD. |
CopyCtor | Pointer to a global copy function for VD. |
Dtor | Pointer to a global destructor function for VD. |
Loc | Location of threadprivate declaration. |
Definition at line 1752 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::Builder, createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), clang::CodeGen::Address::getPointer(), OMPRTL__kmpc_global_thread_num, and OMPRTL__kmpc_threadprivate_register.
Referenced by emitThreadPrivateVarDefinition().
llvm::Value * CGOpenMPRuntime::emitUpdateLocation | ( | CodeGenFunction & | CGF, |
SourceLocation | Loc, | ||
unsigned | Flags = 0 |
||
) |
Emits object of ident_t type with info for source location.
Flags | Flags for OpenMP location. |
Definition at line 926 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::AllocaInsertPt, clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, createIdentFieldGEP(), clang::CodeGen::CGBuilderTy::CreateMemCpy(), clang::CodeGen::CGBuilderTy::CreateStore(), clang::CodeGen::CodeGenFunction::CreateTempAlloca(), clang::CodeGen::CodeGenFunction::CurFn, clang::CodeGen::CodeGenFunction::CurFuncDecl, clang::PresumedLoc::getColumn(), clang::CodeGen::CodeGenFunction::getContext(), clang::PresumedLoc::getFilename(), getIdentAlign(), getIdentSize(), clang::PresumedLoc::getLine(), clang::CodeGen::Address::getPointer(), clang::SourceManager::getPresumedLoc(), clang::SourceLocation::getRawEncoding(), clang::ASTContext::getSourceManager(), I, IdentField_PSource, clang::SourceLocation::isInvalid(), clang::CodeGen::Address::isValid(), and clang::codegenoptions::NoDebugInfo.
Referenced by emitBarrierCall(), emitCancellationPointCall(), emitCriticalRegion(), emitDistributeStaticInit(), emitDoacrossInit(), emitDoacrossOrdered(), emitForDispatchInit(), emitForNext(), emitForOrderedIterationEnd(), emitForStaticFinish(), emitForStaticInit(), emitMasterRegion(), emitNumThreadsClause(), emitOrderedRegion(), emitProcBindClause(), emitTaskCall(), emitTaskgroupRegion(), emitTaskInit(), emitTaskLoopCall(), emitTaskOutlinedFunction(), emitTaskwaitCall(), emitTaskyieldCall(), emitThreadPrivateVarInit(), getAddrOfThreadPrivate(), and getThreadID().
|
virtual |
Emit code for the specified user defined reduction construct.
Definition at line 782 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::CurFn, emitCombinerOrInitializer(), clang::DeclContextLookupResult::front(), clang::OMPDeclareReductionDecl::getCombiner(), clang::OMPDeclareReductionDecl::getInitializer(), clang::ValueDecl::getType(), and clang::DeclContext::lookup().
Referenced by getUserDefinedReduction().
void CGOpenMPRuntime::functionFinished | ( | CodeGenFunction & | CGF | ) |
Cleans up references to the objects in finished function.
Definition at line 1027 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::CurFn.
Address clang::CodeGen::getActiveFlag | ( | ) | const |
Definition at line 325 of file CGCleanup.h.
References ActiveFlag, and clang::CharUnits::One().
|
virtual |
Returns address of the threadprivate variable for the current thread.
VD | Threadprivate variable. |
VDAddr | Address of the global variable VD. |
Loc | Location of the reference to threadprivate var. |
Definition at line 1733 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::Builder, createRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getElementType(), getOrCreateThreadPrivateCache(), clang::CodeGen::Address::getPointer(), clang::CodeGen::CGBuilderTy::getSize(), getThreadID(), and OMPRTL__kmpc_threadprivate_cached.
size_t clang::CodeGen::getAllocatedSize | ( | ) | const |
Definition at line 284 of file CGCleanup.h.
References EHCleanupScope().
llvm::BasicBlock* clang::CodeGen::getBranchAfterBlock | ( | unsigned | I | ) | const |
Definition at line 385 of file CGCleanup.h.
References clang::CodeGen::ExtInfo::BranchAfters, getNumBranchAfters(), and I.
llvm::ConstantInt* clang::CodeGen::getBranchAfterIndex | ( | unsigned | I | ) | const |
Definition at line 390 of file CGCleanup.h.
References clang::CodeGen::ExtInfo::BranchAfters, getNumBranchAfters(), and I.
EHScopeStack::Cleanup* clang::CodeGen::getCleanup | ( | ) |
Definition at line 355 of file CGCleanup.h.
References getCleanupBuffer().
void* clang::CodeGen::getCleanupBuffer | ( | ) |
Definition at line 353 of file CGCleanup.h.
Referenced by getCleanup().
size_t clang::CodeGen::getCleanupSize | ( | ) | const |
Definition at line 352 of file CGCleanup.h.
llvm::Value * CGOpenMPRuntime::getCriticalRegionLock | ( | StringRef | CriticalName | ) |
Returns corresponding lock object for the specified critical region name.
If the lock object does not exist it is created, otherwise the reference to the existing copy is returned.
CriticalName | Name of the critical region. |
Definition at line 2032 of file CGOpenMPRuntime.cpp.
References getOrCreateInternalVariable(), and clang::Name.
Referenced by emitCriticalRegion().
EHScopeStack::stable_iterator clang::CodeGen::getEnclosingNormalCleanup | ( | ) | const |
Definition at line 348 of file CGCleanup.h.
const struct ExtInfo & clang::CodeGen::getExtInfo | ( | ) |
Definition at line 267 of file CGCleanup.h.
References ExtInfo.
Referenced by addBranchAfter(), addBranchThrough(), clang::TagDecl::setQualifierInfo(), and clang::TagDecl::setTemplateParameterListsInfo().
|
inlinestatic |
Given that the base address has the given alignment source, what's our confidence in the alignment of the field?
Definition at line 143 of file CGValue.h.
References Decl.
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization().
unsigned clang::CodeGen::getFixupDepth | ( | ) | const |
Definition at line 347 of file CGCleanup.h.
References FixupDepth.
|
inline |
Definition at line 77 of file CodeGenTypes.h.
References Base, Complete, clang::Ctor_Base, clang::Ctor_Comdat, clang::Ctor_Complete, clang::Ctor_CopyingClosure, and clang::Ctor_DefaultClosure.
Referenced by clang::CodeGen::CodeGenTypes::arrangeGlobalDeclaration(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), and clang::CodeGen::CodeGenModule::GetAddrOfGlobal().
|
inline |
Definition at line 104 of file CodeGenTypes.h.
References Base, Complete, Deleting, clang::Dtor_Base, clang::Dtor_Comdat, clang::Dtor_Complete, and clang::Dtor_Deleting.
Referenced by clang::CodeGen::CodeGenTypes::arrangeGlobalDeclaration(), clang::CodeGen::CodeGenModule::GetAddrOfGlobal(), and clang::CodeGen::CodeGenTypes::GetFunctionTypeForVTable().
llvm::Type * CGOpenMPRuntime::getIdentTyPointerTy | ( | ) |
Returns pointer to ident_t type.
Definition at line 1039 of file CGOpenMPRuntime.cpp.
Referenced by createDispatchFiniFunction(), createDispatchInitFunction(), createDispatchNextFunction(), createForStaticInitFunction(), and createRuntimeFunction().
llvm::Type * CGOpenMPRuntime::getKmpc_MicroPointerTy | ( | ) |
Returns pointer to kmpc_micro type.
Definition at line 1045 of file CGOpenMPRuntime.cpp.
Referenced by createRuntimeFunction().
llvm::BasicBlock* clang::CodeGen::getNormalBlock | ( | ) | const |
Definition at line 313 of file CGCleanup.h.
References NormalBlock.
Referenced by IsUsedAsNormalCleanup().
unsigned clang::CodeGen::getNumBranchAfters | ( | ) | const |
Return the number of unique branch-afters on this scope.
Definition at line 381 of file CGCleanup.h.
References clang::CodeGen::ExtInfo::BranchAfters.
Referenced by getBranchAfterBlock(), and getBranchAfterIndex().
llvm::Constant * CGOpenMPRuntime::getOrCreateInternalVariable | ( | llvm::Type * | Ty, |
const llvm::Twine & | Name | ||
) |
Gets (if variable with the given name already exist) or creates internal global variable with the specified Name.
The created variable has linkage CommonLinkage by default and is initialized by null value.
Ty | Type of the global variable. If it is exist already the type must be the same. |
Name | Name of the variable. |
Definition at line 2013 of file CGOpenMPRuntime.cpp.
References Buffer, and clang::Name.
Referenced by getCriticalRegionLock(), and getOrCreateThreadPrivateCache().
llvm::Constant * CGOpenMPRuntime::getOrCreateThreadPrivateCache | ( | const VarDecl * | VD | ) |
If the specified mangled name is not in the module, create and return threadprivate cache object.
This object is a pointer's worth of storage that's reserved for use by the OpenMP runtime.
VD | Threadprivate variable. |
Definition at line 1725 of file CGOpenMPRuntime.cpp.
References getOrCreateInternalVariable().
Referenced by getAddrOfThreadPrivate().
Gets the size required for a lazy cleanup scope with the given cleanup-data requirements.
Definition at line 280 of file CGCleanup.h.
References EHCleanupScope().
QualType CGOpenMPRuntime::getTgtBinaryDescriptorQTy | ( | ) |
Returns __tgt_bin_desc type.
Definition at line 3125 of file CGOpenMPRuntime.cpp.
References addFieldToRecordDecl(), clang::ASTContext::buildImplicitRecord(), clang::ASTContext::getIntTypeForBitwidth(), clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), getTgtDeviceImageQTy(), getTgtOffloadEntryQTy(), clang::QualType::isNull(), clang::TagDecl::startDefinition(), and TgtBinaryDescriptorQTy.
Referenced by createOffloadingBinaryDescriptorRegistration(), and createRuntimeFunction().
QualType CGOpenMPRuntime::getTgtDeviceImageQTy | ( | ) |
Returns __tgt_device_image type.
Definition at line 3099 of file CGOpenMPRuntime.cpp.
References addFieldToRecordDecl(), clang::ASTContext::buildImplicitRecord(), clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), getTgtOffloadEntryQTy(), clang::QualType::isNull(), clang::TagDecl::startDefinition(), TgtDeviceImageQTy, and clang::ASTContext::VoidPtrTy.
Referenced by createOffloadingBinaryDescriptorRegistration(), and getTgtBinaryDescriptorQTy().
QualType CGOpenMPRuntime::getTgtOffloadEntryQTy | ( | ) |
Returns __tgt_offload_entry type.
Definition at line 3076 of file CGOpenMPRuntime.cpp.
References addFieldToRecordDecl(), clang::ASTContext::buildImplicitRecord(), clang::ASTContext::CharTy, clang::ASTContext::getPointerType(), clang::ASTContext::getRecordType(), clang::ASTContext::getSizeType(), clang::QualType::isNull(), clang::TagDecl::startDefinition(), TgtOffloadEntryQTy, and clang::ASTContext::VoidPtrTy.
Referenced by clang::CodeGen::CGOpenMPRuntime::createOffloadEntry(), createOffloadingBinaryDescriptorRegistration(), getTgtBinaryDescriptorQTy(), and getTgtDeviceImageQTy().
llvm::Value * CGOpenMPRuntime::getThreadID | ( | CodeGenFunction & | CGF, |
SourceLocation | Loc | ||
) |
Gets thread id value for the current thread.
Definition at line 984 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::AllocaInsertPt, clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CapturedStmtInfo, createRuntimeFunction(), clang::CodeGen::CodeGenFunction::CurFn, clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), emitUpdateLocation(), clang::CodeGen::RValue::getScalarVal(), I, and OMPRTL__kmpc_global_thread_num.
Referenced by emitBarrierCall(), emitCancellationPointCall(), emitCriticalRegion(), emitDistributeStaticInit(), emitDoacrossInit(), emitDoacrossOrdered(), emitForDispatchInit(), emitForNext(), emitForOrderedIterationEnd(), emitForStaticFinish(), emitForStaticInit(), emitMasterRegion(), emitNumThreadsClause(), emitOrderedRegion(), emitProcBindClause(), emitTaskCall(), emitTaskgroupRegion(), emitTaskInit(), emitTaskLoopCall(), emitTaskOutlinedFunction(), emitTaskwaitCall(), emitTaskyieldCall(), emitThreadIDAddress(), and getAddrOfThreadPrivate().
|
virtual |
Get combiner/initializer for the specified user-defined reduction, if any.
Definition at line 814 of file CGOpenMPRuntime.cpp.
References emitUserDefinedReduction(), and I.
bool clang::CodeGen::hasActiveFlag | ( | ) | const |
Definition at line 324 of file CGCleanup.h.
References ActiveFlag.
bool clang::CodeGen::hasBranches | ( | ) | const |
True if this cleanup scope has any branch-afters or branch-throughs.
Definition at line 360 of file CGCleanup.h.
References clang::CodeGen::ExtInfo::Branches.
bool clang::CodeGen::hasBranchThroughs | ( | ) | const |
Determines if this cleanup scope has any branch throughs.
Definition at line 415 of file CGCleanup.h.
References clang::CodeGen::ExtInfo::BranchAfters, and clang::CodeGen::ExtInfo::Branches.
bool clang::CodeGen::isActive | ( | ) | const |
Definition at line 318 of file CGCleanup.h.
Referenced by EHCleanupScope().
|
virtual |
Check if the specified ScheduleKind is dynamic.
This kind of worksharing directive is emitted without outer loop.
ScheduleKind | Schedule Kind specified in the 'schedule' clause. |
Definition at line 2404 of file CGOpenMPRuntime.cpp.
References getRuntimeSchedule(), OMP_sch_static, and OMP_sch_static_chunked.
bool clang::CodeGen::isEHCleanup | ( | ) | const |
Definition at line 316 of file CGCleanup.h.
Referenced by isNonEHScope().
bool clang::CodeGen::isLifetimeMarker | ( | ) | const |
Definition at line 321 of file CGCleanup.h.
bool clang::CodeGen::isNormalCleanup | ( | ) | const |
Definition at line 312 of file CGCleanup.h.
|
virtual |
Check if the specified ScheduleKind is static non-chunked.
This kind of worksharing directive is emitted without outer loop.
ScheduleKind | Schedule kind specified in the 'schedule' clause. |
Chunked | True if chunk is specified in the clause. |
Definition at line 2391 of file CGOpenMPRuntime.cpp.
References getRuntimeSchedule(), and OMP_sch_static.
|
virtual |
Check if the specified ScheduleKind is static non-chunked.
This kind of distribute directive is emitted without outer loop.
ScheduleKind | Schedule kind specified in the 'dist_schedule' clause. |
Chunked | True if chunk is specified in the clause. |
Definition at line 2397 of file CGOpenMPRuntime.cpp.
References getRuntimeSchedule(), and OMP_dist_sch_static.
void CGOpenMPRuntime::loadOffloadInfoMetadata | ( | ) |
Loads all the offload entries information from the host IR metadata.
Definition at line 3000 of file CGOpenMPRuntime.cpp.
References I, clang::CodeGen::OffloadEntriesInfoManagerTy::initializeTargetRegionEntryInfo(), and OffloadEntriesInfoManager.
Referenced by CGOpenMPRuntime().
|
inline |
Definition at line 94 of file CGBlocks.h.
|
inline |
Definition at line 139 of file CGBlocks.h.
void CGOpenMPRuntime::scanForTargetRegionsFunctions | ( | const Stmt * | S, |
StringRef | ParentName | ||
) |
Start scanning from statement S and and emit all target regions found along the way.
S | Starting statement. |
ParentName | Name of the function declaration that is being scanned. |
Definition at line 5890 of file CGOpenMPRuntime.cpp.
References getTargetEntryUniqueInfo(), clang::CodeGen::OffloadEntriesInfoManagerTy::hasTargetRegionEntryInfo(), Line, OffloadEntriesInfoManager, and S.
Referenced by emitTargetFunctions(), and emitTargetGlobalVariable().
void clang::CodeGen::setActive | ( | bool | A | ) |
Definition at line 319 of file CGCleanup.h.
void clang::CodeGen::setActiveFlag | ( | Address | Var | ) |
Definition at line 328 of file CGCleanup.h.
References ActiveFlag, clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), and clang::CharUnits::isOne().
void clang::CodeGen::setLifetimeMarker | ( | ) |
Definition at line 322 of file CGCleanup.h.
void clang::CodeGen::setNormalBlock | ( | llvm::BasicBlock * | BB | ) |
Definition at line 314 of file CGCleanup.h.
References NormalBlock.
void clang::CodeGen::setTestFlagInEHCleanup | ( | ) |
Definition at line 340 of file CGCleanup.h.
void clang::CodeGen::setTestFlagInNormalCleanup | ( | ) |
Definition at line 333 of file CGCleanup.h.
bool clang::CodeGen::shouldTestFlagInEHCleanup | ( | ) | const |
Definition at line 343 of file CGCleanup.h.
bool clang::CodeGen::shouldTestFlagInNormalCleanup | ( | ) | const |
Definition at line 336 of file CGCleanup.h.
|
inline |
Definition at line 65 of file CodeGenTypes.h.
References Base, Complete, clang::Ctor_Base, clang::Ctor_Complete, and Deleting.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCXXStructorDeclaration(), clang::CodeGen::CodeGenModule::codegenCXXStructor(), and clang::CodeGen::CodeGenModule::getAddrOfCXXStructor().
|
inline |
Definition at line 92 of file CodeGenTypes.h.
References Base, Complete, Deleting, clang::Dtor_Base, clang::Dtor_Complete, and clang::Dtor_Deleting.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCXXStructorDeclaration(), clang::CodeGen::CodeGenModule::codegenCXXStructor(), and clang::CodeGen::CodeGenModule::getAddrOfCXXStructor().
|
virtual |
Definition at line 497 of file CGOpenMPRuntime.h.
|
delete |
llvm::AllocaInst* clang::CodeGen::ActiveFlag |
An optional i1 variable indicating whether this cleanup has been activated yet.
Definition at line 246 of file CGCleanup.h.
Referenced by getActiveFlag(), hasActiveFlag(), and setActiveFlag().
class LLVM_ALIGNAS ( 8) EHCleanupScope EHScopeStack::stable_iterator clang::CodeGen::EnclosingEH |
A cleanup scope which generates the cleanup blocks lazily.
The nearest EH scope enclosing this one.
Definition at line 233 of file CGCleanup.h.
struct ExtInfo* clang::CodeGen::ExtInfo |
Definition at line 260 of file CGCleanup.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), Destroy(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), getExtInfo(), clang::CodeGen::CGFunctionInfo::getExtInfo(), clang::getFunctionExtInfo(), clang::DeclaratorDecl::setQualifierInfo(), clang::DeclaratorDecl::setTemplateParameterListsInfo(), clang::ASTDeclReader::Visit(), and clang::ASTDeclReader::VisitDeclaratorDecl().
unsigned clang::CodeGen::FixupDepth |
The number of fixups required by enclosing scopes (not including this one).
If this is the top cleanup scope, all the fixups from this index onwards belong to this scope.
Definition at line 265 of file CGCleanup.h.
Referenced by getFixupDepth(), and clang::CodeGen::CodeGenFunction::PopCleanupBlock().
class clang::CodeGen::CGOpenMPRuntime clang::CodeGen::kmp_task_t |
QualType clang::CodeGen::KmpDependInfoTy |
Type typedef struct kmp_depend_info { kmp_intptr_t base_addr; size_t len; struct { bool in:1; bool out:1; } flags; } kmp_depend_info_t;.
Definition at line 204 of file CGOpenMPRuntime.h.
Referenced by emitTaskCall().
QualType clang::CodeGen::KmpDimTy |
struct kmp_dim { // loop bounds info casted to kmp_int64 kmp_int64 lo; // lower kmp_int64 up; // upper kmp_int64 st; // stride };
Definition at line 210 of file CGOpenMPRuntime.h.
Referenced by emitDoacrossInit().
* QualType clang::CodeGen::KmpTaskTQTy |
Definition at line 195 of file CGOpenMPRuntime.h.
Referenced by emitTaskInit().
llvm::BasicBlock* clang::CodeGen::NormalBlock |
The dual entry/exit block along the normal edge.
This is lazily created if needed before the cleanup is popped.
Definition at line 242 of file CGCleanup.h.
Referenced by getNormalBlock(), and setNormalBlock().
OffloadEntriesInfoManagerTy clang::CodeGen::OffloadEntriesInfoManager |
Definition at line 351 of file CGOpenMPRuntime.h.
Referenced by createOffloadEntriesAndInfoMetadata(), createOffloadingBinaryDescriptorRegistration(), clang::CodeGen::CGOpenMPRuntime::emitTargetOutlinedFunctionHelper(), loadOffloadInfoMetadata(), and scanForTargetRegionsFunctions().
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param IfCond Not a nullptr if if clause was clang::CodeGen::specified |
Definition at line 799 of file CGOpenMPRuntime.h.
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param IfCond Not a nullptr if if clause was nullptr *otherwise *param Data Additional data for task generation like final * clang::CodeGen::state |
Definition at line 483 of file CGOpenMPRuntime.h.
Referenced by clang::ento::SimpleConstraintManager::assume(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::ExprEngine::evalBind(), clang::ento::ExprEngine::getInitialState(), clang::ento::NilReceiverBRVisitor::getNilReceiver(), clang::Sema::GetTypeForDeclarator(), clang::Sema::GetTypeForDeclaratorCast(), clang::ento::ConditionBRVisitor::patternMatch(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ento::ExprEngine::processCallEnter(), clang::ento::ExprEngine::processCallExit(), clang::ento::ExprEngine::processIndirectGoto(), clang::ento::ExprEngine::processSwitch(), clang::ento::ProgramStateRelease(), clang::ento::ProgramStateRetain(), clang::Sema::DelayedDiagnostics::push(), clang::Sema::DelayedDiagnostics::pushUndelayed(), REGISTER_TRAIT_WITH_PROGRAMSTATE(), clang::ento::FindLastStoreBRVisitor::registerStatementVarDecls(), clang::ento::ProgramStateManager::removeDeadBindings(), clang::ento::ProgramStateManager::removeGDM(), clang::ento::CheckerManager::runCheckersForEvalAssume(), clang::ento::CheckerManager::runCheckersForRegionChanges(), clang::ento::bugreporter::trackNullOrUndefValue(), clang::ento::ExprEngine::Visit(), clang::ento::ExprEngine::VisitBinaryOperator(), clang::ento::ExprEngine::VisitCast(), clang::ento::ExprEngine::VisitCommonDeclRefExpr(), clang::ento::ConditionBRVisitor::VisitConditionVariable(), clang::ento::ExprEngine::VisitCXXCatchStmt(), clang::ento::ExprEngine::VisitCXXDeleteExpr(), clang::ento::ExprEngine::VisitCXXThisExpr(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitGuardedExpr(), clang::ento::ExprEngine::VisitIncrementDecrementOperator(), clang::ento::ExprEngine::VisitInitListExpr(), clang::ento::ExprEngine::VisitLogicalExpr(), clang::ento::ExprEngine::VisitLvalArraySubscriptExpr(), clang::ento::ExprEngine::VisitLvalObjCIvarRefExpr(), clang::ento::ExprEngine::VisitMemberExpr(), clang::ento::ExprEngine::VisitObjCForCollectionStmt(), clang::ento::ConditionBRVisitor::VisitTrueTest(), clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr(), and clang::ento::ExprEngine::VisitUnaryOperator().
QualType clang::CodeGen::TgtBinaryDescriptorQTy |
struct __tgt_bin_desc{ int32_t NumDevices; // Number of devices supported.
__tgt_device_image *DeviceImages; // Arrays of device images // (one per device). __tgt_offload_entry *EntriesBegin; // Begin of the table with all the // entries. __tgt_offload_entry *EntriesEnd; // End of the table with all the // entries (non inclusive). };
Definition at line 238 of file CGOpenMPRuntime.h.
Referenced by getTgtBinaryDescriptorQTy().
QualType clang::CodeGen::TgtDeviceImageQTy |
struct __tgt_device_image{ void *ImageStart; // Pointer to the target code start.
void *ImageEnd; // Pointer to the target code end. // We also add the host entries to the device image, as it may be useful // for the target runtime to have access to that information. __tgt_offload_entry *EntriesBegin; // Begin of the table with all // the entries. __tgt_offload_entry *EntriesEnd; // End of the table with all the // entries (non inclusive). };
Definition at line 228 of file CGOpenMPRuntime.h.
Referenced by getTgtDeviceImageQTy().
QualType clang::CodeGen::TgtOffloadEntryQTy |
Type struct __tgt_offload_entry{ void *addr; // Pointer to the offload entry info.
// (function or global) char *name; // Name of the function or global. size_t size; // Size of the entry info (0 if it a function). };
Definition at line 217 of file CGOpenMPRuntime.h.
Referenced by getTgtOffloadEntryQTy().
llvm::SmallPtrSet<const VarDecl *, 4> clang::CodeGen::ThreadPrivateWithDefinition |
Set of threadprivate variables with the generated initializer.
Definition at line 441 of file CGOpenMPRuntime.h.
Referenced by emitThreadPrivateVarDefinition().
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param IfCond Not a nullptr if if clause was nullptr *otherwise *param Data Additional data for task generation like clang::CodeGen::tiednsee |
Definition at line 483 of file CGOpenMPRuntime.h.