Add OpenMP by-GCC-version implementation status * htdocs/projects/gomp/openmp-status.html: New. * htdocs/projects/gomp/index.html: Link it. htdocs/projects/gomp/index.html | 15 ++- htdocs/projects/gomp/openmp-status.html | 202 ++++++++++++++++++++++++++++++++ 2 files changed, 211 insertions(+), 6 deletions(-) diff --git a/htdocs/projects/gomp/index.html b/htdocs/projects/gomp/index.html index 59697c10..81096578 100644 --- a/htdocs/projects/gomp/index.html +++ b/htdocs/projects/gomp/index.html @@ -54,18 +54,21 @@ projects.

extensions to target language parsers. A long-term goal is the generation of efficient and small code for OpenMP applications.

+

Documentation

+ +

Contributing

We encourage everyone to contribute changes and help test GOMP. GOMP has been merged into mainline GCC.

Reporting Bugs

-

Please add "openmp" to the keywords field when filing a bug report.

- -

Documentation

-

libgomp, the GOMP support library, has -online documentation -available.

+

Please add openmp to the keywords field when filling a +bug report.

Status

diff --git a/htdocs/projects/gomp/openmp-status.html b/htdocs/projects/gomp/openmp-status.html new file mode 100644 index 00000000..37dcefa5 --- /dev/null +++ b/htdocs/projects/gomp/openmp-status.html @@ -0,0 +1,202 @@ + + + + + +OpenMP Implementation Status in GCC + + + + +

OpenMP Implementation Status in GCC

+ +

Disclaimer: A feature might be only fully supported in a later GCC version +than listed, depending on resolved corner cases and optimizations.

+ +

Features added by OpenMP version

+ + +

OpenMP implementation status in the online documentation:

+ + + +

OpenMP 4.5

+ + + + +

OpenMP 5.0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureGCC VersionComments
in_reduction clause on task constructsGCC 9
Supporting C++'s range-based for loopGCC 9
IteratorsGCC 9
!= as relational-op in canonical loop form for C/C++GCC 9
C/C++'s lvalue expressions in depend clausesGCC 9
mutexinoutset dependence-type for depend clauseGCC 9
depobj construct and depend objects GCC 9
depend clause on taskwaitGCC 9
teams construct outside an enclosing target regionGCC 9
Clauses if, nontemporal and order(concurrent) in simd constructGCC 9/GCC 10
defaultmap extensionsGCC 9
hint clause on the atomic constructGCC 9stub only
Weak memory ordering clauses on atomic and flush constructGCC 9
Combined master constructsGCC 9
Runtime routines and environment variables to display runtimethread affinity informationGCC 9
omp_pause_resource and omp_pause_resource_all runtime routinesGCC 9
nonmonotonic as default loop schedule modifier for worksharing-loop constructsGCC 9
atomic constructs in simdGCC 9
task_reduction clause with taskgroupGCC 9
task modifier to reduction clauseGCC 9
reduction and in_reduction clauses on taskloop and taskloop simd constructsGCC 9
taskloop construct cancelable by cancel constructGCC 9
Lock hints were renamed to synchronization hintsGCC 9
requires directiveGCC 9
GCC 12
(atomic_default_mem_order)
(dynamic_allocators)
rest parsing only
conditional modifier to lastprivate clauseGCC 10
scan directive and in_scan modifier for the reduction clauseGCC 10
order(concurrent) clauseGCC 10
loop constructGCC 10
declare variant directiveGCC 10/GCC 11simd traits not handled correctly
use_device_addr clause on target dataGCC 10
Nested declare target directiveGCC 10
allocate clauseGCC 11Initial support
target-offload-var ICV and OMP_TARGET_OFFLOAD env variableGCC 11
Predefined memory spaces, memory allocators, allocator traitsGCC 11Some are only stubs
Non-rectangular loop nestsGCC 11Only C/C++
Nested-parallel changes to max-active-levels-var ICVGCC 11
detach clause to task constructGCC 11
omp_fulfill_event runtime routineGCC 11
Memory management routinesGCC 11
Implicit declare target directiveGCC 11
omp_get_supported_active_levels routineGCC 11
in_reduction clause on target constructsGCC 12nowait only stub
affinity clause to task constructGCC 12Stub only
close map-type-modifierGCC 12
omp_get_device_num runtime routineGCC 12
ancestor modifier on device clauseGCC 12Reverse offload unsupported
Mapping C/C++ pointer variables and to assign the address of device memory mapped by an array sectionGCC 12
Mapping of Fortran pointer and allocatable variables, including pointer and allocatable components of variablesGCC 12Mapping of vars with allocatable components unsupported
Map-order clarificationsGCC?
Array shapingN
Array sections with non-unit strides in C and C++N
metadirective directiveN
Collapse of associated loops that are imperfectly nested loopsN
allocate directiveN
Discontiguous array section with target update constructN
C/C++'s lvalue expressions in to, from and map clausesN
declare mapper directiveN
OMPT interfaceN
OMPD interfaceN
+ + +

