LLVM 20.0.0git
Classes | Public Types | Public Member Functions | List of all members
llvm::OffloadEntriesInfoManager Class Reference

Class that manages information about offload code regions and data. More...

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

Classes

class  OffloadEntryInfo
 Base class of the entries info. More...
 
class  OffloadEntryInfoDeviceGlobalVar
 Device global variable entries info. More...
 
class  OffloadEntryInfoTargetRegion
 Target region entries info. More...
 

Public Types

enum  OMPTargetRegionEntryKind : uint32_t { OMPTargetRegionEntryTargetRegion = 0x0 }
 Kind of the target registry entry. More...
 
enum  OMPTargetGlobalVarEntryKind : uint32_t {
  OMPTargetGlobalVarEntryTo = 0x0 , OMPTargetGlobalVarEntryLink = 0x1 , OMPTargetGlobalVarEntryEnter = 0x2 , OMPTargetGlobalVarEntryNone = 0x3 ,
  OMPTargetGlobalVarEntryIndirect = 0x8 , OMPTargetGlobalRegisterRequires = 0x10
}
 Kind of the global variable entry.. More...
 
enum  OMPTargetDeviceClauseKind : uint32_t { OMPTargetDeviceClauseAny = 0x0 , OMPTargetDeviceClauseNoHost = 0x1 , OMPTargetDeviceClauseHost = 0x2 , OMPTargetDeviceClauseNone = 0x3 }
 Kind of device clause for declare target variables and functions NOTE: Currently not used as a part of a variable entry used for Flang and Clang to interface with the variable related registration functions. More...
 
typedef function_ref< void(const TargetRegionEntryInfo &EntryInfo, const OffloadEntryInfoTargetRegion &)> OffloadTargetRegionEntryInfoActTy
 brief Applies action Action on all registered entries.
 
typedef function_ref< void(StringRef, const OffloadEntryInfoDeviceGlobalVar &)> OffloadDeviceGlobalVarEntryInfoActTy
 Applies action Action on all registered entries.
 

Public Member Functions

bool empty () const
 Return true if a there are no entries defined.
 
unsigned size () const
 Return number of entries defined so far.
 
 OffloadEntriesInfoManager (OpenMPIRBuilder *builder)
 
void initializeTargetRegionEntryInfo (const TargetRegionEntryInfo &EntryInfo, unsigned Order)
 Initialize target region entry.
 
void registerTargetRegionEntryInfo (TargetRegionEntryInfo EntryInfo, Constant *Addr, Constant *ID, OMPTargetRegionEntryKind Flags)
 Register target region entry.
 
bool hasTargetRegionEntryInfo (TargetRegionEntryInfo EntryInfo, bool IgnoreAddressId=false) const
 Return true if a target region entry with the provided information exists.
 
void getTargetRegionEntryFnName (SmallVectorImpl< char > &Name, const TargetRegionEntryInfo &EntryInfo)
 
void actOnTargetRegionEntriesInfo (const OffloadTargetRegionEntryInfoActTy &Action)
 
void initializeDeviceGlobalVarEntryInfo (StringRef Name, OMPTargetGlobalVarEntryKind Flags, unsigned Order)
 Initialize device global variable entry.
 
void registerDeviceGlobalVarEntryInfo (StringRef VarName, Constant *Addr, int64_t VarSize, OMPTargetGlobalVarEntryKind Flags, GlobalValue::LinkageTypes Linkage)
 Register device global variable entry.
 
bool hasDeviceGlobalVarEntryInfo (StringRef VarName) const
 Checks if the variable with the given name has been registered already.
 
void actOnDeviceGlobalVarEntriesInfo (const OffloadDeviceGlobalVarEntryInfoActTy &Action)
 

Detailed Description

Class that manages information about offload code regions and data.

Definition at line 232 of file OMPIRBuilder.h.

Member Typedef Documentation

◆ OffloadDeviceGlobalVarEntryInfoActTy

Applies action Action on all registered entries.

Definition at line 438 of file OMPIRBuilder.h.

◆ OffloadTargetRegionEntryInfoActTy

brief Applies action Action on all registered entries.

Definition at line 348 of file OMPIRBuilder.h.

Member Enumeration Documentation

◆ OMPTargetDeviceClauseKind

Kind of device clause for declare target variables and functions NOTE: Currently not used as a part of a variable entry used for Flang and Clang to interface with the variable related registration functions.

Enumerator
OMPTargetDeviceClauseAny 

The target is marked for all devices.

OMPTargetDeviceClauseNoHost 

The target is marked for non-host devices.

OMPTargetDeviceClauseHost 

The target is marked for host devices.

OMPTargetDeviceClauseNone 

