[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-22 Thread Alexey Bataev via cfe-commits
@@ -2487,6 +2487,19 @@ void ASTStmtWriter::VisitOMPInterchangeDirective(OMPInterchangeDirective *D) { Code = serialization::STMT_OMP_INTERCHANGE_DIRECTIVE; } +void ASTStmtWriter::VisitOMPCanonicalLoopSequenceTransformationDirective( +OMPCanonicalLoopSequenceTransformati

[clang] [NFC][Clang][OpenMP] Add helper functions/utils for finding/comparing attach base-ptrs. (PR #155625)

2025-09-21 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [NFC][Clang][OpenMP] Add helper functions/utils for finding/comparing attach base-ptrs. (PR #155625)

2025-09-21 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [clang][OpenMP] 6.0: Add defaultmap implicit-behavior 'storage' (PR #158336)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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:/

[clang] [NFC][Clang][OpenMP] Add helper functions/utils for finding/comparing attach base-ptrs. (PR #155625)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [clang][OpenMP] 6.0: Add defaultmap implicit-behaviors 'private' and 'storage' (PR #157767)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -23025,8 +23032,11 @@ OMPClause *SemaOpenMP::ActOnOpenMPDefaultmapClause( } } else { StringRef ModifierValue = -"'alloc', 'from', 'to', 'tofrom', " -"'firstprivate', 'none', 'default', 'present'"; +getLangOpts().OpenM

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -15716,6 +15987,489 @@ StmtResult SemaOpenMP::ActOnOpenMPInterchangeDirective( buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses, +

[clang] [NFC][Clang][OpenMP] Add helper functions/utils for finding/comparing attach base-ptrs. (PR #155625)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-20 Thread Alexey Bataev via 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

[clang] [llvm] [openmp] [OpenMP] Taskgraph Clang 'record and replay' frontend support (PR #159774)

2025-09-20 Thread Alexey Bataev via 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

[clang] [llvm] [OpenMP 60] Update parsing and semantic support for `nowait` clause to accept optional argument (PR #159628)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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:

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -15716,6 +15987,489 @@ StmtResult SemaOpenMP::ActOnOpenMPInterchangeDirective( buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses, +

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -15716,6 +15987,489 @@ StmtResult SemaOpenMP::ActOnOpenMPInterchangeDirective( buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses, +

[clang] [llvm] [OpenMP 60] Update parsing and semantic support for `nowait` clause to accept optional argument (PR #159628)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -15716,6 +15987,489 @@ StmtResult SemaOpenMP::ActOnOpenMPInterchangeDirective( buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses, +

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -15716,6 +15987,489 @@ StmtResult SemaOpenMP::ActOnOpenMPInterchangeDirective( buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses, +

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -15716,6 +15987,489 @@ StmtResult SemaOpenMP::ActOnOpenMPInterchangeDirective( buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPFuseDirective(ArrayRef Clauses, +

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -2487,6 +2487,19 @@ void ASTStmtWriter::VisitOMPInterchangeDirective(OMPInterchangeDirective *D) { Code = serialization::STMT_OMP_INTERCHANGE_DIRECTIVE; } +void ASTStmtWriter::VisitOMPCanonicalLoopSequenceTransformationDirective( +OMPCanonicalLoopSequenceTransformati

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [llvm] [openmp] [OpenMP] Taskgraph Clang 'record and replay' frontend support (PR #159774)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -5954,6 +5976,48 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction &CGF, SourceLocation Loc, Region->emitUntiedSwitch(CGF); } +void CGOpenMPRuntime::emitTaskgraphCall(CodeGenFunction &CGF, +SourceLocation Loc, +

[clang] [llvm] [openmp] [OpenMP] Taskgraph Clang 'record and replay' frontend support (PR #159774)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -5954,6 +5976,48 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction &CGF, SourceLocation Loc, Region->emitUntiedSwitch(CGF); } +void CGOpenMPRuntime::emitTaskgraphCall(CodeGenFunction &CGF, +SourceLocation Loc, +

[clang] [llvm] [openmp] [OpenMP] Taskgraph Clang 'record and replay' frontend support (PR #159774)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -5954,6 +5976,48 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction &CGF, SourceLocation Loc, Region->emitUntiedSwitch(CGF); } +void CGOpenMPRuntime::emitTaskgraphCall(CodeGenFunction &CGF, +SourceLocation Loc, +

[clang] [llvm] [openmp] [OpenMP] Taskgraph Clang 'record and replay' frontend support (PR #159774)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -5954,6 +5976,48 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction &CGF, SourceLocation Loc, Region->emitUntiedSwitch(CGF); } +void CGOpenMPRuntime::emitTaskgraphCall(CodeGenFunction &CGF, +SourceLocation Loc, +

[clang] [llvm] [openmp] [OpenMP] Taskgraph Clang 'record and replay' frontend support (PR #159774)

2025-09-20 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [OpenMP 5.2] New syntax for 'uses_allocators' clause (PR #157025)

2025-09-18 Thread Alexey Bataev via 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

[clang] [llvm] [clang] [OpenMP] New OpenMP 6.0 - Parsing and Sema support for groupprivate (PR #158134)

2025-09-16 Thread Alexey Bataev via cfe-commits
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

[clang] [clang][OpenMP] 6.0: Add defaultmap implicit-behavior 'private' (PR #158712)

2025-09-16 Thread Alexey Bataev via 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

[clang] [OpenMP 5.2] New syntax for 'uses_allocators' clause (PR #157025)

2025-09-15 Thread Alexey Bataev via cfe-commits
@@ -153,7 +153,7 @@ implementation. +--+--+--+---+ | device | clause: extend

[clang] [OpenMP 5.2] New syntax for 'uses_allocators' clause (PR #157025)

2025-09-15 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [clang][OpenMP] 6.0: Add defaultmap implicit-behavior 'storage' (PR #158336)

2025-09-15 Thread Alexey Bataev via cfe-commits
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

[clang] [clang][OpenMP] 6.0: Add defaultmap implicit-behavior 'storage' (PR #158336)

2025-09-15 Thread Alexey Bataev via 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

[clang] [Clang][OpenMP] Add an additional class to hold data that will be shared between all loop transformations (PR #155849)

2025-09-14 Thread Alexey Bataev via 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

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-13 Thread Alexey Bataev via 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

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-13 Thread Alexey Bataev via 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

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-12 Thread Alexey Bataev via cfe-commits
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

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-12 Thread Alexey Bataev via 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

[clang] [OpenMP 5.2] New syntax for 'uses_allocators' clause (PR #157025)

2025-09-12 Thread Alexey Bataev via cfe-commits
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

[clang] [OpenMP 5.2] New syntax for 'uses_allocators' clause (PR #157025)

2025-09-12 Thread Alexey Bataev via 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

[clang] [NFC][Clang][OpenMP] Add helper functions/utils for finding/comparing attach base-ptrs. (PR #155625)

2025-09-12 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [NFC][Clang][OpenMP] Add helper functions/utils for finding/comparing attach base-ptrs. (PR #155625)

2025-09-12 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [llvm] [mlir] [clang] Use VFS for `-fopenmp-host-ir-file-path` (PR #156727)

2025-09-12 Thread Alexey Bataev via cfe-commits
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

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-12 Thread Alexey Bataev via 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

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-12 Thread Alexey Bataev via cfe-commits
@@ -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) { ---

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-12 Thread Alexey Bataev via 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

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-12 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [Clang][OpenMP]Default clause variable category (PR #157063)

2025-09-12 Thread Alexey Bataev via cfe-commits
@@ -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()) +

[clang] [clang][OpenMP] 6.0: Add defaultmap implicit-behaviors 'private' and 'storage' (PR #157767)

2025-09-12 Thread Alexey Bataev via cfe-commits
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

[clang] [OpenMP] Conditional modifier on lastprivate clause is producing incorrect result in C mode (PR #156004)

2025-09-08 Thread Alexey Bataev via cfe-commits
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

[clang] [OpenMP 5.2] New syntax for 'uses_allocators' clause (PR #157025)

2025-09-08 Thread Alexey Bataev via 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

[clang] [OpenMP 5.2] New syntax for 'uses_allocators' clause (PR #157025)

2025-09-08 Thread Alexey Bataev via 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

[clang] [OpenMP 5.2] New syntax for 'uses_allocators' clause (PR #157025)

2025-09-08 Thread Alexey Bataev via 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

[clang] [clang][OpenMP] 6.0: detect privatization of array section/assumed-size array (PR #152786)

2025-09-03 Thread Alexey Bataev via cfe-commits
@@ -443,7 +443,8 @@ implementation. +-+---+---+--+ | Traits for default device envirable

[clang] [flang] [llvm] [openmp] [clang][OpenMP] New OpenMP 6.0 threadset clause (PR #135807)

2025-09-03 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-02 Thread Alexey Bataev via 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

[clang] [OpenMP][clang] Fix CaptureRegion for message clause (PR #156525)

2025-09-02 Thread Alexey Bataev via cfe-commits
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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-01 Thread Alexey Bataev via 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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-01 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-09-01 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [clang][OpenMP] 6.0: detect privatization of array section/assumed-size array (PR #152786)

2025-09-01 Thread Alexey Bataev via cfe-commits
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

[clang] [llvm] Reland: [OpenMP][clang] 6.0: num_threads strict (part 3: codegen) (PR #155839)

2025-08-28 Thread Alexey Bataev via 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

[clang] [NFC][Clang][OpenMP] Add helper functions/utils for finding/comparing attach base-ptrs. (PR #155625)

2025-08-28 Thread Alexey Bataev via cfe-commits
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

[clang] [clang][OpenMP] 6.0: detect privatization of array section/assumed-size array (PR #152786)

2025-08-27 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-08-11 Thread Alexey Bataev via cfe-commits
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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-08-11 Thread Alexey Bataev via cfe-commits
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, -

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-08-11 Thread Alexey Bataev via cfe-commits
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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-08-08 Thread Alexey Bataev via cfe-commits
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

[clang] [OpenMP] Add diagnostic for 'factor' width mismatch in 'unroll partial' (PR #139986)

2025-07-30 Thread Alexey Bataev via cfe-commits
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

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-29 Thread Alexey Bataev via cfe-commits
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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-25 Thread Alexey Bataev via 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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-25 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-25 Thread Alexey Bataev via cfe-commits
@@ -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<

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-25 Thread Alexey Bataev via cfe-commits
@@ -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<

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-25 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-25 Thread Alexey Bataev via cfe-commits
@@ -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<

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-25 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-25 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-25 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [llvm] [openmp] [clang][OpenMP] New OpenMP 6.0 threadset clause (PR #135807)

2025-07-24 Thread Alexey Bataev via cfe-commits
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

[clang] [llvm] [openmp] [clang][OpenMP] New OpenMP 6.0 threadset clause (PR #135807)

2025-07-24 Thread Alexey Bataev via 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

[clang] [llvm] [openmp] [clang][OpenMP] New OpenMP 6.0 threadset clause (PR #135807)

2025-07-24 Thread Alexey Bataev via 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

[clang] [llvm] [Clang][OpenMP] Capture mapped pointers on `target` by reference. (PR #145454)

2025-07-23 Thread Alexey Bataev via cfe-commits
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

[clang] [llvm] [Clang][OpenMP] Capture mapped pointers on `target` by reference. (PR #145454)

2025-07-23 Thread Alexey Bataev via cfe-commits
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; >

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-23 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-23 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-23 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-23 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-23 Thread Alexey Bataev via cfe-commits
@@ -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

[clang] [clang][OpenMP] In 6.0, can omit length in array section (PR #148048)

2025-07-23 Thread Alexey Bataev via cfe-commits
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

[clang] [OpenMP 6.0] Allow only byref arguments with `need_device_addr` modifier on `adjust_args` clause (PR #149586)

2025-07-23 Thread Alexey Bataev via 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

[clang] [OpenMP 6.0] Allow only byref arguments with `need_device_addr` modifier on `adjust_args` clause (PR #149586)

2025-07-22 Thread Alexey Bataev via 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

[clang] [OpenMP 6.0] Allow only byref arguments with `need_device_addr` modifier on `adjust_args` clause (PR #149586)

2025-07-19 Thread Alexey Bataev via cfe-commits
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

[clang] [OpenMP 6.0] Allow only byref arguments with `need_device_addr` modifier on `adjust_args` clause (PR #149586)

2025-07-18 Thread Alexey Bataev via 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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-18 Thread Alexey Bataev via cfe-commits
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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-17 Thread Alexey Bataev via 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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-17 Thread Alexey Bataev via cfe-commits
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

[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation directive and "looprange" clause (PR #139293)

2025-07-17 Thread Alexey Bataev via 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

[clang] [llvm] [Clang][OpenMP] Non-contiguous strided update (PR #144635)

2025-07-17 Thread Alexey Bataev via 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

  1   2   3   4   5   6   7   8   9   10   >