Index: clang/docs/OpenMPSupport.rst =================================================================== --- clang/docs/OpenMPSupport.rst +++ clang/docs/OpenMPSupport.rst @@ -117,19 +117,19 @@ +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ |Category | Feature | Status | Reviews | +==============================+==============================================================+==========================+=======================================================================+ -| loop extension | support != in the canonical loop form | :good:`done` | D54441 | +| loop | support != in the canonical loop form | :good:`done` | D54441 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| loop extension | #pragma omp loop (directive) | :part:`worked on` | | +| loop | #pragma omp loop (directive) | :part:`worked on` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| loop extension | collapse imperfectly nested loop | :good:`done` | | +| loop | collapse imperfectly nested loop | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| loop extension | collapse non-rectangular nested loop | :good:`done` | | +| loop | collapse non-rectangular nested loop | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| loop extension | C++ range-base for loop | :good:`done` | | +| loop | C++ range-base for loop | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| loop extension | clause: if for SIMD directives | :good:`done` | | +| loop | clause: if for SIMD directives | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| loop extension | inclusive scan extension (matching C++17 PSTL) | :good:`done` | | +| loop | inclusive scan (matching C++17 PSTL) | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | memory management | memory allocators | :good:`done` | r341687,r357929 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ @@ -139,89 +139,89 @@ +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | OMPT | OMPT interfaces | :part:`mostly done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| thread affinity extension | thread affinity extension | :good:`done` | | +| thread affinity | thread affinity | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | taskloop reduction | :good:`done` | | +| task | taskloop reduction | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | task affinity | :part:`not upstream` | https://github.com/jklinkenberg/openmp/tree/task-affinity | +| task | task affinity | :part:`not upstream` | https://github.com/jklinkenberg/openmp/tree/task-affinity | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | clause: depend on the taskwait construct | :part:`mostly done` | D113540 (regular codegen only) | +| task | clause: depend on the taskwait construct | :part:`mostly done` | D113540 (regular codegen only) | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | depend objects and detachable tasks | :good:`done` | | +| task | depend objects and detachable tasks | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | mutexinoutset dependence-type for tasks | :good:`done` | D53380,D57576 | +| task | mutexinoutset dependence-type for tasks | :good:`done` | D53380,D57576 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | combined taskloop constructs | :good:`done` | | +| task | combined taskloop constructs | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | master taskloop | :good:`done` | | +| task | master taskloop | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | parallel master taskloop | :good:`done` | | +| task | parallel master taskloop | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | master taskloop simd | :good:`done` | | +| task | master taskloop simd | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | parallel master taskloop simd | :good:`done` | | +| task | parallel master taskloop simd | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| SIMD extension | atomic and simd constructs inside SIMD code | :good:`done` | | +| SIMD | atomic and simd constructs inside SIMD code | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| SIMD extension | SIMD nontemporal | :good:`done` | | +| SIMD | SIMD nontemporal | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | infer target functions from initializers | :part:`worked on` | | +| device | infer target functions from initializers | :part:`worked on` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | infer target variables from initializers | :part:`worked on` | | +| device | infer target variables from initializers | :part:`worked on` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | OMP_TARGET_OFFLOAD environment variable | :good:`done` | D50522 | +| device | OMP_TARGET_OFFLOAD environment variable | :good:`done` | D50522 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | support full 'defaultmap' functionality | :good:`done` | D69204 | +| device | support full 'defaultmap' functionality | :good:`done` | D69204 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | device specific functions | :good:`done` | | +| device | device specific functions | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: device_type | :good:`done` | | +| device | clause: device_type | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: extended device | :good:`done` | | +| device | clause: extended device | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: uses_allocators clause | :good:`done` | | +| device | clause: uses_allocators clause | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: in_reduction | :part:`worked on` | r308768 | +| device | clause: in_reduction | :part:`worked on` | r308768 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | omp_get_device_num() | :part:`worked on` | D54342 | +| device | omp_get_device_num() | :part:`worked on` | D54342 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | structure mapping of references | :none:`unclaimed` | | +| device | structure mapping of references | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | nested target declare | :good:`done` | D51378 | +| device | nested target declare | :good:`done` | D51378 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | implicitly map 'this' (this[:1]) | :good:`done` | D55982 | +| device | implicitly map 'this' (this[:1]) | :good:`done` | D55982 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | allow access to the reference count (omp_target_is_present) | :good:`done` | | +| device | allow access to the reference count (omp_target_is_present) | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | requires directive | :part:`partial` | | +| device | requires directive | :part:`partial` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: unified_shared_memory | :good:`done` | D52625,D52359 | +| device | clause: unified_shared_memory | :good:`done` | D52625,D52359 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: unified_address | :part:`partial` | | +| device | clause: unified_address | :part:`partial` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: reverse_offload | :none:`unclaimed parts` | D52780 | +| device | clause: reverse_offload | :none:`unclaimed parts` | D52780 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: atomic_default_mem_order | :good:`done` | D53513 | +| device | clause: atomic_default_mem_order | :good:`done` | D53513 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: dynamic_allocators | :part:`unclaimed parts` | D53079 | +| device | clause: dynamic_allocators | :part:`unclaimed parts` | D53079 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | user-defined mappers | :part:`worked on` | D56326,D58638,D58523,D58074,D60972,D59474 | +| device | user-defined mappers | :part:`worked on` | D56326,D58638,D58523,D58074,D60972,D59474 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | mapping lambda expression | :good:`done` | D51107 | +| device | mapping lambda expression | :good:`done` | D51107 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | clause: use_device_addr for target data | :good:`done` | | +| device | clause: use_device_addr for target data | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | support close modifier on map clause | :good:`done` | D55719,D55892 | +| device | support close modifier on map clause | :good:`done` | D55719,D55892 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | teams construct on the host device | :part:`done` | r371553 | +| device | teams construct on the host device | :part:`done` | r371553 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | support non-contiguous array sections for target update | :good:`done` | | +| device | support non-contiguous array sections for target update | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | pointer attachment | :none:`unclaimed` | | +| device | pointer attachment | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | map clause reordering based on map types | :none:`unclaimed` | | +| device | map clause reordering based on map types | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| atomic extension | hints for the atomic construct | :good:`done` | D51233 | +| atomic | hints for the atomic construct | :good:`done` | D51233 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | base language | C11 support | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ @@ -229,25 +229,25 @@ +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | base language | lambda support | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | array shaping | :good:`done` | D74144 | +| misc | array shaping | :good:`done` | D74144 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | library shutdown (omp_pause_resource[_all]) | :none:`unclaimed parts` | D55078 | +| misc | library shutdown (omp_pause_resource[_all]) | :none:`unclaimed parts` | D55078 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | metadirectives | :part:`worked on` | D91944 | +| misc | metadirectives | :part:`worked on` | D91944 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | conditional modifier for lastprivate clause | :good:`done` | | +| misc | conditional modifier for lastprivate clause | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | iterator and multidependences | :good:`done` | | +| misc | iterator and multidependences | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | depobj directive and depobj dependency kind | :good:`done` | | +| misc | depobj directive and depobj dependency kind | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | user-defined function variants | :part:`worked on` | D67294, D64095, D71847, D71830, D109635 | +| misc | user-defined function variants | :part:`worked on` | D67294, D64095, D71847, D71830, D109635 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | pointer/reference to pointer based array reductions | :none:`unclaimed` | | +| misc | pointer/reference to pointer based array reductions | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | prevent new type definitions in clauses | :good:`done` | | +| misc | prevent new type definitions in clauses | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| memory model extension | memory model update (seq_cst, acq_rel, release, acquire,...) | :good:`done` | | +| memory model | memory model update (seq_cst, acq_rel, release, acquire,...) | :good:`done` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ @@ -262,85 +262,85 @@ +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ |Category | Feature | Status | Reviews | +==============================+==============================================================+==========================+=======================================================================+ -| atomic extension | 'compare' clause on atomic construct | :good:`worked on` | | +| atomic | 'compare' clause on atomic construct | :good:`worked on` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| atomic extension | 'fail' clause on atomic construct | :part:`worked on` | | +| atomic | 'fail' clause on atomic construct | :part:`worked on` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | base language | C++ attribute specifier syntax | :good:`done` | D105648 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | 'present' map type modifier | :good:`done` | D83061, D83062, D84422 | +| device | 'present' map type modifier | :good:`done` | D83061, D83062, D84422 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | 'present' motion modifier | :good:`done` | D84711, D84712 | +| device | 'present' motion modifier | :good:`done` | D84711, D84712 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | 'present' in defaultmap clause | :good:`done` | D92427 | +| device | 'present' in defaultmap clause | :good:`done` | D92427 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | map clause reordering reordering based on 'present' modifier | :none:`unclaimed` | | +| device | map clause reordering reordering based on 'present' modifier | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | device-specific environment variables | :none:`unclaimed` | | +| device | device-specific environment variables | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | omp_target_is_accessible routine | :none:`unclaimed` | | +| device | omp_target_is_accessible routine | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | omp_get_mapped_ptr routine | :none:`unclaimed` | | +| device | omp_get_mapped_ptr routine | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | new async target memory copy routines | :none:`unclaimed` | | +| device | new async target memory copy routines | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | thread_limit clause on target construct | :none:`unclaimed` | | +| device | thread_limit clause on target construct | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | has_device_addr clause on target construct | :none:`unclaimed` | | +| device | has_device_addr clause on target construct | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | iterators in map clause or motion clauses | :none:`unclaimed` | | +| device | iterators in map clause or motion clauses | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | indirect clause on declare target directive | :none:`unclaimed` | | +| device | indirect clause on declare target directive | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | allow virtual functions calls for mapped object on device | :none:`unclaimed` | | +| device | allow virtual functions calls for mapped object on device | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | interop construct | :part:`partial` | parsing/sema done: D98558, D98834, D98815 | +| device | interop construct | :part:`partial` | parsing/sema done: D98558, D98834, D98815 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| device extension | assorted routines for querying interoperable properties | :none:`unclaimed` | | +| device | assorted routines for querying interoperable properties | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| loop extension | Loop tiling transformation | :good:`done` | D76342 | +| loop | Loop tiling transformation | :good:`done` | D76342 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| loop extension | Loop unrolling transformation | :good:`done` | D99459 | +| loop | Loop unrolling transformation | :good:`done` | D99459 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| loop extension | 'reproducible'/'unconstrained' modifiers in 'order' clause | :none:`unclaimed` | | +| loop | 'reproducible'/'unconstrained' modifiers in 'order' clause | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| memory management | alignment extensions for allocate directive and clause | :part:`worked on` | | +| memory management | alignment for allocate directive and clause | :part:`worked on` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | memory management | new memory management routines | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | memory management | changes to omp_alloctrait_key enum | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| memory model extension | seq_cst clause on flush construct | :none:`unclaimed` | | +| memory model | seq_cst clause on flush construct | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | 'omp_all_memory' keyword and use in 'depend' clause | :none:`unclaimed` | | +| misc | 'omp_all_memory' keyword and use in 'depend' clause | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | error directive | :none:`unclaimed` | | +| misc | error directive | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | scope construct | :none:`unclaimed` | | +| misc | scope construct | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | routines for controlling and querying team regions | :none:`unclaimed` | | +| misc | routines for controlling and querying team regions | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | changes to ompt_scope_endpoint_t enum | :none:`unclaimed` | | +| misc | changes to ompt_scope_endpoint_t enum | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | omp_display_env routine | :none:`unclaimed` | | +| misc | omp_display_env routine | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | extended OMP_PLACES syntax | :none:`unclaimed` | | +| misc | extended OMP_PLACES syntax | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | OMP_NUM_TEAMS and OMP_TEAMS_THREAD_LIMIT env vars | :none:`unclaimed` | | +| misc | OMP_NUM_TEAMS and OMP_TEAMS_THREAD_LIMIT env vars | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | 'target_device' selector in context specifier | :none:`unclaimed` | | +| misc | 'target_device' selector in context specifier | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | begin/end declare variant | :good:`done` | D71179 | +| misc | begin/end declare variant | :good:`done` | D71179 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | dispatch construct and function variant argument adjustment | :part:`worked on` | D99537, D99679 | +| misc | dispatch construct and function variant argument adjustment | :part:`worked on` | D99537, D99679 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | assume and assumes directives | :part:`worked on` | | +| misc | assume and assumes directives | :part:`worked on` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | nothing directive | :part:`worked on` | | +| misc | nothing directive | :part:`worked on` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | masked construct and related combined constructs | :part:`worked on` | D99995, D100514 | +| misc | masked construct and related combined constructs | :part:`worked on` | D99995, D100514 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| misc extension | default(firstprivate) & default(private) | :part:`partial` | firstprivate done: D75591 | +| misc | default(firstprivate) & default(private) | :part:`partial` | firstprivate done: D75591 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | other | deprecating master construct | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ @@ -352,11 +352,11 @@ +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | OMPT | new 'emi' callbacks for external monitoring interfaces | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | 'strict' modifier for taskloop construct | :none:`unclaimed` | | +| task | 'strict' modifier for taskloop construct | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | inoutset in depend clause | :none:`unclaimed` | | +| task | inoutset in depend clause | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| task extension | nowait clause on taskwait | :none:`unclaimed` | | +| task | nowait clause on taskwait | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ OpenMP Extensions