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)

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)

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)

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)

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)

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()

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()

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)

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