LLVM OpenMP 19.0.0git
Public Member Functions | List of all members
kmp_flag_oncore Class Reference

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/openmp/runtime/src/kmp_wait_release.h"

Inheritance diagram for kmp_flag_oncore:
Inheritance graph
[legend]

Public Member Functions

 kmp_flag_oncore (volatile kmp_uint64 *p)
 
 kmp_flag_oncore (volatile kmp_uint64 *p, kmp_uint32 idx)
 
 kmp_flag_oncore (volatile kmp_uint64 *p, kmp_uint64 c, kmp_uint32 idx, enum barrier_type bar_t, kmp_info_t *thr USE_ITT_BUILD_ARG(void *itt))
 
virtual ~kmp_flag_oncore () override
 
voidoperator new (size_t size)
 
void operator delete (void *p)
 
bool done_check_val (kmp_uint64 old_loc) override
 
bool done_check () override
 
bool notdone_check () override
 
void internal_release ()
 
void wait (kmp_info_t *this_thr, int final_spin)
 
void release ()
 
void suspend (int th_gtid)
 
void resume (int th_gtid)
 
int execute_tasks (kmp_info_t *this_thr, kmp_int32 gtid, int final_spin, int *thread_finished USE_ITT_BUILD_ARG(void *itt_sync_obj), kmp_int32 is_constrained)
 
enum barrier_type get_bt ()
 
flag_type get_ptr_type ()
 
- Public Member Functions inherited from kmp_flag_native< kmp_uint64, flag_oncore, false >
 kmp_flag_native (volatile kmp_uint64 *p)
 
 kmp_flag_native (volatile kmp_uint64 *p, kmp_info_t *thr)
 
 kmp_flag_native (volatile kmp_uint64 *p, kmp_uint64 c)
 
 kmp_flag_native (volatile kmp_uint64 *p, kmp_uint64 c, std::atomic< bool > *sloc)
 
virtual ~kmp_flag_native ()
 
voidoperator new (size_t size)
 
void operator delete (void *p)
 
volatile kmp_uint64get ()
 
voidget_void_p ()
 
void set (volatile kmp_uint64 *new_loc)
 
kmp_uint64 load ()
 
void store (kmp_uint64 val)
 
virtual bool done_check ()
 
virtual bool done_check_val (kmp_uint64 old_loc)
 
virtual bool notdone_check ()
 
void internal_release ()
 
kmp_uint64 set_sleeping ()
 
void unset_sleeping ()
 
bool is_sleeping_val (kmp_uint64 old_loc)
 
bool is_sleeping ()
 Test whether there are threads sleeping on the flag.
 
bool is_any_sleeping ()
 
kmp_uint8get_stolen ()
 
- Public Member Functions inherited from kmp_flag< FlagType >
 kmp_flag ()
 
 kmp_flag (int nwaiters)
 
 kmp_flag (std::atomic< bool > *sloc)
 
flag_type get_type ()
 
kmp_info_tget_waiter (kmp_uint32 i)
 param i in index into waiting_threads
 
kmp_uint32 get_num_waiters ()
 
void set_waiter (kmp_info_t *thr)
 
enum barrier_type get_bt ()
 

Additional Inherited Members

- Public Types inherited from kmp_flag_native< kmp_uint64, flag_oncore, false >
typedef kmp_uint64 flag_t
 
- Public Types inherited from kmp_flag< FlagType >
typedef flag_traits< FlagType > traits_type
 
- Protected Types inherited from kmp_flag_native< kmp_uint64, flag_oncore, false >
typedef flag_traits< FlagType > traits_type
 
- Protected Attributes inherited from kmp_flag_native< kmp_uint64, flag_oncore, false >
volatile kmp_uint64loc
 
kmp_uint64 checker
 When flag==checker, it has been released.
 
- Protected Attributes inherited from kmp_flag< FlagType >
flag_properties t
 "Type" of the flag in loc
 
kmp_info_twaiting_threads [1]
 Threads sleeping on this thread.
 
kmp_uint32 num_waiting_threads
 Num threads sleeping on this thread.
 
std::atomic< bool > * sleepLoc
 

Detailed Description

Definition at line 930 of file kmp_wait_release.h.

Constructor & Destructor Documentation

◆ kmp_flag_oncore() [1/3]

kmp_flag_oncore::kmp_flag_oncore ( volatile kmp_uint64 p)
inline

Definition at line 943 of file kmp_wait_release.h.

