libgomp.h File Reference

#include "config.h"
#include "gstdint.h"
#include <pthread.h>
#include <stdbool.h>
#include "sem.h"
#include "mutex.h"
#include "bar.h"
#include "ptrlock.h"
#include "libgomp_g.h"
#include "omp-lock.h"
#include "omp.h.in"

Include dependency graph for libgomp.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gomp_work_share
struct  gomp_team_state
struct  gomp_task_icv
struct  gomp_task
struct  gomp_team
struct  gomp_thread
struct  gomp_thread_pool

Defines

#define LIBGOMP_H   1
#define gomp_alloca(x)   __builtin_alloca(x)
#define _LIBGOMP_OMP_LOCK_DEFINED   1
#define gomp_init_lock_30   omp_init_lock
#define gomp_destroy_lock_30   omp_destroy_lock
#define gomp_set_lock_30   omp_set_lock
#define gomp_unset_lock_30   omp_unset_lock
#define gomp_test_lock_30   omp_test_lock
#define gomp_init_nest_lock_30   omp_init_nest_lock
#define gomp_destroy_nest_lock_30   omp_destroy_nest_lock
#define gomp_set_nest_lock_30   omp_set_nest_lock
#define gomp_unset_nest_lock_30   omp_unset_nest_lock
#define gomp_test_nest_lock_30   omp_test_nest_lock
#define attribute_hidden
#define ialias(fn)

Enumerations

enum  gomp_schedule_type {
  GFS_RUNTIME, GFS_STATIC, GFS_DYNAMIC, GFS_GUIDED,
  GFS_AUTO
}
enum  gomp_task_kind { GOMP_TASK_IMPLICIT, GOMP_TASK_IFFALSE, GOMP_TASK_WAITING, GOMP_TASK_TIED }

Functions