OpenMP 5.1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureGCC VersionComments
OpenMP directive as C++ attribute specifiersGCC 12
nothing directiveGCC 12
error directiveGCC 12
masked constructGCC 12
scope directiveGCC 12
strict modifier in the grainsize and num_tasks clauses of the taskloop constructGCC 12
align clause/modifier in allocate directive/clause and allocator directiveGCC 12C/C++ on clause only
thread_limit clause to target constructGCC 12
has_device_addr clause to target constructGCC 12
Extensions to the atomic directiveGCC 12
seq_cst clause on a flush constructGCC 12
private and firstprivate argument to default clause in C and C++GCC 12
omp_set_num_teams, omp_set_teams_thread_limit, omp_get_max_teams, omp_get_teams_thread_limit runtime routinesGCC 12
omp_calloc, omp_realloc, omp_aligned_alloc, and omp_aligned_callocruntime routinesGCC 12
omp_alloctrait_key_t enum: omp_atv_serialized added, omp_atv_default changedGCC 12
omp_display_env runtime routineGCC 12Not inside target regions
OMP_PLACES syntax extensionsGCC 12
OMP_NUM_TEAMS and OMP_TEAMS_THREAD_LIMIT env variablesGCC 12
Support of strictly structured blocks in FortranGCC 12
Support of structured block sequences in C/C++GCC 12
unconstrained and reproducible modifiers on order clauseGCC 12
omp_target_is_accessible runtime routineGCC 13
omp_all_memory reserved locatorGCC 13
target_device trait in OpenMP ContextN
target_device selector set in context selectorsN
C/C++'s declare variant directive: elision support of preprocessed codeN
declare variant: new clauses adjust_args and append_argsN
dispatch constructN
device-specific ICV settings the environment variablesN
assume directiveN
Loop transformation constructsN
iterators in target update motion clauses and map clausesN
indirect calls to the device version of a procedure or function in target regionsN
interop directiveN
omp_interop_t object support in runtime routinesN
nowait clause in taskwait directiveN
inoutset argument to the depend clauseN
present argument to defaultmap clauseN
omp_target_memcpy_async and omp_target_memcpy_rect_async runtime routinesN
omp_get_mapped_ptr runtime routineN
ompt_scope_endpoint_t enum: ompt_scope_beginendN
ompt_sync_region_t enum additionsN
ompt_state_t enum: ompt_state_wait_barrier_implementation and ompt_state_wait_barrier_teamsN
ompt_callback_target_data_op_emi_t, ompt_callback_target_emi_t, ompt_callback_target_map_emi_t and ompt_callback_target_submit_emi_tN
ompt_callback_error_t typeN
+ + +

OpenMP 5.2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureGCC VersionComments
omp_in_explicit_task routine and implicit-task-var ICVN
omp/ompx/ompx sentinels and omp_/ompx_ namespacesN
Clauses on end directive can be on directiveN
Deprecation of no-argument destroy clause on depobjN
linear clause syntax changes and step modifierN
Deprecation of minus operator for reductionsN
Deprecation of separating map modifiers without commaN
declare mapper with iterator and present modifiersN
If a matching mapped list item is not found in the data environment, the pointer retains its original valueN
New enter clause replacing to on declare target directiveN
Extended list of directives permitted in Fortran pure proceduresN
New allocators directive for FortranN
Optional paired end directive with dispatchN
New memspace and traits modifiers for uses_allocatorsN
New otherwise clause replacing default on metadirectivesN
Deprecation of delimited form of declare targetN
Reproducible semantics changed for order(concurrent)N
allocate and firstprivate clauses on scopeN
ompt_callback_workN
Extended map-type handling of target enter/exit dataN
New doacross clause replacing depend with sourch/sink modifierN
omp_cur_iteration keywordN
+ + +