The target is marked as having no clause.

Definition at line 377 of file OMPIRBuilder.h.

◆ OMPTargetGlobalVarEntryKind

Kind of the global variable entry..

Enumerator
OMPTargetGlobalVarEntryTo 

Mark the entry as a to declare target.

OMPTargetGlobalVarEntryLink 

Mark the entry as a to declare target link.

OMPTargetGlobalVarEntryEnter 

Mark the entry as a declare target enter.

OMPTargetGlobalVarEntryNone 

Mark the entry as having no declare target entry kind.

OMPTargetGlobalVarEntryIndirect 

Mark the entry as a declare target indirect global.

OMPTargetGlobalRegisterRequires 

Mark the entry as a register requires global.

Definition at line 357 of file OMPIRBuilder.h.

◆ OMPTargetRegionEntryKind

Kind of the target registry entry.

Enumerator
OMPTargetRegionEntryTargetRegion 

Mark the entry as target region.

Definition at line 297 of file OMPIRBuilder.h.

Constructor & Destructor Documentation

◆ OffloadEntriesInfoManager()

llvm::OffloadEntriesInfoManager::OffloadEntriesInfoManager ( OpenMPIRBuilder builder)
inline

Definition at line 290 of file OMPIRBuilder.h.

Member Function Documentation

◆ actOnDeviceGlobalVarEntriesInfo()

void OffloadEntriesInfoManager::actOnDeviceGlobalVarEntriesInfo ( const OffloadDeviceGlobalVarEntryInfoActTy Action)

◆ actOnTargetRegionEntriesInfo()

void OffloadEntriesInfoManager::actOnTargetRegionEntriesInfo ( const OffloadTargetRegionEntryInfoActTy Action)

◆ empty()

bool OffloadEntriesInfoManager::empty ( ) const

Return true if a there are no entries defined.

Definition at line 9543 of file OMPIRBuilder.cpp.

Referenced by llvm::OpenMPIRBuilder::createOffloadEntriesAndInfoMetadata(), and llvm::OpenMPIRBuilder::finalize().

◆ getTargetRegionEntryFnName()

void OffloadEntriesInfoManager::getTargetRegionEntryFnName ( SmallVectorImpl< char > &  Name,
const TargetRegionEntryInfo EntryInfo 
)

◆ hasDeviceGlobalVarEntryInfo()

bool llvm::OffloadEntriesInfoManager::hasDeviceGlobalVarEntryInfo ( StringRef  VarName) const
inline

Checks if the variable with the given name has been registered already.

Definition at line 433 of file OMPIRBuilder.h.

References llvm::StringMap< ValueTy, AllocatorTy >::count().

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

◆ hasTargetRegionEntryInfo()

bool OffloadEntriesInfoManager::hasTargetRegionEntryInfo ( TargetRegionEntryInfo  EntryInfo,
bool  IgnoreAddressId = false 
) const

Return true if a target region entry with the provided information exists.

Definition at line 9604 of file OMPIRBuilder.cpp.

References llvm::TargetRegionEntryInfo::Count.

◆ initializeDeviceGlobalVarEntryInfo()

void OffloadEntriesInfoManager::initializeDeviceGlobalVarEntryInfo ( StringRef  Name,
OMPTargetGlobalVarEntryKind  Flags,
unsigned  Order 
)

Initialize device global variable entry.

This is ONLY used for DEVICE compilation.

Definition at line 9628 of file OMPIRBuilder.cpp.

References llvm::omp::Flags, and Name.

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

◆ initializeTargetRegionEntryInfo()

void OffloadEntriesInfoManager::initializeTargetRegionEntryInfo ( const TargetRegionEntryInfo EntryInfo,
unsigned  Order 
)

Initialize target region entry.

This is ONLY needed for DEVICE compilation.

Definition at line 9564 of file OMPIRBuilder.cpp.

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

◆ registerDeviceGlobalVarEntryInfo()

void OffloadEntriesInfoManager::registerDeviceGlobalVarEntryInfo ( StringRef  VarName,
Constant Addr,
int64_t  VarSize,
OMPTargetGlobalVarEntryKind  Flags,
GlobalValue::LinkageTypes  Linkage 
)

◆ registerTargetRegionEntryInfo()

void OffloadEntriesInfoManager::registerTargetRegionEntryInfo ( TargetRegionEntryInfo  EntryInfo,
Constant Addr,
Constant ID,
OMPTargetRegionEntryKind  Flags 
)

◆ size()

unsigned llvm::OffloadEntriesInfoManager::size ( ) const
inline

Return number of entries defined so far.

Definition at line 288 of file OMPIRBuilder.h.

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


The documentation for this class was generated from the following files: