2.3 OpenMP 5.1

New features listed in Appendix B of the OpenMP specification

DescriptionStatusComments
OpenMP directive as C++ attribute specifiersY
omp_all_memory reserved locatorY
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 with environment variablesY
assume and assumes directivesY
nothing directiveY
error directiveY
masked constructY
scope directiveY
Loop transformation constructsN
strict modifier in the grainsize and num_tasks clauses of the taskloop constructY
align clause in allocate directivePOnly C and Fortran (and not for static variables)
align modifier in allocate clauseY
thread_limit clause to target constructY
has_device_addr clause to target constructY
Iterators in target update motion clauses and map clausesN
Indirect calls to the device version of a procedure or function in target regionsY
interop directiveN
omp_interop_t object support in runtime routinesN
nowait clause in taskwait directiveY
Extensions to the atomic directiveY
seq_cst clause on a flush constructY
inoutset argument to the depend clauseY
private and firstprivate argument to default clause in C and C++Y
present argument to defaultmap clauseY
omp_set_num_teams, omp_set_teams_thread_limit, omp_get_max_teams, omp_get_teams_thread_limit runtime routinesY
omp_target_is_accessible runtime routineY
omp_target_memcpy_async and omp_target_memcpy_rect_async runtime routinesY
omp_get_mapped_ptr runtime routineY
omp_calloc, omp_realloc, omp_aligned_alloc and omp_aligned_calloc runtime routinesY
omp_alloctrait_key_t enum: omp_atv_serialized added, omp_atv_default changedY
omp_display_env runtime routineY
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
OMP_PLACES syntax extensionsY
OMP_NUM_TEAMS and OMP_TEAMS_THREAD_LIMIT environment variablesY

Other new OpenMP 5.1 features

DescriptionStatusComments
Support of strictly structured blocks in FortranY
Support of structured block sequences in C/C++Y
unconstrained and reproducible modifiers on order clauseY
Support begin/end declare target syntax in C/C++Y
Pointer predetermined firstprivate getting initialized to address of matching mapped list item per 5.1, Sect. 2.21.7.2N
For Fortran, diagnose placing declarative before/between USE, IMPORT, and IMPLICIT as invalidN
Optional comma between directive and clause in the #pragma formY
indirect clause in declare targetY
device_type(nohost)/device_type(host) for variablesN
present modifier to the map, to and from clausesY