static struct gomp_threadgomp_thread (void)
gomp_task_icvgomp_new_icv (void)
static struct gomp_task_icvgomp_icv (bool write)
void gomp_init_affinity (void)
void gomp_init_thread_affinity (pthread_attr_t *)
void * gomp_malloc (size_t) __attribute__((malloc))
void * gomp_malloc_cleared (size_t) __attribute__((malloc))
void * gomp_realloc (void *, size_t)
void gomp_error (const char *,...) __attribute__((format(printf
void void gomp_fatal (const char *,...) __attribute__((noreturn
void void format (printf, 1, 2)))
int gomp_iter_static_next (long *, long *)
bool gomp_iter_dynamic_next_locked (long *, long *)
bool gomp_iter_guided_next_locked (long *, long *)
int gomp_iter_ull_static_next (unsigned long long *, unsigned long long *)
bool gomp_iter_ull_dynamic_next_locked (unsigned long long *, unsigned long long *)
bool gomp_iter_ull_guided_next_locked (unsigned long long *, unsigned long long *)
void gomp_ordered_first (void)
void gomp_ordered_last (void)
void gomp_ordered_next (void)
void gomp_ordered_static_init (void)
void gomp_ordered_static_next (void)
void gomp_ordered_sync (void)
unsigned gomp_resolve_num_threads (unsigned, unsigned)
void gomp_init_num_threads (void)
unsigned gomp_dynamic_max_threads (void)
void gomp_init_task (struct gomp_task *, struct gomp_task *, struct gomp_task_icv *)
void gomp_end_task (void)
void gomp_barrier_handle_tasks (gomp_barrier_state_t)
static void gomp_finish_task (struct gomp_task *task)
gomp_teamgomp_new_team (unsigned)
void gomp_team_start (void(*)(void *), void *, unsigned, struct gomp_team *)
void gomp_team_end (void)
void gomp_init_work_share (struct gomp_work_share *, bool, unsigned)
void gomp_fini_work_share (struct gomp_work_share *)
bool gomp_work_share_start (bool)
void gomp_work_share_end (void)
void gomp_work_share_end_nowait (void)
static void gomp_work_share_init_done (void)

Variables

gomp_task_icv gomp_global_icv
unsigned long gomp_thread_limit_var
unsigned long gomp_remaining_threads_count
gomp_mutex_t gomp_remaining_threads_lock
unsigned long gomp_max_active_levels_var
unsigned long long gomp_spin_count_var
unsigned long long gomp_throttled_spin_count_var
unsigned long gomp_available_cpus
unsigned long gomp_managed_threads
pthread_key_t gomp_tls_key
pthread_attr_t gomp_thread_attr
unsigned short * gomp_cpu_affinity
size_t gomp_cpu_affinity_len


Define Documentation

#define _LIBGOMP_OMP_LOCK_DEFINED   1

Definition at line 511 of file libgomp.h.

#define attribute_hidden

Definition at line 566 of file libgomp.h.

#define gomp_alloca ( x   )     __builtin_alloca(x)

Definition at line 412 of file libgomp.h.

#define gomp_destroy_lock_30   omp_destroy_lock

Definition at line 552 of file libgomp.h.

Referenced by gomp_destroy_lock__30().

#define gomp_destroy_nest_lock_30   omp_destroy_nest_lock

Definition at line 557 of file libgomp.h.

Referenced by gomp_destroy_nest_lock__30().

#define gomp_init_lock_30   omp_init_lock

Definition at line 551 of file libgomp.h.

Referenced by gomp_init_lock__30().

#define gomp_init_nest_lock_30   omp_init_nest_lock

Definition at line 556 of file libgomp.h.

Referenced by gomp_init_nest_lock__30().

#define gomp_set_lock_30   omp_set_lock

Definition at line 553 of file libgomp.h.

Referenced by gomp_set_lock__30().

#define gomp_set_nest_lock_30   omp_set_nest_lock

Definition at line 558 of file libgomp.h.

Referenced by gomp_set_nest_lock__30().

#define gomp_test_lock_30   omp_test_lock

Definition at line 555 of file libgomp.h.

Referenced by gomp_test_lock__30().

#define gomp_test_nest_lock_30   omp_test_nest_lock

Definition at line 560 of file libgomp.h.

Referenced by gomp_test_nest_lock__30().

#define gomp_unset_lock_30   omp_unset_lock

Definition at line 554 of file libgomp.h.

Referenced by gomp_unset_lock__30().

#define gomp_unset_nest_lock_30   omp_unset_nest_lock

Definition at line 559 of file libgomp.h.

Referenced by gomp_unset_nest_lock__30().

#define ialias ( fn   ) 

Definition at line 574 of file libgomp.h.

#define LIBGOMP_H   1

Definition at line 35 of file libgomp.h.


Enumeration Type Documentation

enum gomp_schedule_type

Enumerator:
GFS_RUNTIME 
GFS_STATIC 
GFS_DYNAMIC 
GFS_GUIDED 
GFS_AUTO 

Definition at line 56 of file libgomp.h.

enum gomp_task_kind

Enumerator:
GOMP_TASK_IMPLICIT 
GOMP_TASK_IFFALSE 
GOMP_TASK_WAITING 
GOMP_TASK_TIED 

Definition at line 230 of file libgomp.h.


Function Documentation

void void format ( printf  ,
,
 
)

void gomp_barrier_handle_tasks ( gomp_barrier_state_t   ) 

Definition at line 186 of file task.c.

References gomp_team::barrier, gomp_task::children, gomp_task::fn, gomp_task::fn_data, gomp_barrier_last_thread(), gomp_clear_parent(), gomp_finish_task(), gomp_mutex_lock(), gomp_mutex_unlock(), gomp_sem_post(), GOMP_TASK_TIED, gomp_team_barrier_clear_task_pending(), gomp_team_barrier_done(), gomp_team_barrier_set_waiting_for_tasks(), gomp_team_barrier_waiting_for_tasks(), gomp_team_barrier_wake(), gomp_thread(), gomp_task::in_taskwait, gomp_task::kind, gomp_task::next_child, gomp_task::next_queue, gomp_task::parent, gomp_task::prev_child, gomp_task::prev_queue, gomp_team::task_count, gomp_team::task_lock, gomp_team::task_queue, gomp_team::task_running_count, gomp_task::taskwait_sem, and thr.

Referenced by gomp_team_barrier_wait_end().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned gomp_dynamic_max_threads ( void   ) 

Definition at line 78 of file proc.c.

References get_num_procs(), gomp_icv(), and gomp_task_icv::nthreads_var.

Here is the call graph for this function:

void gomp_end_task ( void   ) 

Definition at line 51 of file task.c.

References gomp_finish_task(), gomp_thread(), gomp_task::parent, and thr.

Referenced by gomp_free_thread(), GOMP_task(), and gomp_team_end().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_error ( const char *  ,
  ... 
)

void void gomp_fatal ( const char *  ,
  ... 
)

void gomp_fini_work_share ( struct gomp_work_share  ) 

Definition at line 124 of file work.c.

References gomp_mutex_destroy(), gomp_ptrlock_destroy(), gomp_work_share::inline_ordered_team_ids, gomp_work_share::next_ws, and gomp_work_share::ordered_team_ids.

Referenced by free_work_share(), and gomp_team_end().

Here is the call graph for this function:

Here is the caller graph for this function:

static void gomp_finish_task ( struct gomp_task task  )  [inline, static]

Definition at line 474 of file libgomp.h.

References gomp_sem_destroy(), and gomp_task::taskwait_sem.

Referenced by gomp_barrier_handle_tasks(), gomp_end_task(), GOMP_taskwait(), and ompc_team_end().

Here is the call graph for this function:

Here is the caller graph for this function:

static struct gomp_task_icv* gomp_icv ( bool  write  )  [inline, static]

Definition at line 378 of file libgomp.h.

References gomp_global_icv, gomp_new_icv(), gomp_thread(), gomp_task::icv, and gomp_thread::task.

Referenced by get_num_procs(), gomp_dynamic_max_threads(), GOMP_loop_ordered_runtime_start(), GOMP_loop_runtime_start(), GOMP_loop_ull_ordered_runtime_start(), GOMP_loop_ull_runtime_start(), GOMP_parallel_loop_runtime_start(), gomp_resolve_num_threads(), gomp_set_nest_lock_30(), GOMP_task(), gomp_test_nest_lock_30(), omp_get_dynamic(), omp_get_max_threads(), omp_get_nested(), omp_get_num_procs(), omp_get_schedule(), omp_set_dynamic(), omp_set_nested(), omp_set_num_threads(), and omp_set_schedule().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_init_affinity ( void   ) 

Definition at line 30 of file affinity.c.

Referenced by __attribute__().

Here is the caller graph for this function:

void gomp_init_num_threads ( void   ) 

Definition at line 62 of file proc.c.

References get_num_procs(), gomp_global_icv, and gomp_task_icv::nthreads_var.

Here is the call graph for this function:

void gomp_init_task ( struct gomp_task ,
struct gomp_task ,
struct gomp_task_icv  
)

Definition at line 36 of file task.c.

References gomp_task::children, gomp_sem_init(), GOMP_TASK_IMPLICIT, gomp_task::icv, gomp_task::in_taskwait, gomp_task::in_tied_task, gomp_task::kind, gomp_task::parent, and gomp_task::taskwait_sem.

Referenced by gomp_new_icv(), GOMP_task(), and gomp_team_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_init_thread_affinity ( pthread_attr_t *   ) 

Definition at line 35 of file affinity.c.

void gomp_init_work_share ( struct gomp_work_share ,
bool  ,
unsigned   
)

Definition at line 92 of file work.c.

References gomp_malloc(), gomp_mutex_init(), gomp_ptrlock_init(), gomp_work_share::inline_ordered_team_ids, INLINE_ORDERED_TEAM_IDS_CNT, memset(), gomp_work_share::next_ws, gomp_work_share::ordered_cur, gomp_work_share::ordered_num_used, gomp_work_share::ordered_owner, gomp_work_share::ordered_team_ids, and gomp_work_share::threads_completed.

Referenced by gomp_new_team(), and gomp_work_share_start().

Here is the call graph for this function:

Here is the caller graph for this function:

bool gomp_iter_dynamic_next_locked ( long *  ,
long *   
)

Definition at line 144 of file iter.c.

References gomp_work_share::chunk_size, gomp_work_share::end, gomp_thread(), gomp_work_share::incr, gomp_work_share::next, and thr.

Referenced by gomp_loop_dynamic_next(), gomp_loop_dynamic_start(), gomp_loop_ordered_dynamic_next(), gomp_loop_ordered_dynamic_start(), GOMP_sections_next(), and GOMP_sections_start().

Here is the call graph for this function:

Here is the caller graph for this function:

bool gomp_iter_guided_next_locked ( long *  ,
long *   
)

Definition at line 257 of file iter.c.

References gomp_work_share::chunk_size, gomp_work_share::end, gomp_thread(), gomp_work_share::incr, n, gomp_work_share::next, gomp_team::nthreads, nthreads, q, and thr.

Referenced by gomp_loop_guided_next(), gomp_loop_guided_start(), gomp_loop_ordered_guided_next(), and gomp_loop_ordered_guided_start().

Here is the call graph for this function:

Here is the caller graph for this function:

int gomp_iter_static_next ( long *  ,
long *   
)

Definition at line 38 of file iter.c.

References c, gomp_work_share::chunk_size, e, gomp_work_share::end, gomp_thread(), i, gomp_work_share::incr, n, gomp_work_share::next, gomp_team::nthreads, nthreads, q, and thr.

Referenced by gomp_loop_ordered_static_next(), gomp_loop_ordered_static_start(), gomp_loop_static_next(), and gomp_loop_static_start().

Here is the call graph for this function:

Here is the caller graph for this function:

bool gomp_iter_ull_dynamic_next_locked ( unsigned long long *  ,
unsigned long long *   
)

Definition at line 146 of file iter_ull.c.

References gomp_work_share::chunk_size_ull, gomp_work_share::end, gomp_work_share::end_ull, gomp_thread(), gomp_work_share::mode, gomp_work_share::next_ull, and thr.

Referenced by gomp_loop_ull_dynamic_next(), gomp_loop_ull_dynamic_start(), gomp_loop_ull_ordered_dynamic_next(), and gomp_loop_ull_ordered_dynamic_start().

Here is the call graph for this function:

Here is the caller graph for this function:

bool gomp_iter_ull_guided_next_locked ( unsigned long long *  ,
unsigned long long *   
)

Definition at line 258 of file iter_ull.c.

References gomp_work_share::chunk_size_ull, gomp_work_share::end_ull, gomp_thread(), gomp_work_share::incr_ull, gomp_work_share::mode, n, gomp_work_share::next_ull, gomp_team::nthreads, nthreads, q, and thr.

Referenced by gomp_loop_ull_guided_next(), gomp_loop_ull_guided_start(), gomp_loop_ull_ordered_guided_next(), and gomp_loop_ull_ordered_guided_start().

Here is the call graph for this function:

Here is the caller graph for this function:

int gomp_iter_ull_static_next ( unsigned long long *  ,
unsigned long long *   
)

Definition at line 39 of file iter_ull.c.

References c, gomp_work_share::chunk_size_ull, e, gomp_work_share::end_ull, gomp_thread(), i, gomp_work_share::incr_ull, gomp_work_share::mode, n, gomp_work_share::next_ull, gomp_team::nthreads, nthreads, q, and thr.

Referenced by gomp_loop_ull_ordered_static_next(), gomp_loop_ull_ordered_static_start(), gomp_loop_ull_static_next(), and gomp_loop_ull_static_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void* gomp_malloc ( size_t   ) 

Definition at line 34 of file alloc.c.

References gomp_fatal().

Referenced by alloc_work_share(), GOMP_critical_name_start(), gomp_init_work_share(), gomp_new_icv(), gomp_new_team(), gomp_new_thread_pool(), GOMP_task(), and gomp_work_share_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void* gomp_malloc_cleared ( size_t   ) 

Definition at line 43 of file alloc.c.

References gomp_fatal().

Here is the call graph for this function:

struct gomp_task_icv* gomp_new_icv ( void   ) 

Definition at line 566 of file team.c.

References gomp_global_icv, gomp_init_task(), gomp_malloc(), gomp_thread(), gomp_thread_destructor, gomp_task::icv, and thr.

Referenced by gomp_icv().

Here is the call graph for this function:

Here is the caller graph for this function:

struct gomp_team* gomp_new_team ( unsigned   ) 

Definition at line 155 of file team.c.

References gomp_barrier_init(), gomp_init_work_share(), gomp_malloc(), gomp_mutex_init(), gomp_sem_init(), i, gomp_team::implicit_task, and gomp_team::ordered_release.

Referenced by gomp_parallel_loop_start(), GOMP_parallel_sections_start(), and GOMP_parallel_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_ordered_first ( void   ) 

Definition at line 35 of file ordered.c.

References gomp_sem_post(), gomp_thread(), gomp_team::nthreads, gomp_work_share::ordered_cur, gomp_work_share::ordered_num_used, gomp_team::ordered_release, gomp_work_share::ordered_team_ids, and thr.

Referenced by gomp_loop_ordered_dynamic_start(), gomp_loop_ordered_guided_start(), gomp_loop_ull_ordered_dynamic_start(), and gomp_loop_ull_ordered_guided_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_ordered_last ( void   ) 

Definition at line 66 of file ordered.c.

References gomp_sem_post(), gomp_thread(), next, gomp_team::nthreads, gomp_work_share::ordered_cur, gomp_work_share::ordered_num_used, gomp_work_share::ordered_owner, gomp_team::ordered_release, gomp_work_share::ordered_team_ids, and thr.

Referenced by gomp_loop_ordered_dynamic_next(), gomp_loop_ordered_guided_next(), gomp_loop_ull_ordered_dynamic_next(), and gomp_loop_ull_ordered_guided_next().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_ordered_next ( void   ) 

Definition at line 101 of file ordered.c.

References gomp_sem_post(), gomp_thread(), gomp_team::nthreads, gomp_work_share::ordered_cur, gomp_work_share::ordered_num_used, gomp_work_share::ordered_owner, gomp_team::ordered_release, gomp_work_share::ordered_team_ids, and thr.

Referenced by gomp_loop_ordered_dynamic_next(), gomp_loop_ordered_guided_next(), gomp_loop_ull_ordered_dynamic_next(), and gomp_loop_ull_ordered_guided_next().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_ordered_static_init ( void   ) 

Definition at line 149 of file ordered.c.

References gomp_sem_post(), gomp_thread(), gomp_team::nthreads, gomp_team::ordered_release, and thr.

Referenced by gomp_loop_ordered_static_start(), and gomp_loop_ull_ordered_static_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_ordered_static_next ( void   ) 

Definition at line 167 of file ordered.c.

References gomp_sem_post(), gomp_thread(), gomp_team::nthreads, gomp_work_share::ordered_owner, gomp_team::ordered_release, gomp_work_share::ordered_team_ids, and thr.

Referenced by gomp_loop_ordered_static_next(), and gomp_loop_ull_ordered_static_next().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_ordered_sync ( void   ) 

Definition at line 191 of file ordered.c.

References gomp_sem_wait(), gomp_thread(), gomp_team::nthreads, gomp_work_share::ordered_owner, gomp_team::ordered_release, and thr.

Referenced by gomp_loop_ordered_dynamic_next(), gomp_loop_ordered_guided_next(), gomp_loop_ordered_static_next(), gomp_loop_ull_ordered_dynamic_next(), gomp_loop_ull_ordered_guided_next(), gomp_loop_ull_ordered_static_next(), and GOMP_ordered_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void* gomp_realloc ( void *  ,
size_t   
)

Definition at line 52 of file alloc.c.

References gomp_fatal().

Referenced by gomp_team_start().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned gomp_resolve_num_threads ( unsigned  ,
unsigned   
)

Definition at line 38 of file parallel.c.

References gomp_team_state::active_level, gomp_task_icv::dyn_var, gomp_dynamic_max_threads(), gomp_icv(), gomp_max_active_levels_var, gomp_mutex_lock(), gomp_mutex_unlock(), gomp_remaining_threads_count, gomp_remaining_threads_lock, gomp_thread(), gomp_thread_limit_var, gomp_task_icv::nest_var, gomp_task_icv::nthreads_var, num_threads, and gomp_thread::ts.

Referenced by gomp_parallel_loop_start(), GOMP_parallel_sections_start(), and GOMP_parallel_start().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_team_end ( void   ) 

Definition at line 477 of file team.c.

References gomp_team::barrier, free_team(), gomp_barrier_wait(), gomp_end_task(), gomp_fini_work_share(), gomp_managed_threads, gomp_mutex_destroy(), gomp_mutex_lock(), gomp_mutex_unlock(), gomp_remaining_threads_lock, gomp_sem_destroy(), gomp_team_barrier_wait(), gomp_thread(), gomp_thread_pool::last_team, gomp_team::master_release, gomp_work_share::next_alloc, gomp_work_share::next_ws, gomp_team::nthreads, gomp_team::prev_ts, thr, gomp_team::work_share_list_free_lock, and gomp_team::work_shares.

Referenced by GOMP_parallel_end().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_team_start ( void(*)(void *)  ,
void *  ,
unsigned  ,
struct gomp_team  
)

Definition at line 271 of file team.c.

References gomp_barrier_init(), gomp_barrier_reinit(), gomp_global_icv, gomp_init_task(), gomp_new_thread_pool(), gomp_realloc(), gomp_thread(), gomp_thread_destructor, i, gomp_task::icv, gomp_team::implicit_task, gomp_team_state::level, n, nthr, gomp_team::ordered_release, gomp_team::prev_ts, thr, gomp_thread_pool::threads, gomp_thread_pool::threads_dock, gomp_thread_pool::threads_size, gomp_thread_pool::threads_used, and gomp_team::work_shares.

Referenced by gomp_parallel_loop_start(), GOMP_parallel_sections_start(), and GOMP_parallel_start().

Here is the call graph for this function:

Here is the caller graph for this function:

static struct gomp_thread* gomp_thread ( void   )  [inline, static]

Definition at line 368 of file libgomp.h.

Referenced by GOMP_barrier(), gomp_barrier_handle_tasks(), gomp_end_task(), gomp_free_thread(), gomp_icv(), gomp_iter_dynamic_next_locked(), gomp_iter_guided_next_locked(), gomp_iter_static_next(), gomp_iter_ull_dynamic_next_locked(), gomp_iter_ull_guided_next_locked(), gomp_iter_ull_static_next(), gomp_loop_dynamic_next(), gomp_loop_dynamic_start(), gomp_loop_guided_next(), gomp_loop_guided_start(), gomp_loop_init(), gomp_loop_ordered_dynamic_next(), gomp_loop_ordered_dynamic_start(), gomp_loop_ordered_guided_next(), gomp_loop_ordered_guided_start(), GOMP_loop_ordered_runtime_next(), gomp_loop_ordered_static_next(), gomp_loop_ordered_static_start(), GOMP_loop_runtime_next(), gomp_loop_static_start(), gomp_loop_ull_dynamic_next(), gomp_loop_ull_dynamic_start(), gomp_loop_ull_guided_next(), gomp_loop_ull_guided_start(), gomp_loop_ull_init(), gomp_loop_ull_ordered_dynamic_next(), gomp_loop_ull_ordered_dynamic_start(), gomp_loop_ull_ordered_guided_next(), gomp_loop_ull_ordered_guided_start(), GOMP_loop_ull_ordered_runtime_next(), gomp_loop_ull_ordered_static_next(), gomp_loop_ull_ordered_static_start(), GOMP_loop_ull_runtime_next(), gomp_loop_ull_static_start(), gomp_new_icv(), gomp_ordered_first(), gomp_ordered_last(), gomp_ordered_next(), gomp_ordered_static_init(), gomp_ordered_static_next(), gomp_ordered_sync(), GOMP_parallel_end(), gomp_resolve_num_threads(), gomp_sections_init(), GOMP_sections_next(), GOMP_sections_start(), GOMP_single_copy_end(), GOMP_single_copy_start(), GOMP_single_start(), GOMP_task(), GOMP_taskwait(), gomp_team_barrier_wait_end(), gomp_team_end(), gomp_team_start(), gomp_work_share_end(), gomp_work_share_end_nowait(), gomp_work_share_init_done(), gomp_work_share_start(), omp_get_active_level(), omp_get_ancestor_thread_num(), omp_get_level(), omp_get_num_threads(), omp_get_team_size(), omp_get_thread_num(), and omp_in_parallel().

Here is the caller graph for this function:

void gomp_work_share_end ( void   ) 

Definition at line 205 of file work.c.

References gomp_team::barrier, free_work_share(), gomp_barrier_last_thread(), gomp_barrier_wait_start(), gomp_team_barrier_wait_end(), gomp_thread(), and thr.

Referenced by GOMP_loop_end(), and GOMP_sections_end().

Here is the call graph for this function:

Here is the caller graph for this function:

void gomp_work_share_end_nowait ( void   ) 

Definition at line 235 of file work.c.

References free_work_share(), gomp_mutex_lock(), gomp_mutex_unlock(), gomp_thread(), gomp_team::nthreads, thr, and gomp_work_share::threads_completed.

Referenced by GOMP_loop_end_nowait(), GOMP_sections_end_nowait(), GOMP_single_copy_end(), GOMP_single_copy_start(), and GOMP_single_start().

Here is the call graph for this function:

Here is the caller graph for this function:

static void gomp_work_share_init_done ( void   )  [inline, static]

Definition at line 495 of file libgomp.h.

References gomp_ptrlock_set(), gomp_thread(), and thr.

Referenced by gomp_loop_dynamic_start(), gomp_loop_guided_start(), gomp_loop_ordered_dynamic_start(), gomp_loop_ordered_guided_start(), gomp_loop_ordered_static_start(), gomp_loop_static_start(), gomp_loop_ull_dynamic_start(), gomp_loop_ull_guided_start(), gomp_loop_ull_ordered_dynamic_start(), gomp_loop_ull_ordered_guided_start(), gomp_loop_ull_ordered_static_start(), gomp_loop_ull_static_start(), GOMP_sections_start(), GOMP_single_copy_start(), and GOMP_single_start().

Here is the call graph for this function:

Here is the caller graph for this function:

bool gomp_work_share_start ( bool   ) 

Definition at line 168 of file work.c.

References alloc_work_share(), gomp_init_work_share(), gomp_malloc(), gomp_ptrlock_get(), gomp_thread(), gomp_work_share::next_ws, gomp_team::nthreads, and thr.

Referenced by gomp_loop_dynamic_start(), gomp_loop_guided_start(), gomp_loop_ordered_dynamic_start(), gomp_loop_ordered_guided_start(), gomp_loop_ordered_static_start(), gomp_loop_static_start(), gomp_loop_ull_dynamic_start(), gomp_loop_ull_guided_start(), gomp_loop_ull_ordered_dynamic_start(), gomp_loop_ull_ordered_guided_start(), gomp_loop_ull_ordered_static_start(), gomp_loop_ull_static_start(), GOMP_sections_start(), GOMP_single_copy_start(), and GOMP_single_start().

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

unsigned long gomp_available_cpus

Definition at line 68 of file env.c.

Referenced by __attribute__(), do_wait(), and get_num_procs().

unsigned short* gomp_cpu_affinity

Definition at line 60 of file env.c.

Referenced by get_num_procs(), and parse_affinity().

size_t gomp_cpu_affinity_len

Definition at line 61 of file env.c.

Referenced by parse_affinity().

struct gomp_task_icv gomp_global_icv

Definition at line 52 of file env.c.

Referenced by __attribute__(), gomp_icv(), gomp_init_num_threads(), gomp_new_icv(), gomp_team_start(), and parse_schedule().

unsigned long gomp_managed_threads

Definition at line 68 of file env.c.

Referenced by do_wait(), and gomp_team_end().

unsigned long gomp_max_active_levels_var

Definition at line 62 of file env.c.

Referenced by __attribute__(), gomp_resolve_num_threads(), omp_get_max_active_levels(), and omp_set_max_active_levels().

unsigned long gomp_remaining_threads_count

Definition at line 64 of file env.c.

Referenced by __attribute__(), GOMP_parallel_end(), and gomp_resolve_num_threads().

gomp_mutex_t gomp_remaining_threads_lock

Definition at line 66 of file env.c.

Referenced by __attribute__(), GOMP_parallel_end(), gomp_resolve_num_threads(), and gomp_team_end().

unsigned long long gomp_spin_count_var

Definition at line 69 of file env.c.

Referenced by __attribute__(), and do_wait().

pthread_attr_t gomp_thread_attr

Definition at line 33 of file team.c.

Referenced by __attribute__().

unsigned long gomp_thread_limit_var

Definition at line 63 of file env.c.

Referenced by __attribute__(), GOMP_parallel_end(), gomp_resolve_num_threads(), and omp_get_thread_limit().

unsigned long long gomp_throttled_spin_count_var

Definition at line 69 of file env.c.

Referenced by __attribute__(), and do_wait().

pthread_key_t gomp_tls_key

Definition at line 43 of file team.c.

Referenced by __attribute__(), and ompc_team_end().


Generated on Fri Apr 5 05:39:20 2013 for Libgomp by  doxygen 1.4.7