clang  3.9.0
Classes | Public Member Functions | List of all members
clang::CodeGen::CGOpenMPRuntimeNVPTX Class Reference

#include <CGOpenMPRuntimeNVPTX.h>

Inheritance diagram for clang::CodeGen::CGOpenMPRuntimeNVPTX:
[legend]
Collaboration diagram for clang::CodeGen::CGOpenMPRuntimeNVPTX:
[legend]

Classes

class  EntryFunctionState
 
class  WorkerFunctionState
 

Public Member Functions

void emitEntryHeader (CodeGenFunction &CGF, EntryFunctionState &EST, WorkerFunctionState &WST)
 Helper for target entry function. More...
 
void emitEntryFooter (CodeGenFunction &CGF, EntryFunctionState &EST)
 Signal termination of OMP execution. More...
 
 CGOpenMPRuntimeNVPTX (CodeGenModule &CGM)
 
void emitNumTeamsClause (CodeGenFunction &CGF, const Expr *NumTeams, const Expr *ThreadLimit, SourceLocation Loc) override
 This function ought to emit, in the general case, a call to. More...
 
llvm::ValueemitParallelOrTeamsOutlinedFunction (const OMPExecutableDirective &D, const VarDecl *ThreadIDVar, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen) override
 Emits inlined function for the specified OpenMP parallel. More...
 
void emitTeamsCall (CodeGenFunction &CGF, const OMPExecutableDirective &D, SourceLocation Loc, llvm::Value *OutlinedFn, ArrayRef< llvm::Value * > CapturedVars) override
 Emits code for teams call of the OutlinedFn with variables captured in a record which address is stored in CapturedStruct. More...
 

Additional Inherited Members

- Protected Member Functions inherited from clang::CodeGen::CGOpenMPRuntime
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...
 
- Protected Attributes inherited from clang::CodeGen::CGOpenMPRuntime
CodeGenModuleCGM
 

Detailed Description

Definition at line 26 of file CGOpenMPRuntimeNVPTX.h.

Constructor & Destructor Documentation

CGOpenMPRuntimeNVPTX::CGOpenMPRuntimeNVPTX ( CodeGenModule CGM)
explicit

Member Function Documentation

void CGOpenMPRuntimeNVPTX::emitEntryFooter ( CodeGenFunction CGF,
EntryFunctionState EST 
)
void CGOpenMPRuntimeNVPTX::emitEntryHeader ( CodeGenFunction CGF,
EntryFunctionState EST,
WorkerFunctionState WST 
)
void CGOpenMPRuntimeNVPTX::emitNumTeamsClause ( CodeGenFunction CGF,
const Expr NumTeams,
const Expr ThreadLimit,
SourceLocation  Loc 
)
override

This function ought to emit, in the general case, a call to.

Parameters
NumTeamsAn integer expression of teams.
ThreadLimitAn integer expression of threads.

Definition at line 356 of file CGOpenMPRuntimeNVPTX.cpp.

llvm::Value * CGOpenMPRuntimeNVPTX::emitParallelOrTeamsOutlinedFunction ( const OMPExecutableDirective D,
const VarDecl ThreadIDVar,
OpenMPDirectiveKind  InnermostKind,
const RegionCodeGenTy CodeGen 
)
override

Emits inlined function for the specified OpenMP parallel.

D. This outlined function has type void(*)(kmp_int32 ThreadID, kmp_int32 BoundID, struct context_vars).

Parameters
DOpenMP directive.
ThreadIDVarVariable for thread id in the current OpenMP region.
InnermostKindKind of innermost directive (for simple directives it is a directive itself, for combined - its innermost directive).
CodeGenCode generation sequence for the D directive.

Definition at line 361 of file CGOpenMPRuntimeNVPTX.cpp.

References clang::CodeGen::emitParallelOrTeamsOutlinedFunction().

void CGOpenMPRuntimeNVPTX::emitTeamsCall ( CodeGenFunction CGF,
const OMPExecutableDirective D,
SourceLocation  Loc,
llvm::Value OutlinedFn,
ArrayRef< llvm::Value * >  CapturedVars 
)
override

Emits code for teams call of the OutlinedFn with variables captured in a record which address is stored in CapturedStruct.

Parameters
OutlinedFnOutlined function to be run by team masters. Type of this function is void(*)(kmp_int32 *, kmp_int32, struct context_vars*).
CapturedVarsA pointer to the record with the references to variables used in OutlinedFn function.

Definition at line 379 of file CGOpenMPRuntimeNVPTX.cpp.

References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CreateTempAlloca(), clang::CodeGen::CodeGenFunction::EmitCallOrInvoke(), clang::CharUnits::fromQuantity(), clang::CodeGen::Address::getPointer(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::CodeGen::CodeGenFunction::InitTempAlloca(), and clang::CodeGen::CodeGenTypeCache::Int32Ty.


The documentation for this class was generated from the following files: