CCCC
C bytecode compiler + VM interpreter
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations
omp.h File Reference

OpenMP runtime API for -fopenmp. See docs/openmp.md. More...

#include <stdio.h>
#include <time.h>
#include <unistd.h>
Include dependency graph for omp.h:

Go to the source code of this file.

Data Structures

struct  omp_lock_t
 Simple lock. More...
 
struct  omp_nest_lock_t
 Nestable lock. More...
 

Macros

#define omp_sched_monotonic   ((omp_sched_t)0x80000000u)
 Modifier bit that may be or'ed into a schedule kind; it is ignored.
 
#define omp_lock_hint_none   omp_sync_hint_none
 
#define omp_lock_hint_uncontended   omp_sync_hint_uncontended
 
#define omp_lock_hint_contended   omp_sync_hint_contended
 
#define omp_lock_hint_nonspeculative   omp_sync_hint_nonspeculative
 
#define omp_lock_hint_speculative   omp_sync_hint_speculative
 

Typedefs

typedef enum omp_sched_t omp_sched_t
 Loop schedule kinds for omp_set_schedule() and omp_get_schedule().
 
typedef enum omp_sync_hint_t omp_sync_hint_t
 Hints for #pragma omp atomic hint(...); or them together, but not contended with uncontended or speculative with nonspeculative.
 
typedef omp_sync_hint_t omp_lock_hint_t
 

Enumerations

enum  omp_sched_t { omp_sched_static = 1 , omp_sched_dynamic = 2 , omp_sched_guided = 3 , omp_sched_auto = 4 }
 Loop schedule kinds for omp_set_schedule() and omp_get_schedule(). More...
 
enum  omp_sync_hint_t {
  omp_sync_hint_none = 0 , omp_sync_hint_uncontended = 1 , omp_sync_hint_contended = 2 , omp_sync_hint_nonspeculative = 4 ,
  omp_sync_hint_speculative = 8
}
 Hints for #pragma omp atomic hint(...); or them together, but not contended with uncontended or speculative with nonspeculative. More...
 

Detailed Description

OpenMP runtime API for -fopenmp. See docs/openmp.md.

In the VM parallel regions run on one thread, so the team is always the initial thread and locks cannot contend. -c=native, -m and -c=generated run them on real threads with the same API. Documented here is the VM form.

Macro Definition Documentation

◆ omp_lock_hint_contended

#define omp_lock_hint_contended   omp_sync_hint_contended

◆ omp_lock_hint_none

#define omp_lock_hint_none   omp_sync_hint_none

◆ omp_lock_hint_nonspeculative

#define omp_lock_hint_nonspeculative   omp_sync_hint_nonspeculative

◆ omp_lock_hint_speculative

#define omp_lock_hint_speculative   omp_sync_hint_speculative

◆ omp_lock_hint_uncontended

#define omp_lock_hint_uncontended   omp_sync_hint_uncontended

◆ omp_sched_monotonic

#define omp_sched_monotonic   ((omp_sched_t)0x80000000u)

Modifier bit that may be or'ed into a schedule kind; it is ignored.

Typedef Documentation

◆ omp_lock_hint_t

◆ omp_sched_t

typedef enum omp_sched_t omp_sched_t

Loop schedule kinds for omp_set_schedule() and omp_get_schedule().

◆ omp_sync_hint_t

Hints for #pragma omp atomic hint(...); or them together, but not contended with uncontended or speculative with nonspeculative.

Enumeration Type Documentation

◆ omp_sched_t

Loop schedule kinds for omp_set_schedule() and omp_get_schedule().

Enumerator
omp_sched_static 
omp_sched_dynamic 
omp_sched_guided 
omp_sched_auto 

◆ omp_sync_hint_t

Hints for #pragma omp atomic hint(...); or them together, but not contended with uncontended or speculative with nonspeculative.

Enumerator
omp_sync_hint_none 
omp_sync_hint_uncontended 
omp_sync_hint_contended 
omp_sync_hint_nonspeculative 
omp_sync_hint_speculative