clang
6.0.0
|
#include "/work/www-prereleases/6.0.0/rc2/docsbuild/llvm.src/tools/clang/lib/CodeGen/CGOpenMPRuntime.h"
Protected Member Functions | |
virtual void | createOffloadEntry (llvm::Constant *ID, llvm::Constant *Addr, uint64_t Size, int32_t Flags=0) |
Creates offloading entry for the provided entry ID ID, address Addr, size Size, and flags Flags. More... | |
virtual void | emitTargetOutlinedFunctionHelper (const OMPExecutableDirective &D, StringRef ParentName, llvm::Function *&OutlinedFn, llvm::Constant *&OutlinedFnID, bool IsOffloadEntry, const RegionCodeGenTy &CodeGen) |
Helper to emit outlined function for 'target' directive. More... | |
void | emitOMPIfClause (CodeGenFunction &CGF, const Expr *Cond, const RegionCodeGenTy &ThenGen, const RegionCodeGenTy &ElseGen) |
Emits code for OpenMP 'if' clause using specified CodeGen function. 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::Value * | getThreadID (CodeGenFunction &CGF, SourceLocation Loc) |
Gets thread id value for the current thread. More... | |
virtual StringRef | getOutlinedHelperName () const |
Get the function name of an outlined region. More... | |
void | emitCall (CodeGenFunction &CGF, llvm::Value *Callee, ArrayRef< llvm::Value *> Args=llvm::None, SourceLocation Loc=SourceLocation()) const |
Emits Callee function call with arguments Args with location Loc . More... | |
Protected Attributes | |
CodeGenModule & | CGM |
Definition at line 199 of file CGOpenMPRuntime.h.
|
protectedvirtual |
Creates offloading entry for the provided entry ID ID, address Addr, size Size, and flags Flags.
Definition at line 3532 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::ConstantInitBuilderTemplateBase< Traits >::beginStruct(), CGM, clang::CodeGen::CodeGenTypes::ConvertTypeForMem(), clang::ExternalLinkage, clang::CharUnits::fromQuantity(), clang::CodeGen::CodeGenModule::getModule(), clang::CodeGen::getTgtOffloadEntryQTy(), clang::CodeGen::CodeGenModule::getTypes(), clang::CodeGen::CodeGenTypeCache::Int32Ty, clang::CodeGen::CodeGenTypeCache::Int8PtrTy, clang::InternalLinkage, clang::CodeGen::CodeGenTypeCache::SizeTy, and clang::CodeGen::CodeGenTypeCache::VoidPtrTy.
|
protected |
Emits Callee
function call with arguments Args
with location Loc
.
Definition at line 7995 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::ApplyDebugLocation::CreateDefaultArtificial(), clang::CodeGen::CodeGenFunction::EmitNounwindRuntimeCall(), clang::CodeGen::emitOutlinedFunctionCall(), clang::CodeGen::CodeGenFunction::EmitRuntimeCall(), clang::CodeGen::CodeGenFunction::GetAddrOfLocalVar(), clang::CodeGen::getParameterAddress(), and clang::SourceLocation::isValid().
|
protected |
Emits code for OpenMP 'if' clause using specified CodeGen function.
Here is the logic: if (Cond) { ThenGen(); } else { ElseGen(); }
Definition at line 2510 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::ConstantFoldsToSimpleInteger(), clang::CodeGen::CodeGenFunction::createBasicBlock(), clang::CodeGen::ApplyDebugLocation::CreateEmpty(), clang::CodeGen::CodeGenFunction::EmitBlock(), clang::CodeGen::CodeGenFunction::EmitBranch(), clang::CodeGen::CodeGenFunction::EmitBranchOnBoolExpr(), clang::CodeGen::emitParallelCall(), emitUpdateLocation(), clang::CharUnits::fromQuantity(), clang::CodeGen::Address::getPointer(), clang::Stmt::getSourceRange(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), OMPRTL__kmpc_end_serialized_parallel, OMPRTL__kmpc_fork_call, and OMPRTL__kmpc_serialized_parallel.
Referenced by emitOffloadingArraysArgument().
|
protectedvirtual |
Helper to emit outlined 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 | Lambda codegen specific to an accelerator device. An outlined function may not be an entry if, e.g. the if clause always evaluates to false. |
Definition at line 5854 of file CGOpenMPRuntime.cpp.
References clang::ExternalLinkage, clang::OMPExecutableDirective::getAssociatedStmt(), clang::CodeGen::CodeGenModule::getContext(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::OMPExecutableDirective::getLocStart(), clang::CodeGen::CodeGenModule::getModule(), getTargetEntryUniqueInfo(), clang::CodeGen::CodeGenTypeCache::Int8PtrTy, clang::CodeGen::CodeGenTypeCache::Int8Ty, Line, clang::CodeGen::OffloadEntriesInfoManager, and clang::CodeGen::OffloadEntriesInfoManagerTy::registerTargetRegionEntryInfo().
Referenced by getTargetEntryUniqueInfo().
|
protected |
Emits object of ident_t type with info for source location.
Flags | Flags for OpenMP location. |
Definition at line 1418 of file CGOpenMPRuntime.cpp.
References CGM, clang::CodeGen::CodeGenFunction::CurFn, clang::CodeGen::CodeGenModule::getCodeGenOpts(), clang::CodeGen::Address::getPointer(), clang::CodeGen::Address::invalid(), clang::SourceLocation::isInvalid(), and clang::codegenoptions::NoDebugInfo.
Referenced by addMonoNonMonoModifier(), emitForStaticInitCall(), emitOMPIfClause(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitParallelCall(), emitParallelOrTeamsOutlinedFunction(), emitReduceFiniFunction(), clang::CodeGen::emitThreadPrivateVarInit(), getCancellationKind(), and clang::CodeGen::getOrCreateThreadPrivateCache().
|
protected |
Returns pointer to ident_t type.
Definition at line 1537 of file CGOpenMPRuntime.cpp.
Referenced by clang::CodeGen::createRuntimeFunction().
|
inlineprotectedvirtual |
Get the function name of an outlined region.
Reimplemented in clang::CodeGen::CGOpenMPRuntimeNVPTX.
Definition at line 251 of file CGOpenMPRuntime.h.
Referenced by emitParallelOrTeamsOutlinedFunction().
|
protected |
Gets thread id value for the current thread.
Definition at line 1476 of file CGOpenMPRuntime.cpp.
References clang::CodeGen::CodeGenFunction::CurFn.
Referenced by addMonoNonMonoModifier(), emitForStaticInitCall(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitParallelCall(), emitParallelOrTeamsOutlinedFunction(), emitReduceFiniFunction(), clang::CodeGen::emitThreadIDAddress(), getCancellationKind(), and clang::CodeGen::getOrCreateThreadPrivateCache().
|
protected |
Definition at line 201 of file CGOpenMPRuntime.h.
Referenced by clang::CodeGen::createOffloadEntriesAndInfoMetadata(), createOffloadEntry(), clang::CodeGen::createOffloadingBinaryDescriptorRegistration(), clang::CodeGen::createRuntimeFunction(), emitForStaticInitCall(), clang::CodeGen::emitKmpRoutineEntryT(), emitParallelOrTeamsOutlinedFunction(), emitReductionCombiner(), clang::CodeGen::emitTaskInit(), clang::CodeGen::emitThreadPrivateVarInit(), emitUpdateLocation(), clang::CodeGen::emitUserDefinedReduction(), clang::CodeGen::getKmpc_MicroPointerTy(), clang::CodeGen::getOrCreateThreadPrivateCache(), clang::CodeGen::CGOpenMPRuntimeNVPTX::getOutlinedHelperName(), clang::CodeGen::getTgtBinaryDescriptorQTy(), clang::CodeGen::getTgtDeviceImageQTy(), clang::CodeGen::getTgtOffloadEntryQTy(), and clang::CodeGen::loadOffloadInfoMetadata().