clang  16.0.0git
Public Types | Public Member Functions | List of all members
clang::AtomicScopeHIPModel Class Reference

Defines the synch scope model for HIP. More...

#include "clang/Basic/SyncScope.h"

Inheritance diagram for clang::AtomicScopeHIPModel:
Inheritance graph
[legend]
Collaboration diagram for clang::AtomicScopeHIPModel:
Collaboration graph
[legend]

Public Types

enum  ID {
  SingleThread = 1, Wavefront = 2, Workgroup = 3, Agent = 4,
  System = 5, Last = System
}
 The enum values match the pre-defined macros __HIP_MEMORY_SCOPE_*, which are used to define memory_scope_* enums in hip-c.h. More...
 

Public Member Functions

 AtomicScopeHIPModel ()
 
SyncScope map (unsigned S) const override
 Maps language specific synch scope values to internal SyncScope enum. More...
 
bool isValid (unsigned S) const override
 Check if the compile-time constant synch scope value is valid. More...
 
ArrayRef< unsignedgetRuntimeValues () const override
 Get all possible synch scope values that might be encountered at runtime for the current language. More...
 
unsigned getFallBackValue () const override
 If atomic builtin function is called with invalid synch scope value at runtime, it will fall back to a valid synch scope value returned by this function. More...
 
- Public Member Functions inherited from clang::AtomicScopeModel
virtual ~AtomicScopeModel ()
 

Additional Inherited Members

- Static Public Member Functions inherited from clang::AtomicScopeModel
static std::unique_ptr< AtomicScopeModelcreate (AtomicScopeModelKind K)
 Create an atomic scope model by AtomicScopeModelKind. More...
 

Detailed Description

Defines the synch scope model for HIP.

Definition at line 157 of file SyncScope.h.

Member Enumeration Documentation

◆ ID

The enum values match the pre-defined macros __HIP_MEMORY_SCOPE_*, which are used to define memory_scope_* enums in hip-c.h.

Enumerator
SingleThread 
Wavefront 
Workgroup 
Agent 
System 
Last 

Definition at line 162 of file SyncScope.h.

Constructor & Destructor Documentation

◆ AtomicScopeHIPModel()

clang::AtomicScopeHIPModel::AtomicScopeHIPModel ( )
inline

Definition at line 171 of file SyncScope.h.

Member Function Documentation

◆ getFallBackValue()

unsigned clang::AtomicScopeHIPModel::getFallBackValue ( ) const
inlineoverridevirtual

If atomic builtin function is called with invalid synch scope value at runtime, it will fall back to a valid synch scope value returned by this function.

Implements clang::AtomicScopeModel.

Definition at line 203 of file SyncScope.h.

References System.

◆ getRuntimeValues()

ArrayRef<unsigned> clang::AtomicScopeHIPModel::getRuntimeValues ( ) const
inlineoverridevirtual

Get all possible synch scope values that might be encountered at runtime for the current language.

Implements clang::AtomicScopeModel.

Definition at line 194 of file SyncScope.h.

References Agent, Last, SingleThread, System, Wavefront, and Workgroup.

◆ isValid()

bool clang::AtomicScopeHIPModel::isValid ( unsigned  S) const
inlineoverridevirtual

Check if the compile-time constant synch scope value is valid.

Implements clang::AtomicScopeModel.

Definition at line 189 of file SyncScope.h.

◆ map()

SyncScope clang::AtomicScopeHIPModel::map ( unsigned  S) const
inlineoverridevirtual

Maps language specific synch scope values to internal SyncScope enum.

Implements clang::AtomicScopeModel.

Definition at line 173 of file SyncScope.h.


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