LLVM 23.0.0git
llvm::AMDGPUMachineModuleInfo Class Referencefinal

#include "Target/AMDGPU/AMDGPUMachineModuleInfo.h"

Inheritance diagram for llvm::AMDGPUMachineModuleInfo:
[legend]

Public Member Functions

 AMDGPUMachineModuleInfo (const MachineModuleInfo &MMI)
SyncScope::ID getAgentSSID () const
SyncScope::ID getWorkgroupSSID () const
SyncScope::ID getWavefrontSSID () const
SyncScope::ID getClusterSSID () const
SyncScope::ID getSystemOneAddressSpaceSSID () const
SyncScope::ID getAgentOneAddressSpaceSSID () const
SyncScope::ID getWorkgroupOneAddressSpaceSSID () const
SyncScope::ID getWavefrontOneAddressSpaceSSID () const
SyncScope::ID getSingleThreadOneAddressSpaceSSID () const
SyncScope::ID getClusterOneAddressSpaceSSID () const
std::optional< SyncScope::IDgetMergedSyncScopeID (SyncScope::ID A, SyncScope::ID B) const
 In AMDGPU, synchronization scopes are inclusive: a larger scope is inclusive of a smaller one (e.g.
Public Member Functions inherited from llvm::MachineModuleInfoELF
 MachineModuleInfoELF (const MachineModuleInfo &)
StubValueTygetGVStubEntry (MCSymbol *Sym)
const MCExpr *& getAuthPtrStubEntry (MCSymbol *Sym)
SymbolListTy GetGVStubList ()
 Accessor methods to return the set of stubs in sorted order.
ExprStubListTy getAuthGVStubList ()
bool hasSignedPersonality () const
Public Member Functions inherited from llvm::MachineModuleInfoImpl
virtual ~MachineModuleInfoImpl ()

Additional Inherited Members

Public Types inherited from llvm::MachineModuleInfoImpl
using StubValueTy = PointerIntPair<MCSymbol *, 1, bool>
using SymbolListTy = std::vector<std::pair<MCSymbol *, StubValueTy>>
using ExprStubListTy = std::vector<std::pair<MCSymbol *, const MCExpr *>>
 A variant of SymbolListTy where the stub is a generalized MCExpr.
Static Protected Member Functions inherited from llvm::MachineModuleInfoImpl
static SymbolListTy getSortedStubs (DenseMap< MCSymbol *, StubValueTy > &)
 Return the entries from a DenseMap in a deterministic sorted orer.
static ExprStubListTy getSortedExprStubs (DenseMap< MCSymbol *, const MCExpr * > &)
 Return the entries from a DenseMap in a deterministic sorted orer.

Detailed Description

Definition at line 23 of file AMDGPUMachineModuleInfo.h.

Constructor & Destructor Documentation

◆ AMDGPUMachineModuleInfo()

Member Function Documentation

◆ getAgentOneAddressSpaceSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getAgentOneAddressSpaceSSID ( ) const
inline
Returns
Agent synchronization scope ID (single address space).

Definition at line 72 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().

◆ getAgentSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getAgentSSID ( ) const
inline
Returns
Agent synchronization scope ID (cross address space).

Definition at line 54 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().

◆ getClusterOneAddressSpaceSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getClusterOneAddressSpaceSSID ( ) const
inline
Returns
Single thread synchronization scope ID (single address space).

Definition at line 88 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().

◆ getClusterSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getClusterSSID ( ) const
inline
Returns
Cluster synchronization scope ID (cross address space).

Definition at line 66 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().

◆ getMergedSyncScopeID()

std::optional< SyncScope::ID > llvm::AMDGPUMachineModuleInfo::getMergedSyncScopeID ( SyncScope::ID A,
SyncScope::ID B ) const
inline

In AMDGPU, synchronization scopes are inclusive: a larger scope is inclusive of a smaller one (e.g.

agent includes workgroup).

Returns the merged synchronization scope of A and B: the smallest scope that is inclusive of both. Takes the larger inclusion level and, if either scope is cross-address-space, the result is also cross-address-space (since a one-AS scope cannot subsume a cross-AS scope at the same level).

Returns
The merged scope ID, or "std::nullopt" if either scope is not supported by the AMDGPU target.

Definition at line 103 of file AMDGPUMachineModuleInfo.h.

References A(), B(), llvm::enumerate(), getAgentOneAddressSpaceSSID(), getAgentSSID(), getClusterOneAddressSpaceSSID(), getClusterSSID(), getSingleThreadOneAddressSpaceSSID(), getSystemOneAddressSpaceSSID(), getWavefrontOneAddressSpaceSSID(), getWavefrontSSID(), getWorkgroupOneAddressSpaceSSID(), getWorkgroupSSID(), I, llvm::SyncScope::SingleThread, and llvm::SyncScope::System.

◆ getSingleThreadOneAddressSpaceSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getSingleThreadOneAddressSpaceSSID ( ) const
inline
Returns
Single thread synchronization scope ID (single address space).

Definition at line 84 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().

◆ getSystemOneAddressSpaceSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getSystemOneAddressSpaceSSID ( ) const
inline
Returns
System synchronization scope ID (single address space).

Definition at line 68 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().

◆ getWavefrontOneAddressSpaceSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getWavefrontOneAddressSpaceSSID ( ) const
inline
Returns
Wavefront synchronization scope ID (single address space).

Definition at line 80 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().

◆ getWavefrontSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getWavefrontSSID ( ) const
inline
Returns
Wavefront synchronization scope ID (cross address space).

Definition at line 62 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().

◆ getWorkgroupOneAddressSpaceSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getWorkgroupOneAddressSpaceSSID ( ) const
inline
Returns
Workgroup synchronization scope ID (single address space).

Definition at line 76 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().

◆ getWorkgroupSSID()

SyncScope::ID llvm::AMDGPUMachineModuleInfo::getWorkgroupSSID ( ) const
inline
Returns
Workgroup synchronization scope ID (cross address space).

Definition at line 58 of file AMDGPUMachineModuleInfo.h.

Referenced by getMergedSyncScopeID().


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