◆ kmp_flag_oncore() [2/3]

kmp_flag_oncore::kmp_flag_oncore ( volatile kmp_uint64 p,
kmp_uint32  idx 
)
inline

Definition at line 946 of file kmp_wait_release.h.

◆ kmp_flag_oncore() [3/3]

kmp_flag_oncore::kmp_flag_oncore ( volatile kmp_uint64 p,
kmp_uint64  c,
kmp_uint32  idx,
enum barrier_type  bar_t,
kmp_info_t *thr   USE_ITT_BUILD_ARGvoid *itt 
)
inline

Definition at line 950 of file kmp_wait_release.h.

◆ ~kmp_flag_oncore()

virtual kmp_flag_oncore::~kmp_flag_oncore ( )
inlineoverridevirtual

Definition at line 956 of file kmp_wait_release.h.

Member Function Documentation

◆ done_check()

bool kmp_flag_oncore::done_check ( )
inlineoverridevirtual
Returns
true if the flag object has been released.

Reimplemented from kmp_flag_native< kmp_uint64, flag_oncore, false >.

Definition at line 962 of file kmp_wait_release.h.

References done_check_val(), and kmp_flag_native< kmp_uint64, flag_oncore, false >::get().

◆ done_check_val()

bool kmp_flag_oncore::done_check_val ( kmp_uint64  old_loc)
inlineoverridevirtual
Parameters
old_locin old value of flag
Returns
true if the flag's old value indicates it was released.

Reimplemented from kmp_flag_native< kmp_uint64, flag_oncore, false >.

Definition at line 959 of file kmp_wait_release.h.

References kmp_flag_native< kmp_uint64, flag_oncore, false >::checker.

Referenced by done_check().

◆ execute_tasks()

int kmp_flag_oncore::execute_tasks ( kmp_info_t this_thr,
kmp_int32  gtid,
int  final_spin,
int *thread_finished   USE_ITT_BUILD_ARGvoid *itt_sync_obj,
kmp_int32  is_constrained 
)
inline

Definition at line 1001 of file kmp_wait_release.h.

References __kmp_execute_tasks_oncore(), ret, and USE_ITT_BUILD_ARG.

◆ get_bt()

enum barrier_type kmp_flag_oncore::get_bt ( )
inline

Definition at line 1017 of file kmp_wait_release.h.

◆ get_ptr_type()

flag_type kmp_flag_oncore::get_ptr_type ( )
inline

Definition at line 1018 of file kmp_wait_release.h.

References flag_oncore.

◆ internal_release()

void kmp_flag_oncore::internal_release ( )
inline

◆ notdone_check()

bool kmp_flag_oncore::notdone_check ( )
inlineoverridevirtual
Returns
true if the flag object is not yet released. Used in __kmp_wait_template like:
while (flag.notdone_check()) { pause(); }
volatile int flag

Reimplemented from kmp_flag_native< kmp_uint64, flag_oncore, false >.

Definition at line 963 of file kmp_wait_release.h.

References __kmp_wait_64(), flag, kmp_flag_native< kmp_uint64, flag_oncore, false >::get(), KMP_BARRIER_STATE_BUMP, KMP_BARRIER_SWITCH_TO_OWN_FLAG, KMP_BARRIER_SWITCHING, TRUE, and USE_ITT_BUILD_ARG.

◆ operator delete()

void kmp_flag_oncore::operator delete ( void p)
inline

Definition at line 958 of file kmp_wait_release.h.

References __kmp_free, and p.

◆ operator new()

void * kmp_flag_oncore::operator new ( size_t  size)
inline

Definition at line 957 of file kmp_wait_release.h.

References __kmp_allocate, and size.

◆ release()

void kmp_flag_oncore::release ( )
inline

Definition at line 995 of file kmp_wait_release.h.

References __kmp_release_template().

◆ resume()

void kmp_flag_oncore::resume ( int  th_gtid)
inline

Definition at line 1000 of file kmp_wait_release.h.

References __kmp_resume_oncore().

◆ suspend()

void kmp_flag_oncore::suspend ( int  th_gtid)
inline

Definition at line 996 of file kmp_wait_release.h.

References __kmp_suspend_oncore().

◆ wait()

void kmp_flag_oncore::wait ( kmp_info_t this_thr,
int  final_spin 
)
inline

Definition at line 987 of file kmp_wait_release.h.

References USE_ITT_BUILD_ARG.


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