@@ -2487,6 +2487,19 @@ void
ASTStmtWriter::VisitOMPInterchangeDirective(OMPInterchangeDirective *D) {
Code = serialization::STMT_OMP_INTERCHANGE_DIRECTIVE;
}
+void ASTStmtWriter::VisitOMPCanonicalLoopSequenceTransformationDirective(
+OMPCanonicalLoopSequenceTransformati
@@ -6765,12 +6765,255 @@ llvm::Value
*CGOpenMPRuntime::emitNumThreadsForTargetDirective(
namespace {
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
+/// Utility to compare expression locations.
+/// Returns true if expr-loc of LHS is less-than that of RHS.
+/// This function asser
@@ -6765,12 +6765,255 @@ llvm::Value
*CGOpenMPRuntime::emitNumThreadsForTargetDirective(
namespace {
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
+/// Utility to compare expression locations.
+/// Returns true if expr-loc of LHS is less-than that of RHS.
+/// This function asser
@@ -3748,6 +3749,7 @@
getMapClauseKindFromModifier(OpenMPDefaultmapClauseModifier M,
OpenMPMapClauseKind Kind = OMPC_MAP_unknown;
switch (M) {
case OMPC_DEFAULTMAP_MODIFIER_alloc:
alexey-bataev wrote:
Should be alloc disabled for 6.0 and above?
https:/
@@ -6765,12 +6765,255 @@ llvm::Value
*CGOpenMPRuntime::emitNumThreadsForTargetDirective(
namespace {
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
+/// Utility to compare expression locations.
+/// Returns true if expr-loc of LHS is less-than that of RHS.
+/// This function asser
@@ -23025,8 +23032,11 @@ OMPClause *SemaOpenMP::ActOnOpenMPDefaultmapClause(
}
} else {
StringRef ModifierValue =
-"'alloc', 'from', 'to', 'tofrom', "
-"'firstprivate', 'none', 'default', 'present'";
+getLangOpts().OpenM
@@ -15716,6 +15987,489 @@ StmtResult
SemaOpenMP::ActOnOpenMPInterchangeDirective(
buildPreInits(Context, PreInits));
}
+StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses,
+
@@ -6765,12 +6765,255 @@ llvm::Value
*CGOpenMPRuntime::emitNumThreadsForTargetDirective(
namespace {
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
+/// Utility to compare expression locations.
+/// Returns true if expr-loc of LHS is less-than that of RHS.
+/// This function asser
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/157063
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -2627,7 +2627,7 @@ typedef struct {
} ed;
} kmp_event_t;
-#if OMPX_TASKGRAPH
+#if OMP_TASKGRAPH_EXPERIMENTAL
alexey-bataev wrote:
Should be separate patch for runtime only
https://github.com/llvm/llvm-project/pull/159774
@@ -3179,7 +3180,8 @@ OMPClause *Parser::ParseOpenMPClause(OpenMPDirectiveKind
DKind,
ErrorFound = true;
}
-if ((CKind == OMPC_ordered || CKind == OMPC_partial) &&
+if ((CKind == OMPC_ordered || CKind == OMPC_nowait ||
alexey-bataev wrote:
@@ -15716,6 +15987,489 @@ StmtResult
SemaOpenMP::ActOnOpenMPInterchangeDirective(
buildPreInits(Context, PreInits));
}
+StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses,
+
@@ -15716,6 +15987,489 @@ StmtResult
SemaOpenMP::ActOnOpenMPInterchangeDirective(
buildPreInits(Context, PreInits));
}
+StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses,
+
@@ -707,6 +708,7 @@ def OMP_Cancel : Directive<[Spelling<"cancel">]> {
let allowedOnceClauses = [
VersionedClause,
VersionedClause,
+VersionedClause,
alexey-bataev wrote:
Where are the tests for this new functionality?
https://github.com/llvm/ll
@@ -1485,7 +1498,81 @@ class SemaOpenMP : public SemaBase {
bool checkTransformableLoopNest(
OpenMPDirectiveKind Kind, Stmt *AStmt, int NumLoops,
SmallVectorImpl &LoopHelpers,
- Stmt *&Body, SmallVectorImpl> &OriginalInits);
+ Stmt *&Body, SmallVectorImp
@@ -15716,6 +15987,489 @@ StmtResult
SemaOpenMP::ActOnOpenMPInterchangeDirective(
buildPreInits(Context, PreInits));
}
+StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses,
+
@@ -15716,6 +15987,489 @@ StmtResult
SemaOpenMP::ActOnOpenMPInterchangeDirective(
buildPreInits(Context, PreInits));
}
+StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses,
+
@@ -15716,6 +15987,489 @@ StmtResult
SemaOpenMP::ActOnOpenMPInterchangeDirective(
buildPreInits(Context, PreInits));
}
+StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses,
+
@@ -2487,6 +2487,19 @@ void
ASTStmtWriter::VisitOMPInterchangeDirective(OMPInterchangeDirective *D) {
Code = serialization::STMT_OMP_INTERCHANGE_DIRECTIVE;
}
+void ASTStmtWriter::VisitOMPCanonicalLoopSequenceTransformationDirective(
+OMPCanonicalLoopSequenceTransformati
@@ -371,6 +370,26 @@ OMPForDirective *OMPForDirective::Create(
return Dir;
}
+Stmt *OMPLoopTransformationDirective::getTransformedStmt() const {
+ if (auto *D = dyn_cast(S)) {
+return D->getTransformedStmt();
+ }
+ if (auto *D = dyn_cast(S)) {
+return D->getTransf
@@ -1485,7 +1498,81 @@ class SemaOpenMP : public SemaBase {
bool checkTransformableLoopNest(
OpenMPDirectiveKind Kind, Stmt *AStmt, int NumLoops,
SmallVectorImpl &LoopHelpers,
- Stmt *&Body, SmallVectorImpl> &OriginalInits);
+ Stmt *&Body, SmallVectorImp
@@ -1485,7 +1498,81 @@ class SemaOpenMP : public SemaBase {
bool checkTransformableLoopNest(
OpenMPDirectiveKind Kind, Stmt *AStmt, int NumLoops,
SmallVectorImpl &LoopHelpers,
- Stmt *&Body, SmallVectorImpl> &OriginalInits);
+ Stmt *&Body, SmallVectorImp
@@ -5954,6 +5976,48 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction
&CGF, SourceLocation Loc,
Region->emitUntiedSwitch(CGF);
}
+void CGOpenMPRuntime::emitTaskgraphCall(CodeGenFunction &CGF,
+SourceLocation Loc,
+
@@ -5954,6 +5976,48 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction
&CGF, SourceLocation Loc,
Region->emitUntiedSwitch(CGF);
}
+void CGOpenMPRuntime::emitTaskgraphCall(CodeGenFunction &CGF,
+SourceLocation Loc,
+
@@ -5954,6 +5976,48 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction
&CGF, SourceLocation Loc,
Region->emitUntiedSwitch(CGF);
}
+void CGOpenMPRuntime::emitTaskgraphCall(CodeGenFunction &CGF,
+SourceLocation Loc,
+
@@ -5954,6 +5976,48 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction
&CGF, SourceLocation Loc,
Region->emitUntiedSwitch(CGF);
}
+void CGOpenMPRuntime::emitTaskgraphCall(CodeGenFunction &CGF,
+SourceLocation Loc,
+
@@ -6496,6 +6508,12 @@ StmtResult SemaOpenMP::ActOnOpenMPExecutableDirective(
"No associated statement allowed for 'omp taskwait' directive");
Res = ActOnOpenMPTaskwaitDirective(ClausesWithImplicit, StartLoc, EndLoc);
break;
+ case OMPD_taskgraph:
+asser
@@ -1497,6 +1497,11 @@ def err_omp_multiple_step_or_linear_modifier : Error<
"multiple %select{'step size'|'linear modifier'}0 found in linear clause">;
def err_omp_deprecate_old_syntax: Error<
"old syntax '%0' on '%1' clause was deprecated, use new syntax '%2'">;
+def warn
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/158134
___
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/158712
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -153,7 +153,7 @@ implementation.
+--+--+--+---+
| device | clause: extend
@@ -279,11 +279,6 @@ Improvements to Clang's diagnostics
- The :doc:`ThreadSafetyAnalysis` attributes ``ACQUIRED_BEFORE(...)`` and
``ACQUIRED_AFTER(...)`` have been moved to the stable feature set and no
longer require ``-Wthread-safety-beta`` to be used.
-- The :doc:`Threa
alexey-bataev wrote:
Update OpenMPSupport.rst
https://github.com/llvm/llvm-project/pull/158336
___
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/158336
___
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/155849
___
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/157063
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1310,6 +1326,10 @@ class OMPDefaultClause : public OMPClause {
/// Returns location of clause kind.
SourceLocation getDefaultKindKwLoc() const { return KindKwLoc; }
+ OpenMPDefaultClauseVariableCategory getDefaultVC() { return VC; }
+
+ SourceLocation getDefaultVCLoc
alexey-bataev wrote:
Update OpenMPSupport.rst and clang release notes
https://github.com/llvm/llvm-project/pull/157063
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3932,6 +3958,18 @@ OMPClause
*Parser::ParseOpenMPSingleExprWithArgClause(OpenMPDirectiveKind DKind,
if (NeedAnExpression && Val.isInvalid())
return nullptr;
+ if (Kind == OMPC_default && getLangOpts().OpenMP < 51 && Arg[0] &&
+ (static_cast(Arg[0]) == OMP_DEFA
alexey-bataev wrote:
Also update clang release notes document
https://github.com/llvm/llvm-project/pull/157025
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1497,6 +1497,11 @@ def err_omp_multiple_step_or_linear_modifier : Error<
"multiple %select{'step size'|'linear modifier'}0 found in linear clause">;
def err_omp_deprecate_old_syntax: Error<
"old syntax '%0' on '%1' clause was deprecated, use new syntax '%2'">;
+def warn
@@ -6765,12 +6765,255 @@ llvm::Value
*CGOpenMPRuntime::emitNumThreadsForTargetDirective(
namespace {
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
+/// Utility to compare expression locations.
+/// Returns true if expr-loc of LHS is less-than that of RHS.
+/// This function asser
@@ -6920,6 +7202,22 @@ class MappableExprsHandler {
/// Map between lambda declarations and their map type.
llvm::DenseMap LambdasMap;
+ /// Map from component lists to their attach pointer expressions.
+ mutable llvm::DenseMap<
+ OMPClauseMappableExprCommon::Mappab
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/156727
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -73,6 +73,18 @@ enum DefaultDataSharingAttributes {
DSA_firstprivate = 1 << 3, /// Default data sharing attribute 'firstprivate'.
};
+/// Variable Category attributes to restrict the modifier of the
+/// default clause (DefaultDataSharingAttributes)
+/// Not mentioning an
@@ -3734,6 +3734,32 @@ OMPClause
*Parser::ParseOpenMPSingleExprWithArgClause(OpenMPDirectiveKind DKind,
ConsumeAnyToken();
if (Arg.back() == OMPC_DIST_SCHEDULE_static && Tok.is(tok::comma))
DelimLoc = ConsumeAnyToken();
+ } else if (Kind == OMPC_default) {
---
@@ -3932,6 +3958,18 @@ OMPClause
*Parser::ParseOpenMPSingleExprWithArgClause(OpenMPDirectiveKind DKind,
if (NeedAnExpression && Val.isInvalid())
return nullptr;
+ if (Kind == OMPC_default && getLangOpts().OpenMP < 51 && Arg[0] &&
+ (static_cast(Arg[0]) == OMP_DEFA
@@ -11646,6 +11646,9 @@ void
OMPClauseReader::VisitOMPDefaultClause(OMPDefaultClause *C) {
C->setDefaultKind(static_cast(Record.readInt()));
C->setLParenLoc(Record.readSourceLocation());
C->setDefaultKindKwLoc(Record.readSourceLocation());
+ C->setDefaultVariableCategor
@@ -1326,11 +1365,33 @@ DSAStackTy::DSAVarData
DSAStackTy::getDSA(const_iterator &Iter,
return DVar;
}
+ DefaultDataSharingAttributes IterDA = Iter->DefaultAttr;
+ switch (Iter->DefaultVCAttr) {
+ case DSA_VC_aggregate:
+if (!VD->getType()->isAggregateType())
+
alexey-bataev wrote:
Also, I would split the patch, one patch for storage and another for private
https://github.com/llvm/llvm-project/pull/157767
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/c
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/156004
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev edited
https://github.com/llvm/llvm-project/pull/157025
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev commented:
Update OpenMP.rst and whatsnew docs for clang
https://github.com/llvm/llvm-project/pull/157025
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commi
@@ -1497,6 +1497,11 @@ def err_omp_multiple_step_or_linear_modifier : Error<
"multiple %select{'step size'|'linear modifier'}0 found in linear clause">;
def err_omp_deprecate_old_syntax: Error<
"old syntax '%0' on '%1' clause was deprecated, use new syntax '%2'">;
+def warn
@@ -443,7 +443,8 @@ implementation.
+-+---+---+--+
| Traits for default device envirable
@@ -1,512 +1,512 @@
-.. raw:: html
-
-
-.none { background-color: #FF }
-.part { background-color: #99 }
-.good { background-color: #CCFF99 }
-
-
-.. role:: none
-.. role:: part
-.. role:: good
-
-.. contents::
- :local:
-
-==
-OpenMP Support
@@ -6582,4 +6740,40 @@ class OMPAssumeDirective final : public
OMPExecutableDirective {
} // end namespace clang
+namespace llvm {
+// Allow a Stmt* be casted correctly to an OMPLoopTransformationDirective*.
+// The default routines would just use a C-style cast which won't
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/156525
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -6582,4 +6740,40 @@ class OMPAssumeDirective final : public
OMPExecutableDirective {
} // end namespace clang
+namespace llvm {
+// Allow a Stmt* be casted correctly to an OMPLoopTransformationDirective*.
+// The default routines would just use a C-style cast which won't
@@ -955,31 +960,69 @@ class OMPLoopBasedDirective : public
OMPExecutableDirective {
}
};
-/// The base class for all loop transformation directives.
-class OMPLoopTransformationDirective : public OMPLoopBasedDirective {
+/// Common class of data shared between
+/// OMPCanon
@@ -955,31 +960,69 @@ class OMPLoopBasedDirective : public
OMPExecutableDirective {
}
};
-/// The base class for all loop transformation directives.
-class OMPLoopTransformationDirective : public OMPLoopBasedDirective {
+/// Common class of data shared between
+/// OMPCanon
alexey-bataev wrote:
Update OpenMPSupport.rst and common clang document
https://github.com/llvm/llvm-project/pull/152786
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1506,8 +1506,10 @@ def err_omp_unexpected_directive : Error<
"unexpected OpenMP directive %select{|'#pragma omp %1'}0">;
def err_omp_expected_punc : Error<
"expected ',' or ')' in '%0' %select{clause|directive}1">;
-def warn_clause_expected_string : Warning<
+def warn_c
alexey-bataev wrote:
Having these functions without actual use is meaningless; better to split the
patch by the supported types or other criteria, but with the actual uses
https://github.com/llvm/llvm-project/pull/155625
___
cfe-commits mailing list
c
@@ -5177,6 +5190,17 @@ static std::pair getPrivateItem(Sema
&S, Expr *&RefExpr,
IsArrayExpr = ArraySubscript;
} else if (auto *OASE = dyn_cast_or_null(RefExpr)) {
Expr *Base = OASE->getBase()->IgnoreParenImpCasts();
+ if (S.getLangOpts().OpenMP >= 60 && !A
Roger Ferrer =?utf-8?q?Ibáñez?= ,Roger Ferrer
Ibanez
Message-ID:
In-Reply-To:
@@ -11664,6 +11664,17 @@ def note_omp_implicit_dsa : Note<
"implicitly determined as %0">;
def err_omp_loop_var_dsa : Error<
"loop iteration variable in the associated loop of 'omp %1' directi
Roger Ferrer =?utf-8?q?Ibáñez?= ,Roger Ferrer
Ibanez
Message-ID:
In-Reply-To:
@@ -1479,7 +1492,85 @@ class SemaOpenMP : public SemaBase {
bool checkTransformableLoopNest(
OpenMPDirectiveKind Kind, Stmt *AStmt, int NumLoops,
SmallVectorImpl &LoopHelpers,
-
Roger Ferrer =?utf-8?q?Ibáñez?= ,Roger Ferrer
Ibanez
Message-ID:
In-Reply-To:
@@ -14206,10 +14211,48 @@ StmtResult
SemaOpenMP::ActOnOpenMPTargetTeamsDistributeSimdDirective(
getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
}
+/// Overloaded ba
Roger Ferrer =?utf-8?q?Ibáñez?= ,Roger Ferrer
Ibanez
Message-ID:
In-Reply-To:
@@ -508,6 +512,43 @@ OMPInterchangeDirective::CreateEmpty(const ASTContext &C,
unsigned NumClauses,
SourceLocation(), SourceLocation(), NumLoops);
}
+OMPFuseDirective *OMPFuseDirective::Cr
alexey-bataev wrote:
> In the current implementation I switched to using OrigVar->getType() to get
> the variable’s Type. Now getTypeSize() correctly returns 8 bits for char, 16
> for short, 64 for long, etc. That means code like now rejects, whereas it
> used to compile.
I think it should be
https://github.com/alexey-bataev approved this pull request.
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
@@ -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
@@ -3256,9 +3256,8 @@ LValue CodeGenFunction::EmitDeclRefLValue(const
DeclRefExpr *E) {
var, ConvertTypeForMem(VD->getType()),
getContext().getDeclAlign(VD));
// No other cases for now.
-} else {
+} else
alexey-bataev wrote:
Restore br
@@ -11664,6 +11664,17 @@ def note_omp_implicit_dsa : Note<
"implicitly determined as %0">;
def err_omp_loop_var_dsa : Error<
"loop iteration variable in the associated loop of 'omp %1' directive may
not be %0, predetermined as %2">;
+def err_omp_not_canonical_loop : Error<
@@ -11664,6 +11664,17 @@ def note_omp_implicit_dsa : Note<
"implicitly determined as %0">;
def err_omp_loop_var_dsa : Error<
"loop iteration variable in the associated loop of 'omp %1' directive may
not be %0, predetermined as %2">;
+def err_omp_not_canonical_loop : Error<
@@ -2162,6 +2162,10 @@ enum CXCursorKind {
*/
CXCursor_OMPStripeDirective = 310,
+ /** OpenMP fuse directive
+ */
+ CXCursor_OMPFuseDirective = 318,
alexey-bataev wrote:
```suggestion
CXCursor_OMPFuseDirective = 311,
```
https://github.com/llvm/l
@@ -11664,6 +11664,17 @@ def note_omp_implicit_dsa : Note<
"implicitly determined as %0">;
def err_omp_loop_var_dsa : Error<
"loop iteration variable in the associated loop of 'omp %1' directive may
not be %0, predetermined as %2">;
+def err_omp_not_canonical_loop : Error<
@@ -4724,6 +4724,65 @@ void x() {
EXPECT_TRUE(matchesWithOpenMP(Source8, Matcher));
}
+TEST_P(ASTMatchersTest, OMPTargetUpdateDirective_IsStandaloneDirective) {
alexey-bataev wrote:
These tests better to move a separate patch, if really needed
https://gith
@@ -7378,7 +7378,35 @@ 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
@@ -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
https://github.com/alexey-bataev approved this pull request.
https://github.com/llvm/llvm-project/pull/135807
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/alexey-bataev edited
https://github.com/llvm/llvm-project/pull/135807
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3700,6 +3700,7 @@ CGOpenMPRuntime::emitTaskInit(CodeGenFunction &CGF,
SourceLocation Loc,
DestructorsFlag = 0x8,
PriorityFlag = 0x20,
DetachableFlag = 0x40,
+FreeAgentFlag = 0x80,
alexey-bataev wrote:
Doe this flag implemented in runtime a
alexey-bataev wrote:
> > I have one big question - why do we need this? If pointer is mapped
> > explicitly, it becomes an attached pointer, which cannot be modified in
> > target region. How we capture/process it, byref or byval, does not matter,
> > we can do whatever is better. So, why do w
alexey-bataev wrote:
> For the following:
>
> ```c
> int *p;
> #pragma omp target map(p[0]) //(A)
> (void)p;
>
> #pragma omp target map(p) // (B)
> (void)p;
>
> #pragma omp target map(p, p[0]) // (C)
> (void)p;
>
> #pragma omp target map(p[0], p) // (D)
> (void)p;
>
@@ -7378,7 +7378,35 @@ 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,35 @@ 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,35 @@ 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,35 @@ 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
@@ -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
https://github.com/alexey-bataev approved this pull request.
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
https://github.com/alexey-bataev approved this pull request.
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
alexey-bataev wrote:
> > Update OpenMPSupport.rst and release nodes doc
>
> I updated the OpenMPSupport.rst file. Please take a look. Are you referring
> to `clang/docs/ReleaseNotes.rst`? Wouldn't it be a good idea to add a release
> note once the codegen is complete?
Yes, this one. Better to
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
@@ -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:
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
@@ -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
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
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
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
1 - 100 of 1741 matches
Mail list logo