15 #ifndef LLVM_CLANG_LIB_CODEGEN_CGOPENMPRUNTIMENVPTX_H
16 #define LLVM_CLANG_LIB_CODEGEN_CGOPENMPRUNTIMENVPTX_H
21 #include "llvm/IR/CallSite.h"
93 llvm::GlobalVariable *ActiveWorkers;
95 llvm::GlobalVariable *WorkID;
98 void initializeEnvironment();
110 llvm::Constant *createNVPTXRuntimeFunction(
unsigned Function);
118 void createOffloadEntry(llvm::Constant *
ID, llvm::Constant *Addr,
119 uint64_t Size)
override;
131 StringRef ParentName,
132 llvm::Function *&OutlinedFn,
133 llvm::Constant *&OutlinedFnID,
179 #endif // LLVM_CLANG_LIB_CODEGEN_CGOPENMPRUNTIMENVPTX_H
void emitEntryFooter(CodeGenFunction &CGF, EntryFunctionState &EST)
Signal termination of OMP execution.
const CGFunctionInfo * CGFI
VarDecl - An instance of this class is created to represent a variable declaration or definition...
CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code...
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.
Expr - This represents one expression.
Encodes a location in the source.
This is a basic class for representing single OpenMP executable directive.
OpenMPDirectiveKind
OpenMP directives.
CGFunctionInfo - Class to encapsulate the information about a function definition.
This class organizes the cross-function state that is used while generating LLVM code.
Class provides a way to call simple version of codegen for OpenMP region, or an advanced with possibl...
llvm::Value * emitParallelOrTeamsOutlinedFunction(const OMPExecutableDirective &D, const VarDecl *ThreadIDVar, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen) override
Emits inlined function for the specified OpenMP parallel.
llvm::BasicBlock * ExitBB
This file defines OpenMP AST classes for executable directives and clauses.
WorkerFunctionState(CodeGenModule &CGM)
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 stor...
CGOpenMPRuntimeNVPTX(CodeGenModule &CGM)
llvm::Function * WorkerFn
void emitEntryHeader(CodeGenFunction &CGF, EntryFunctionState &EST, WorkerFunctionState &WST)
Helper for target entry function.