LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::OpenMPIRBuilder::ReductionInfo Struct Reference

Information about an OpenMP reduction. More...

#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"

Public Member Functions

 ReductionInfo (Type *ElementType, Value *Variable, Value *PrivateVariable, EvalKind EvaluationKind, ReductionGenCBTy ReductionGen, ReductionGenClangCBTy ReductionGenClang, ReductionGenAtomicCBTy AtomicReductionGen)
 
 ReductionInfo (Value *PrivateVariable)
 

Public Attributes

TypeElementType
 Reduction element type, must match pointee type of variable.
 
ValueVariable
 Reduction variable of pointer type.
 
ValuePrivateVariable
 Thread-private partial reduction variable.
 
EvalKind EvaluationKind
 Reduction evaluation kind - scalar, complex or aggregate.
 
ReductionGenCBTy ReductionGen
 Callback for generating the reduction body.
 
ReductionGenClangCBTy ReductionGenClang
 Clang callback for generating the reduction body.
 
ReductionGenAtomicCBTy AtomicReductionGen
 Callback for generating the atomic reduction body, may be null.
 

Detailed Description

Information about an OpenMP reduction.

Definition at line 1334 of file OMPIRBuilder.h.

Constructor & Destructor Documentation

◆ ReductionInfo() [1/2]

llvm::OpenMPIRBuilder::ReductionInfo::ReductionInfo ( Type ElementType,
Value Variable,
Value PrivateVariable,
EvalKind  EvaluationKind,
ReductionGenCBTy  ReductionGen,
ReductionGenClangCBTy  ReductionGenClang,
ReductionGenAtomicCBTy  AtomicReductionGen 
)
inline

Definition at line 1335 of file OMPIRBuilder.h.

◆ ReductionInfo() [2/2]

llvm::OpenMPIRBuilder::ReductionInfo::ReductionInfo ( Value PrivateVariable)
inline

Definition at line 1343 of file OMPIRBuilder.h.

Member Data Documentation

◆ AtomicReductionGen

ReductionGenAtomicCBTy llvm::OpenMPIRBuilder::ReductionInfo::AtomicReductionGen

Callback for generating the atomic reduction body, may be null.

The IR produced by this will be used to atomically combine two values during reduction. If null, the implementation will use the non-atomic version along with the appropriate synchronization mechanisms.

Definition at line 1374 of file OMPIRBuilder.h.

Referenced by llvm::OpenMPIRBuilder::createReductions().

◆ ElementType

Type* llvm::OpenMPIRBuilder::ReductionInfo::ElementType

Reduction element type, must match pointee type of variable.

Definition at line 1349 of file OMPIRBuilder.h.

Referenced by llvm::OpenMPIRBuilder::createReductions().

◆ EvaluationKind

EvalKind llvm::OpenMPIRBuilder::ReductionInfo::EvaluationKind

Reduction evaluation kind - scalar, complex or aggregate.

Definition at line 1358 of file OMPIRBuilder.h.

◆ PrivateVariable

Value* llvm::OpenMPIRBuilder::ReductionInfo::PrivateVariable

Thread-private partial reduction variable.

Definition at line 1355 of file OMPIRBuilder.h.

Referenced by llvm::OpenMPIRBuilder::createReductions(), and llvm::OpenMPIRBuilder::createReductionsGPU().

◆ ReductionGen

ReductionGenCBTy llvm::OpenMPIRBuilder::ReductionInfo::ReductionGen

Callback for generating the reduction body.

The IR produced by this will be used to combine two values in a thread-safe context, e.g., under lock or within the same thread, and therefore need not be atomic.

Definition at line 1363 of file OMPIRBuilder.h.

Referenced by llvm::OpenMPIRBuilder::createReductions().

◆ ReductionGenClang

ReductionGenClangCBTy llvm::OpenMPIRBuilder::ReductionInfo::ReductionGenClang

Clang callback for generating the reduction body.

The IR produced by this will be used to combine two values in a thread-safe context, e.g., under lock or within the same thread, and therefore need not be atomic.

Definition at line 1368 of file OMPIRBuilder.h.

Referenced by llvm::OpenMPIRBuilder::createReductionsGPU().

◆ Variable

Value* llvm::OpenMPIRBuilder::ReductionInfo::Variable

Reduction variable of pointer type.

Definition at line 1352 of file OMPIRBuilder.h.

Referenced by llvm::OpenMPIRBuilder::createReductions(), and llvm::OpenMPIRBuilder::createReductionsGPU().


The documentation for this struct was generated from the following file: