|
LLVM 24.0.0git
|
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, ReductionGenDataPtrPtrCBTy DataPtrPtrGen, Type *ByRefAllocatedType=nullptr, Type *ByRefElementType=nullptr) | |
| ReductionInfo (Value *PrivateVariable) | |
Public Attributes | |
| Type * | ElementType |
| Reduction element type, must match pointee type of variable. | |
| Value * | Variable |
| Reduction variable of pointer type. | |
| Value * | PrivateVariable |
| 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. | |
| ReductionGenDataPtrPtrCBTy | DataPtrPtrGen |
| Type * | ByRefAllocatedType |
| For by-ref reductions, we need to keep track of 2 extra types that are potentially different: | |
| Type * | ByRefElementType |
Information about an OpenMP reduction.
Definition at line 1743 of file OMPIRBuilder.h.
|
inline |
Definition at line 1744 of file OMPIRBuilder.h.
References AtomicReductionGen, ByRefAllocatedType, ByRefElementType, DataPtrPtrGen, ElementType, EvaluationKind, PrivateVariable, ReductionGen, ReductionGenClang, and Variable.
|
inline |
Definition at line 1758 of file OMPIRBuilder.h.
References AtomicReductionGen, DataPtrPtrGen, ElementType, EvaluationKind, PrivateVariable, ReductionGen, ReductionGenClang, llvm::OpenMPIRBuilder::Scalar, and Variable.
| 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 1791 of file OMPIRBuilder.h.
Referenced by llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), isAtomicableReductionSet(), ReductionInfo(), and ReductionInfo().
| Type* llvm::OpenMPIRBuilder::ReductionInfo::ByRefAllocatedType |
For by-ref reductions, we need to keep track of 2 extra types that are potentially different:
Definition at line 1800 of file OMPIRBuilder.h.
Referenced by ReductionInfo().
| Type* llvm::OpenMPIRBuilder::ReductionInfo::ByRefElementType |
Definition at line 1806 of file OMPIRBuilder.h.
Referenced by ReductionInfo().
| ReductionGenDataPtrPtrCBTy llvm::OpenMPIRBuilder::ReductionInfo::DataPtrPtrGen |
Definition at line 1793 of file OMPIRBuilder.h.
Referenced by llvm::OpenMPIRBuilder::createReductionsGPU(), ReductionInfo(), and ReductionInfo().
| Type* llvm::OpenMPIRBuilder::ReductionInfo::ElementType |
Reduction element type, must match pointee type of variable.
For by-ref reductions, this would be just an opaque ptr.
Definition at line 1766 of file OMPIRBuilder.h.
Referenced by llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), populateReductionFunction(), ReductionInfo(), and ReductionInfo().
| EvalKind llvm::OpenMPIRBuilder::ReductionInfo::EvaluationKind |
Reduction evaluation kind - scalar, complex or aggregate.
Definition at line 1775 of file OMPIRBuilder.h.
Referenced by ReductionInfo(), and ReductionInfo().
| Value* llvm::OpenMPIRBuilder::ReductionInfo::PrivateVariable |
Thread-private partial reduction variable.
Definition at line 1772 of file OMPIRBuilder.h.
Referenced by llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), populateReductionFunction(), ReductionInfo(), and ReductionInfo().
| 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 1780 of file OMPIRBuilder.h.
Referenced by llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), populateReductionFunction(), ReductionInfo(), and ReductionInfo().
| 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 1785 of file OMPIRBuilder.h.
Referenced by llvm::OpenMPIRBuilder::createReductionsGPU(), ReductionInfo(), and ReductionInfo().
| Value* llvm::OpenMPIRBuilder::ReductionInfo::Variable |
Reduction variable of pointer type.
Definition at line 1769 of file OMPIRBuilder.h.
Referenced by llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), populateReductionFunction(), ReductionInfo(), and ReductionInfo().