Skip to content

Commit b674e11

Browse files
Fixing flang build failure and updating release docs
1 parent 831fb3c commit b674e11

File tree

6 files changed

+14
-2
lines changed

6 files changed

+14
-2
lines changed

clang/docs/OpenMPSupport.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ implementation.
406406
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
407407
| Private reductions | :none:`unclaimed` | :none:`unclaimed` | |
408408
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
409-
| Self maps | :none:`unclaimed` | :none:`unclaimed` | |
409+
| Self maps | :part:`partial` | :none:`unclaimed` | parsing/sema done: https://github.com/llvm/llvm-project/pull/129888 |
410410
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
411411
| Release map type for declare mapper | :none:`unclaimed` | :none:`unclaimed` | |
412412
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+

clang/docs/ReleaseNotes.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ Python Binding Changes
280280
OpenMP Support
281281
--------------
282282
- Added support 'no_openmp_constructs' assumption clause.
283+
- Added support for 'self_maps' in map and requirement clause.
283284

284285
Improvements
285286
^^^^^^^^^^^^

flang/lib/Lower/OpenMP/Clauses.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ MAKE_EMPTY_CLASS(Simd, Simd);
217217
MAKE_EMPTY_CLASS(Threads, Threads);
218218
MAKE_EMPTY_CLASS(UnifiedAddress, UnifiedAddress);
219219
MAKE_EMPTY_CLASS(UnifiedSharedMemory, UnifiedSharedMemory);
220+
MAKE_EMPTY_CLASS(SelfMaps, SelfMaps);
220221
MAKE_EMPTY_CLASS(Unknown, Unknown);
221222
MAKE_EMPTY_CLASS(Untied, Untied);
222223
MAKE_EMPTY_CLASS(Weak, Weak);

flang/lib/Lower/OpenMP/Clauses.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ using To = tomp::clause::ToT<TypeTy, IdTy, ExprTy>;
285285
using UnifiedAddress = tomp::clause::UnifiedAddressT<TypeTy, IdTy, ExprTy>;
286286
using UnifiedSharedMemory =
287287
tomp::clause::UnifiedSharedMemoryT<TypeTy, IdTy, ExprTy>;
288+
using SelfMaps = tomp::clause::SelfMapsT<TypeTy, IdTy, ExprTy>;
288289
using Uniform = tomp::clause::UniformT<TypeTy, IdTy, ExprTy>;
289290
using Unknown = tomp::clause::UnknownT<TypeTy, IdTy, ExprTy>;
290291
using Untied = tomp::clause::UntiedT<TypeTy, IdTy, ExprTy>;

flang/lib/Semantics/check-omp-structure.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5452,6 +5452,10 @@ void OmpStructureChecker::Enter(
54525452
CheckAllowedRequiresClause(llvm::omp::Clause::OMPC_unified_shared_memory);
54535453
}
54545454

5455+
void OmpStructureChecker::Enter(const parser::OmpClause::SelfMaps &x) {
5456+
CheckAllowedRequiresClause(llvm::omp::Clause::OMPC_self_maps);
5457+
}
5458+
54555459
void OmpStructureChecker::Enter(const parser::DoConstruct &x) {
54565460
Base::Enter(x);
54575461
loopStack_.push_back(&x);

llvm/include/llvm/Frontend/OpenMP/ClauseT.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1142,6 +1142,11 @@ struct UnifiedSharedMemoryT {
11421142
using EmptyTrait = std::true_type;
11431143
};
11441144

1145+
template <typename T, typename I, typename E> //
1146+
struct SelfMapsT {
1147+
using EmptyTrait = std::true_type;
1148+
};
1149+
11451150
// V5.2: [5.10] `uniform` clause
11461151
template <typename T, typename I, typename E> //
11471152
struct UniformT {
@@ -1245,7 +1250,7 @@ using EmptyClausesT = std::variant<
12451250
ReverseOffloadT<T, I, E>, SeqCstT<T, I, E>, SimdT<T, I, E>,
12461251
ThreadsT<T, I, E>, UnifiedAddressT<T, I, E>, UnifiedSharedMemoryT<T, I, E>,
12471252
UnknownT<T, I, E>, UntiedT<T, I, E>, UseT<T, I, E>, WeakT<T, I, E>,
1248-
WriteT<T, I, E>, NoOpenmpConstructsT<T, I, E>>;
1253+
WriteT<T, I, E>, NoOpenmpConstructsT<T, I, E>, SelfMapsT<T, I, E>>;
12491254

12501255
template <typename T, typename I, typename E>
12511256
using IncompleteClausesT =

0 commit comments

Comments
 (0)