LLVM  14.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"

Collaboration diagram for llvm::OpenMPIRBuilder::ReductionInfo:
Collaboration graph
[legend]

Public Member Functions

 ReductionInfo (Value *Variable, Value *PrivateVariable, ReductionGenTy ReductionGen, AtomicReductionGenTy AtomicReductionGen)
 
TypegetElementType () const
 Returns the type of the element being reduced. More...
 

Public Attributes

ValueVariable
 Reduction variable of pointer type. More...
 
ValuePrivateVariable
 Thread-private partial reduction variable. More...
 
ReductionGenTy ReductionGen
 Callback for generating the reduction body. More...
 
AtomicReductionGenTy AtomicReductionGen
 Callback for generating the atomic reduction body, may be null. More...
 

Detailed Description

Information about an OpenMP reduction.

Definition at line 548 of file OMPIRBuilder.h.

Constructor & Destructor Documentation

◆ ReductionInfo()

llvm::OpenMPIRBuilder::ReductionInfo::ReductionInfo ( Value Variable,
Value PrivateVariable,
ReductionGenTy  ReductionGen,
AtomicReductionGenTy  AtomicReductionGen 
)
inline

Definition at line 549 of file OMPIRBuilder.h.

Member Function Documentation

◆ getElementType()

Type* llvm::OpenMPIRBuilder::ReductionInfo::getElementType ( ) const
inline

Returns the type of the element being reduced.

Definition at line 556 of file OMPIRBuilder.h.

References llvm::Type::getPointerElementType(), llvm::Value::getType(), and Variable.

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

Member Data Documentation

◆ AtomicReductionGen

AtomicReductionGenTy 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 575 of file OMPIRBuilder.h.

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

◆ PrivateVariable

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

Thread-private partial reduction variable.

Definition at line 564 of file OMPIRBuilder.h.

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

◆ ReductionGen

ReductionGenTy 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 569 of file OMPIRBuilder.h.

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

◆ Variable

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

Reduction variable of pointer type.

Definition at line 561 of file OMPIRBuilder.h.

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


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