@@ -15499,6 +15836,496 @@ StmtResult
SemaOpenMP::ActOnOpenMPInterchangeDirective(
buildPreInits(Context, PreInits));
}
+StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses,
+
@@ -1143,6 +1143,101 @@ class OMPFullClause final : public
OMPNoChildClause {
static OMPFullClause *CreateEmpty(const ASTContext &C);
};
+/// This class represents the 'looprange' clause in the
+/// '#pragma omp fuse' directive
+///
+/// \code {c}
+/// #pragma omp fuse loop
@@ -1143,6 +1143,101 @@ class OMPFullClause final : public
OMPNoChildClause {
static OMPFullClause *CreateEmpty(const ASTContext &C);
};
+/// This class represents the 'looprange' clause in the
+/// '#pragma omp fuse' directive
+///
+/// \code {c}
+/// #pragma omp fuse loop
@@ -14189,10 +14194,48 @@ StmtResult
SemaOpenMP::ActOnOpenMPTargetTeamsDistributeSimdDirective(
getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
}
+/// Overloaded base case function
+template static bool tryHandleAs(T *t, F &&) {
+ return false;
@@ -15499,6 +15836,496 @@ StmtResult
SemaOpenMP::ActOnOpenMPInterchangeDirective(
buildPreInits(Context, PreInits));
}
+StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses,
+
@@ -14189,10 +14194,48 @@ StmtResult
SemaOpenMP::ActOnOpenMPTargetTeamsDistributeSimdDirective(
getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
}
+/// Overloaded base case function
+template static bool tryHandleAs(T *t, F &&) {
+ return false;
@@ -14219,27 +14262,320 @@ bool SemaOpenMP::checkTransformableLoopNest(
return false;
},
[&OriginalInits](OMPLoopBasedDirective *Transform) {
-Stmt *DependentPreInits;
-if (auto *Dir = dyn_cast(Transform))
- DependentPreInits = Dir->
@@ -14175,27 +14222,350 @@ bool SemaOpenMP::checkTransformableLoopNest(
return false;
},
[&OriginalInits](OMPLoopBasedDirective *Transform) {
-Stmt *DependentPreInits;
-if (auto *Dir = dyn_cast(Transform))
- DependentPreInits = Dir->
@@ -14189,10 +14194,48 @@ StmtResult
SemaOpenMP::ActOnOpenMPTargetTeamsDistributeSimdDirective(
getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
}
+/// Overloaded base case function
+template static bool tryHandleAs(T *t, F &&) {
@@ -1479,7 +1492,109 @@ class SemaOpenMP : public SemaBase {
bool checkTransformableLoopNest(
OpenMPDirectiveKind Kind, Stmt *AStmt, int NumLoops,
SmallVectorImpl &LoopHelpers,
- Stmt *&Body, SmallVectorImpl> &OriginalInits);
+ Stmt *&Body, SmallVectorIm
@@ -1479,7 +1492,109 @@ class SemaOpenMP : public SemaBase {
bool checkTransformableLoopNest(
OpenMPDirectiveKind Kind, Stmt *AStmt, int NumLoops,
SmallVectorImpl &LoopHelpers,
- Stmt *&Body, SmallVectorImpl> &OriginalInits);
+ Stmt *&Body, SmallVectorIm
@@ -1024,6 +1024,29 @@ OMPPartialClause *OMPPartialClause::CreateEmpty(const
ASTContext &C) {
return new (C) OMPPartialClause();
}
+OMPLoopRangeClause *
+OMPLoopRangeClause::Create(const ASTContext &C, SourceLocation StartLoc,
+ SourceLocation LPar
@@ -1479,7 +1492,109 @@ class SemaOpenMP : public SemaBase {
bool checkTransformableLoopNest(
OpenMPDirectiveKind Kind, Stmt *AStmt, int NumLoops,
SmallVectorImpl &LoopHelpers,
- Stmt *&Body, SmallVectorImpl> &OriginalInits);
+ Stmt *&Body, SmallVectorIm
@@ -8811,8 +8829,19 @@ class MappableExprsHandler {
++EI;
}
}
-llvm::stable_sort(DeclComponentLists, [](const MapData &LHS,
- const MapData &RHS) {
+llvm::stable_sort(DeclComponentLists, [VD](const MapData &L
@@ -8811,8 +8829,19 @@ class MappableExprsHandler {
++EI;
}
}
-llvm::stable_sort(DeclComponentLists, [](const MapData &LHS,
- const MapData &RHS) {
+llvm::stable_sort(DeclComponentLists, [VD](const MapData &L
@@ -7384,7 +7384,40 @@ class MappableExprsHandler {
// dimension.
uint64_t DimSize = 1;
-bool IsNonContiguous = CombinedInfo.NonContigInfo.IsNonContiguous;
+// Detects non-contiguous updates due to strided accesses.
+// Sets the 'IsNonContiguous' flag so th
@@ -1,174 +1,178 @@
-// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
UTC_ARGS: --function-signature --include-generated-funcs --replace-value-regex
"__omp_offloading_[0-9a-z]+_[0-9a-z]+" "reduction_size[.].+[.]"
"pl_cond[.].+[.|,]" --prefix-fileche
https://github.com/alexey-bataev commented:
Do you have the printing test for all updated directives?
https://github.com/llvm/llvm-project/pull/141772
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listin
alexey-bataev wrote:
> @alexey-bataev, could you clarify what tests you had in mind?
Would be good to see the new test for the new spellings, like `omp parallel_for`
https://github.com/llvm/llvm-project/pull/141772
___
cfe-commits mailing list
cfe-com
@@ -7384,7 +7384,40 @@ class MappableExprsHandler {
// dimension.
uint64_t DimSize = 1;
-bool IsNonContiguous = CombinedInfo.NonContigInfo.IsNonContiguous;
+// Detects non-contiguous updates due to strided accesses.
+// Sets the 'IsNonContiguous' flag so th
@@ -8811,8 +8829,19 @@ class MappableExprsHandler {
++EI;
}
}
-llvm::stable_sort(DeclComponentLists, [](const MapData &LHS,
- const MapData &RHS) {
+llvm::stable_sort(DeclComponentLists, [VD](const MapData &L
https://github.com/alexey-bataev closed
https://github.com/llvm/llvm-project/pull/141250
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/141250
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/143504
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/134709
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/140532
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1515,11 +1516,21 @@ void
Parser::ParseOMPDeclareVariantClauses(Parser::DeclGroupPtrTy Ptr,
SmallVector Vars;
IsError = ParseOpenMPVarList(OMPD_declare_variant, OMPC_adjust_args,
Vars, Data);
-if (!IsError)
-
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/145854
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/145490
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/146934
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/146891
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
alexey-bataev wrote:
Please, update release notes and OpenMPSupport.rst
https://github.com/llvm/llvm-project/pull/145854
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -8811,8 +8829,19 @@ class MappableExprsHandler {
++EI;
}
}
-llvm::stable_sort(DeclComponentLists, [](const MapData &LHS,
- const MapData &RHS) {
+llvm::stable_sort(DeclComponentLists, [VD](const MapData &L
@@ -2332,6 +2332,12 @@ void CodeGenFunction::EmitOMPPrivateLoopCounters(
for (const Expr *E : S.counters()) {
const auto *VD = cast(cast(E)->getDecl());
const auto *PrivateVD = cast(cast(*I)->getDecl());
+// Privatize original counter variable (e.g., __beginN, __e
@@ -0,0 +1,419 @@
+// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
UTC_ARGS: --clang-args ['-fopenmp', '-std=c++20'] --function-signature
--include-generated-funcs --replace-value-regex
"__omp_offloading_[0-9a-z]+_[0-9a-z]+" "reduction_size[.].+[.]
alexey-bataev wrote:
Yep, missed for some reason
https://github.com/llvm/llvm-project/pull/146779
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/146779
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/147163
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev closed
https://github.com/llvm/llvm-project/pull/146934
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/146934
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/146093
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -2092,18 +2092,36 @@ Sema::SemaDiagnosticBuilder::~SemaDiagnosticBuilder() {
}
Sema::SemaDiagnosticBuilder
-Sema::targetDiag(SourceLocation Loc, unsigned DiagID, const FunctionDecl *FD) {
+Sema::targetDiag(SourceLocation Loc, unsigned DiagID, FunctionDecl *FD) {
FD = FD
@@ -960,6 +960,8 @@ def OMP_Parallel : Directive<[Spelling<"parallel">]> {
VersionedClause,
VersionedClause,
VersionedClause,
+VersionedClause,
+VersionedClause,
alexey-bataev wrote:
Version not provided
https://github.com/llvm/llvm-projec
https://github.com/alexey-bataev commented:
Need codegen tests
https://github.com/llvm/llvm-project/pull/148048
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
alexey-bataev wrote:
Also, update OpenMPSupport.rst and release notes
https://github.com/llvm/llvm-project/pull/144635
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -4724,6 +4724,65 @@ void x() {
EXPECT_TRUE(matchesWithOpenMP(Source8, Matcher));
}
+TEST_P(ASTMatchersTest, OMPTargetUpdateDirective_IsStandaloneDirective) {
alexey-bataev wrote:
Clang tests are required
https://github.com/llvm/llvm-project/pull/144635
https://github.com/alexey-bataev commented:
Some previous comments are not addressed yet
https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit
https://github.com/alexey-bataev edited
https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1143,6 +1143,83 @@ class OMPFullClause final : public
OMPNoChildClause {
static OMPFullClause *CreateEmpty(const ASTContext &C);
};
+/// This class represents the 'looprange' clause in the
+/// '#pragma omp fuse' directive
+///
+/// \code {c}
+/// #pragma omp fuse loopr
@@ -1324,6 +1324,86 @@ class OMPDefaultClause : public OMPClause {
}
};
+/// This represents 'threadset' clause in the '#pragma omp task ...' directive.
+///
+/// \code
+/// #pragma omp task threadset(omp_pool)
+/// \endcode
+/// In this example directive '#pragma omp task'
@@ -236,6 +236,8 @@ enum class OpenMPOffloadMappingFlags : uint64_t {
// dynamic.
// This is an OpenMP extension for the sake of OpenACC support.
OMP_MAP_OMPX_HOLD = 0x2000,
+ /// Self directs mapping without creating a separate device copy.
+ OMP_MAP_SELF = 0x4000,
---
@@ -8713,6 +8713,33 @@ AST_MATCHER_P(OMPExecutableDirective, hasAnyClause,
Builder) != Clauses.end();
}
+/// Matches any ``#pragma omp target update`` executable directive.
+///
+/// Given
+///
+/// \code
+/// #pragma omp target update fro
@@ -7378,7 +7378,31 @@ class MappableExprsHandler {
// dimension.
uint64_t DimSize = 1;
-bool IsNonContiguous = CombinedInfo.NonContigInfo.IsNonContiguous;
+// Detects non-contiguous updates due to strided accesses.
+// Sets the 'IsNonContiguous' flag so th
@@ -7378,7 +7378,31 @@ class MappableExprsHandler {
// dimension.
uint64_t DimSize = 1;
-bool IsNonContiguous = CombinedInfo.NonContigInfo.IsNonContiguous;
+// Detects non-contiguous updates due to strided accesses.
+// Sets the 'IsNonContiguous' flag so th
alexey-bataev wrote:
Need a rebase
https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -7612,6 +7612,21 @@ void SemaOpenMP::ActOnOpenMPDeclareVariantDirective(
return;
}
+ // OpenMP 6.0 [9.6.2 (page 332, line 31-33, adjust_args clause, Restrictions]
+ // If the `need_device_addr` adjust-op modifier is present, each list item
+ // that appears in the
alexey-bataev wrote:
Update OpenMPSupport.rst and release nodes doc
https://github.com/llvm/llvm-project/pull/149586
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
2201 - 2257 of 2257 matches
Mail list logo