class OpenMPIRBuilder
Declaration
class OpenMPIRBuilder { /* full declaration omitted */ };
Description
An interface to create LLVM-IR for OpenMP directives. Each OpenMP directive has a corresponding public generator method.
Declared at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:26
Method Overview
- public llvm::OpenMPIRBuilder::InsertPointTy CreateBarrier(const llvm::OpenMPIRBuilder::LocationDescription & Loc, omp::Directive DK, bool ForceSimpleCall = false, bool CheckCancelFlag = true)
- public llvm::OpenMPIRBuilder::InsertPointTy CreateCancel(const llvm::OpenMPIRBuilder::LocationDescription & Loc, llvm::Value * IfCondition, omp::Directive CanceledDirective)
- public IRBuilder<>::InsertPoint CreateParallel(const llvm::OpenMPIRBuilder::LocationDescription & Loc, llvm::OpenMPIRBuilder::BodyGenCallbackTy BodyGenCB, llvm::OpenMPIRBuilder::PrivatizeCallbackTy PrivCB, llvm::OpenMPIRBuilder::FinalizeCallbackTy FiniCB, llvm::Value * IfCondition, llvm::Value * NumThreads, omp::ProcBindKind ProcBind, bool IsCancellable)
- public OpenMPIRBuilder(llvm::Module & M)
- public void addAttributes(omp::RuntimeFunction FnID, llvm::Function & Fn)
- public void initialize()
- public void popFinalizationCB()
- public void pushFinalizationCB(const llvm::OpenMPIRBuilder::FinalizationInfo & FI)
Methods
¶llvm::OpenMPIRBuilder::InsertPointTy
CreateBarrier(const llvm::OpenMPIRBuilder::
LocationDescription& Loc,
omp::Directive DK,
bool ForceSimpleCall = false,
bool CheckCancelFlag = true)
llvm::OpenMPIRBuilder::InsertPointTy
CreateBarrier(const llvm::OpenMPIRBuilder::
LocationDescription& Loc,
omp::Directive DK,
bool ForceSimpleCall = false,
bool CheckCancelFlag = true)
Description
Generator for '#omp barrier'
Declared at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:138
Parameters
- const llvm::OpenMPIRBuilder::LocationDescription& Loc
- The location where the barrier directive was encountered.
- omp::Directive DK
- The kind of directive that caused the barrier.
- bool ForceSimpleCall = false
- Flag to force a simple (=non-cancellation) barrier.
- bool CheckCancelFlag = true
- Flag to indicate a cancel barrier return value should be checked and acted upon.
Returns
The insertion point after the barrier.
¶llvm::OpenMPIRBuilder::InsertPointTy CreateCancel(
const llvm::OpenMPIRBuilder::
LocationDescription& Loc,
llvm::Value* IfCondition,
omp::Directive CanceledDirective)
llvm::OpenMPIRBuilder::InsertPointTy CreateCancel(
const llvm::OpenMPIRBuilder::
LocationDescription& Loc,
llvm::Value* IfCondition,
omp::Directive CanceledDirective)
Description
Generator for '#omp cancel'
Declared at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:149
Parameters
- const llvm::OpenMPIRBuilder::LocationDescription& Loc
- The location where the directive was encountered.
- llvm::Value* IfCondition
- The evaluated 'if' clause expression, if any.
- omp::Directive CanceledDirective
- The kind of directive that is cancled.
Returns
The insertion point after the barrier.
¶IRBuilder<>::InsertPoint CreateParallel(
const llvm::OpenMPIRBuilder::
LocationDescription& Loc,
llvm::OpenMPIRBuilder::BodyGenCallbackTy
BodyGenCB,
llvm::OpenMPIRBuilder::PrivatizeCallbackTy
PrivCB,
llvm::OpenMPIRBuilder::FinalizeCallbackTy
FiniCB,
llvm::Value* IfCondition,
llvm::Value* NumThreads,
omp::ProcBindKind ProcBind,
bool IsCancellable)
IRBuilder<>::InsertPoint CreateParallel(
const llvm::OpenMPIRBuilder::
LocationDescription& Loc,
llvm::OpenMPIRBuilder::BodyGenCallbackTy
BodyGenCB,
llvm::OpenMPIRBuilder::PrivatizeCallbackTy
PrivCB,
llvm::OpenMPIRBuilder::FinalizeCallbackTy
FiniCB,
llvm::Value* IfCondition,
llvm::Value* NumThreads,
omp::ProcBindKind ProcBind,
bool IsCancellable)
Description
Generator for '#omp parallel'
Declared at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:166
Parameters
- const llvm::OpenMPIRBuilder::LocationDescription& Loc
- The insert and source location description.
- llvm::OpenMPIRBuilder::BodyGenCallbackTy BodyGenCB
- Callback that will generate the region code.
- llvm::OpenMPIRBuilder::PrivatizeCallbackTy PrivCB
- Callback to copy a given variable (think copy constructor).
- llvm::OpenMPIRBuilder::FinalizeCallbackTy FiniCB
- Callback to finalize variable copies.
- llvm::Value* IfCondition
- The evaluated 'if' clause expression, if any.
- llvm::Value* NumThreads
- The evaluated 'num_threads' clause expression, if any.
- omp::ProcBindKind ProcBind
- The value of the 'proc_bind' clause (see ProcBindKind).
- bool IsCancellable
- Flag to indicate a cancellable parallel region.
Returns
The insertion position *after* the parallel.
¶OpenMPIRBuilder(llvm::Module& M)
OpenMPIRBuilder(llvm::Module& M)
Description
Create a new OpenMPIRBuilder operating on the given module \p M. This will not have an effect on \p M (see initialize).
Declared at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:30
Parameters
- llvm::Module& M
¶void addAttributes(omp::RuntimeFunction FnID,
llvm::Function& Fn)
void addAttributes(omp::RuntimeFunction FnID,
llvm::Function& Fn)
Description
Add attributes known for \p FnID to \p Fn.
Declared at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:38
Parameters
- omp::RuntimeFunction FnID
- llvm::Function& Fn
¶void initialize()
void initialize()
Description
Initialize the internal state, this will put structures types and potentially other helpers into the underlying module. Must be called before any other method and only once!
Declared at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:35
¶void popFinalizationCB()
void popFinalizationCB()
Description
Pop the last finalization callback from the finalization stack. NOTE: Temporary solution until Clang CG is gone.
Declared at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:76
¶void pushFinalizationCB(
const llvm::OpenMPIRBuilder::FinalizationInfo&
FI)
void pushFinalizationCB(
const llvm::OpenMPIRBuilder::FinalizationInfo&
FI)
Description
Push a finalization callback on the finalization stack. NOTE: Temporary solution until Clang CG is gone.
Declared at: llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h:69
Parameters
- const llvm::OpenMPIRBuilder::FinalizationInfo& FI