clang
3.7.0
|
The scope used to remap some variables as private in the OpenMP loop body (or other captured region emitted without outlining), and to restore old vars back on exit. More...
#include <CodeGenFunction.h>
Public Member Functions | |
OMPPrivateScope (CodeGenFunction &CGF) | |
Enter a new OpenMP private scope. More... | |
bool | addPrivate (const VarDecl *LocalVD, const std::function< llvm::Value *()> &PrivateGen) |
Registers LocalVD variable as a private and apply PrivateGen function for it to generate corresponding private variable. PrivateGen returns an address of the generated private variable. More... | |
bool | Privatize () |
Privatizes local variables previously registered as private. Registration is separate from the actual privatization to allow initializers use values of the original variables, not the private one. This is important, for example, if the private variable is a class variable initialized by a constructor that references other private variables. But at initialization original variables must be used, not private copies. More... | |
void | ForceCleanup () |
~OMPPrivateScope () | |
Exit scope - all the mapped variables are restored. More... | |
![]() | |
RunCleanupsScope (CodeGenFunction &CGF) | |
Enter a new cleanup scope. More... | |
~RunCleanupsScope () | |
Exit this cleanup scope, emitting any accumulated cleanups. More... | |
bool | requiresCleanups () const |
Determine whether this scope requires any cleanups. More... | |
void | ForceCleanup () |
Force the emission of cleanups now, instead of waiting until this object is destroyed. More... | |
Additional Inherited Members | |
![]() | |
bool | PerformCleanup |
CodeGenFunction & | CGF |
The scope used to remap some variables as private in the OpenMP loop body (or other captured region emitted without outlining), and to restore old vars back on exit.
Definition at line 561 of file CodeGenFunction.h.
|
inlineexplicit |
Enter a new OpenMP private scope.
Definition at line 572 of file CodeGenFunction.h.
|
inline |
Exit scope - all the mapped variables are restored.
Definition at line 617 of file CodeGenFunction.h.
References ForceCleanup(), and clang::CodeGen::CodeGenFunction::RunCleanupsScope::PerformCleanup.
|
inline |
Registers LocalVD variable as a private and apply PrivateGen function for it to generate corresponding private variable. PrivateGen returns an address of the generated private variable.
Definition at line 580 of file CodeGenFunction.h.
References clang::CodeGen::CodeGenFunction::RunCleanupsScope::CGF, and clang::CodeGen::CodeGenFunction::RunCleanupsScope::PerformCleanup.
Referenced by emitLinearClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPCopy(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPLastprivateClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPPrivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPrivateLinearVars(), emitPrivateLoopCounters(), and emitReductionFunction().
|
inline |
Definition at line 607 of file CodeGenFunction.h.
References clang::CodeGen::CodeGenFunction::RunCleanupsScope::CGF, and clang::CodeGen::CodeGenFunction::RunCleanupsScope::ForceCleanup().
Referenced by emitReductionFunction(), and ~OMPPrivateScope().
|
inline |
Privatizes local variables previously registered as private. Registration is separate from the actual privatization to allow initializers use values of the original variables, not the private one. This is important, for example, if the private variable is a class variable initialized by a constructor that references other private variables. But at initialization original variables must be used, not private copies.
Definition at line 599 of file CodeGenFunction.h.
References clang::CodeGen::CodeGenFunction::RunCleanupsScope::CGF.
Referenced by emitLinearClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPCopy(), clang::CodeGen::CodeGenFunction::EmitOMPParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSingleDirective(), emitPreCond(), and emitReductionFunction().