|
clang
3.8.0
|
#include "clang/AST/Type.h"#include "clang/Basic/OpenMPKinds.h"#include "clang/Basic/SourceLocation.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/DenseSet.h"#include "llvm/ADT/StringMap.h"#include "llvm/IR/ValueHandle.h"Go to the source code of this file.
Classes | |
| class | clang::CodeGen::CGOpenMPRuntime |
| class | clang::OffloadEntriesInfoManagerTy |
| Entity that registers the offloading constants that were emitted so far. More... | |
| class | clang::OffloadEntriesInfoManagerTy::OffloadEntryInfo |
| Base class of the entries info. More... | |
| class | clang::OffloadEntriesInfoManagerTy::OffloadEntryInfoTargetRegion |
| Target region entries related. More... | |
Namespaces | |
| llvm | |
| DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterators. | |
| clang | |
| Dataflow Directional Tag Classes. | |
| clang::CodeGen | |
Typedefs | |
| typedef llvm::function_ref < void(CodeGenFunction &)> | clang::CodeGen::RegionCodeGenTy |
| typedef llvm::DenseMap < unsigned, llvm::Value * > | clang::CodeGen::OpenMPDebugLocMapTy |
| Map for SourceLocation and OpenMP runtime library debug locations. More... | |
| typedef llvm::DenseMap < llvm::Function *, DebugLocThreadIdTy > | clang::CodeGen::OpenMPLocThreadIDMapTy |
| Map of local debug location, ThreadId and functions. More... | |
Functions | |
| llvm::Function * | clang::createOffloadingBinaryDescriptorRegistration () |
| Creates and registers offloading binary descriptor for the current compilation unit. More... | |
| void | clang::createOffloadEntry (llvm::Constant *Addr, StringRef Name, uint64_t Size) |
| Creates offloading entry for the provided address Addr, name Name and size Size. More... | |
| void | clang::createOffloadEntriesAndInfoMetadata () |
| Creates all the offload entries in the current compilation unit along with the associated metadata. More... | |
| void | clang::loadOffloadInfoMetadata () |
| Loads all the offload entries information from the host IR metadata. More... | |
| QualType | clang::getTgtOffloadEntryQTy () |
| Returns __tgt_offload_entry type. More... | |
| QualType | clang::getTgtDeviceImageQTy () |
| Returns __tgt_device_image type. More... | |
| QualType | clang::getTgtBinaryDescriptorQTy () |
| Returns __tgt_bin_desc type. More... | |
| void | clang::scanForTargetRegionsFunctions (const Stmt *S, StringRef ParentName) |
| Start scanning from statement S and and emit all target regions found along the way. More... | |
| void | clang::emitKmpRoutineEntryT (QualType KmpInt32Ty) |
| Build type kmp_routine_entry_t (if not built yet). More... | |
| llvm::Value * | clang::emitUpdateLocation (CodeGenFunction &CGF, SourceLocation Loc, OpenMPLocationFlags Flags=OMP_IDENT_KMPC) |
| Emits object of ident_t type with info for source location. More... | |
| llvm::Type * | clang::getIdentTyPointerTy () |
| Returns pointer to ident_t type. More... | |
| llvm::Type * | clang::getKmpc_MicroPointerTy () |
| Returns pointer to kmpc_micro type. More... | |
| llvm::Constant * | clang::createRuntimeFunction (OpenMPRTLFunction Function) |
| Returns specified OpenMP runtime function. More... | |
| llvm::Constant * | clang::createForStaticInitFunction (unsigned IVSize, bool IVSigned) |
| Returns __kmpc_for_static_init_* runtime function for the specified size IVSize and sign IVSigned. More... | |
| llvm::Constant * | clang::createDispatchInitFunction (unsigned IVSize, bool IVSigned) |
| Returns __kmpc_dispatch_init_* runtime function for the specified size IVSize and sign IVSigned. More... | |
| llvm::Constant * | clang::createDispatchNextFunction (unsigned IVSize, bool IVSigned) |
| Returns __kmpc_dispatch_next_* runtime function for the specified size IVSize and sign IVSigned. More... | |
| llvm::Constant * | clang::createDispatchFiniFunction (unsigned IVSize, bool IVSigned) |
| Returns __kmpc_dispatch_fini_* runtime function for the specified size IVSize and sign IVSigned. More... | |
| llvm::Constant * | clang::getOrCreateThreadPrivateCache (const VarDecl *VD) |
| If the specified mangled name is not in the module, create and return threadprivate cache object. More... | |
| virtual Address | clang::emitThreadIDAddress (CodeGenFunction &CGF, SourceLocation Loc) |
| Emits address of the word in a memory where current thread id is stored. More... | |
| llvm::Value * | clang::getThreadID (CodeGenFunction &CGF, SourceLocation Loc) |
| Gets thread id value for the current thread. More... | |
| llvm::Constant * | clang::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 | clang::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 * | clang::getCriticalRegionLock (StringRef CriticalName) |
| Returns corresponding lock object for the specified critical region name. More... | |
| clang::CGOpenMPRuntime (CodeGenModule &CGM) | |
| virtual | clang::~CGOpenMPRuntime () |
| virtual void | clang::clear () |
| virtual llvm::Value * | clang::emitParallelOutlinedFunction (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 * | clang::emitTaskOutlinedFunction (const OMPExecutableDirective &D, const VarDecl *ThreadIDVar, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen) |
| Emits outlined function for the OpenMP task directive D. More... | |
| void | clang::functionFinished (CodeGenFunction &CGF) |
| Cleans up references to the objects in finished function. More... | |
| virtual void | clang::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 | clang::emitCriticalRegion (CodeGenFunction &CGF, StringRef CriticalName, const RegionCodeGenTy &CriticalOpGen, SourceLocation Loc, const Expr *Hint=nullptr) |
| Emits a critical region. More... | |
| virtual void | clang::emitMasterRegion (CodeGenFunction &CGF, const RegionCodeGenTy &MasterOpGen, SourceLocation Loc) |
| Emits a master region. More... | |
| virtual void | clang::emitTaskyieldCall (CodeGenFunction &CGF, SourceLocation Loc) |
| Emits code for a taskyield directive. More... | |
| virtual void | clang::emitTaskgroupRegion (CodeGenFunction &CGF, const RegionCodeGenTy &TaskgroupOpGen, SourceLocation Loc) |
| Emit a taskgroup region. More... | |
| virtual void | clang::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 | clang::emitOrderedRegion (CodeGenFunction &CGF, const RegionCodeGenTy &OrderedOpGen, SourceLocation Loc, bool IsThreads) |
| Emit an ordered region. More... | |
| virtual void | clang::emitBarrierCall (CodeGenFunction &CGF, SourceLocation Loc, OpenMPDirectiveKind Kind, bool EmitChecks=true, bool ForceSimpleCall=false) |
| Emit an implicit/explicit barrier for OpenMP threads. More... | |
| virtual bool | clang::isStaticNonchunked (OpenMPScheduleClauseKind ScheduleKind, bool Chunked) const |
| Check if the specified ScheduleKind is static non-chunked. More... | |
| virtual bool | clang::isDynamic (OpenMPScheduleClauseKind ScheduleKind) const |
| Check if the specified ScheduleKind is dynamic. More... | |
| virtual void | clang::emitForDispatchInit (CodeGenFunction &CGF, SourceLocation Loc, OpenMPScheduleClauseKind SchedKind, unsigned IVSize, bool IVSigned, bool Ordered, llvm::Value *UB, llvm::Value *Chunk=nullptr) |
| virtual void | clang::emitForStaticInit (CodeGenFunction &CGF, SourceLocation Loc, OpenMPScheduleClauseKind SchedKind, 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 | clang::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 | clang::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 * | clang::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 | clang::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 | clang::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 | clang::getAddrOfThreadPrivate (CodeGenFunction &CGF, const VarDecl *VD, Address VDAddr, SourceLocation Loc) |
| Returns address of the threadprivate variable for the current thread. More... | |
| virtual llvm::Function * | clang::emitThreadPrivateVarDefinition (const VarDecl *VD, Address VDAddr, SourceLocation Loc, bool PerformInit, CodeGenFunction *CGF=nullptr) |
| Emit a code for initialization of threadprivate variable. More... | |
| virtual void | clang::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 PrivateVars List of references to private variables for the task *directive *param PrivateCopies List of private copies for each private variable in *p PrivateVars *param FirstprivateVars List of references to private variables for the *task directive *param FirstprivateCopies List of private copies for each private variable *in p FirstprivateVars *param FirstprivateInits List of references to auto generated variables *used for initialization of a single array element Used if firstprivate *variable is of array type *param Dependences List of dependences for the task including *original expression and dependency type *virtual void | clang::emitTaskCall (CodeGenFunction &CGF, SourceLocation Loc, const OMPExecutableDirective &D, bool Tied, llvm::PointerIntPair< llvm::Value *, 1, bool > Final, llvm::Value *TaskFunction, QualType SharedsTy, Address Shareds, const Expr *IfCond, ArrayRef< const Expr * > PrivateVars, ArrayRef< const Expr * > PrivateCopies, ArrayRef< const Expr * > FirstprivateVars, ArrayRef< const Expr * > FirstprivateCopies, ArrayRef< const Expr * > FirstprivateInits, ArrayRef< std::pair< OpenMPDependClauseKind, const Expr * >> Dependences) |
| virtual void | clang::emitInlinedDirective (CodeGenFunction &CGF, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen, bool HasCancel=false) |
| Emit code for the directive that does not require outlining. More... | |
| virtual void | clang::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 | clang::emitTaskwaitCall (CodeGenFunction &CGF, SourceLocation Loc) |
| Emit code for 'taskwait' directive. More... | |
| virtual void | clang::emitCancellationPointCall (CodeGenFunction &CGF, SourceLocation Loc, OpenMPDirectiveKind CancelRegion) |
| Emit code for 'cancellation point' construct. More... | |
| virtual void | clang::emitCancelCall (CodeGenFunction &CGF, SourceLocation Loc, const Expr *IfCond, OpenMPDirectiveKind CancelRegion) |
| Emit code for 'cancel' construct. More... | |
| virtual void | clang::emitTargetOutlinedFunction (const OMPExecutableDirective &D, StringRef ParentName, llvm::Function *&OutlinedFn, llvm::Constant *&OutlinedFnID, bool IsOffloadEntry) |
| Emit outilined function for 'target' directive. More... | |
| virtual void | clang::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 | clang::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 | clang::emitTargetGlobalVariable (GlobalDecl GD) |
| Emit the global variable if it is a valid device global variable. More... | |
| virtual bool | clang::emitTargetGlobal (GlobalDecl GD) |
| Emit the global GD if it is meaningful for the target. More... | |
| virtual llvm::Function * | clang::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... | |
Variables | |
| class clang::CodeGen::CGOpenMPRuntime | clang::CodeGen::ident_t |
| llvm::StructType * | clang::CodeGen::IdentTy |
| OpenMPDebugLocMapTy | clang::CodeGen::OpenMPDebugLocMap |
| llvm::FunctionType * | clang::CodeGen::Kmpc_MicroTy |
| The type for a microtask which gets passed to __kmpc_fork_call(). More... | |
| OpenMPLocThreadIDMapTy | clang::CodeGen::OpenMPLocThreadIDMap |
| llvm::ArrayType * | clang::CodeGen::KmpCriticalNameTy |
| Type kmp_critical_name, originally defined as typedef kmp_int32 kmp_critical_name[8];. More... | |
| llvm::StringMap < llvm::AssertingVH < llvm::Constant > , llvm::BumpPtrAllocator > | clang::CodeGen::InternalVars |
| An ordered map of auto-generated variables to their unique names. More... | |
| llvm::Type * | clang::CodeGen::KmpRoutineEntryPtrTy |
| Type typedef kmp_int32 (* kmp_routine_entry_t)(kmp_int32, void *);. More... | |
| QualType | clang::CodeGen::KmpRoutineEntryPtrQTy |
| *kmp_routine_entry_t | clang::CodeGen::routine |
| Type typedef struct kmp_task { void * shareds; /**< pointer to block of pointers to shared vars. More... | |
| *kmp_int32 | clang::CodeGen::part_id |
| part id for the task More... | |
| *kmp_routine_entry_t | clang::CodeGen::destructors |
| clang::kmp_task_t | |
| *QualType | clang::KmpTaskTQTy |
| QualType | clang::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 | clang::TgtOffloadEntryQTy |
| Type struct __tgt_offload_entry{ void *addr; // Pointer to the offload entry info. More... | |
| QualType | clang::TgtDeviceImageQTy |
| struct __tgt_device_image{ void *ImageStart; // Pointer to the target code start. More... | |
| QualType | clang::TgtBinaryDescriptorQTy |
| struct __tgt_bin_desc{ int32_t NumDevices; // Number of devices supported. More... | |
| OffloadEntriesInfoManagerTy | clang::OffloadEntriesInfoManager |
| llvm::DenseSet< const VarDecl * > | clang::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 IfCond Not a nullptr if if clause was | clang::specified |
| 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 PrivateVars List of references to private variables for the task *directive *param PrivateCopies List of private copies for each private variable in *p PrivateVars *param FirstprivateVars List of references to private variables for the *task directive *param FirstprivateCopies List of private copies for each private variable *in p FirstprivateVars *param FirstprivateInits List of references to auto generated variables *used for initialization of a single array element Used if firstprivate *variable is of array type *param Dependences List of dependences for the task | clang::construct |
1.8.6