[clang] [clang][OpenMP] Rename `varlists` to `varlist`, NFC (PR #101058)

2024-07-29 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/101058 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][OpenMP] Diagnose badly-formed collapsed imperfect loop nests (#60678) (PR #101305)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -7668,6 +7669,47 @@ struct LoopIterationSpace final { Expr *FinalCondition = nullptr; }; +class ForSubExprChecker : public RecursiveASTVisitor { + const llvm::SmallSet *CollapsedLoopVarDecls; + VarDecl *ForbiddenVar; + SourceRange ErrLoc; + +public: + explicit ForSubE

[clang] [clang][OpenMP] Diagnose badly-formed collapsed imperfect loop nests (#60678) (PR #101305)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -7668,6 +7669,47 @@ struct LoopIterationSpace final { Expr *FinalCondition = nullptr; }; +class ForSubExprChecker : public RecursiveASTVisitor { + const llvm::SmallSet *CollapsedLoopVarDecls; + VarDecl *ForbiddenVar; + SourceRange ErrLoc; + +public: + explicit ForSubE

[clang] [clang][OpenMP] Diagnose badly-formed collapsed imperfect loop nests (#60678) (PR #101305)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -7668,6 +7669,47 @@ struct LoopIterationSpace final { Expr *FinalCondition = nullptr; }; +class ForSubExprChecker : public RecursiveASTVisitor { + const llvm::SmallSet *CollapsedLoopVarDecls; + VarDecl *ForbiddenVar; alexey-bataev wrote: `VarDecl *Forb

[clang] [clang][OpenMP] Diagnose badly-formed collapsed imperfect loop nests (#60678) (PR #101305)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -9069,7 +9147,8 @@ static bool checkOpenMPIterationSpace( Expr *OrderedLoopCountExpr, SemaOpenMP::VarsWithInheritedDSAType &VarsWithImplicitDSA, llvm::MutableArrayRef ResultIterSpaces, -llvm::MapVector &Captures) { +llvm::MapVector &Captures, +const l

[clang] [clang][OpenMP] Diagnose badly-formed collapsed imperfect loop nests (#60678) (PR #101305)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -9475,6 +9555,36 @@ static Expr *buildPostUpdate(Sema &S, ArrayRef PostUpdates) { return PostUpdate; } +class ForVarDeclFinder : public RecursiveASTVisitor { + int NestingDepth; alexey-bataev wrote: `int NestingDepth = 0;` https://github.com/llvm/llvm

[clang] [clang][OpenMP] Diagnose badly-formed collapsed imperfect loop nests (#60678) (PR #101305)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -9475,6 +9555,36 @@ static Expr *buildPostUpdate(Sema &S, ArrayRef PostUpdates) { return PostUpdate; } +class ForVarDeclFinder : public RecursiveASTVisitor { alexey-bataev wrote: final class and description https://github.com/llvm/llvm-project/pull/101

[clang] [llvm] [OpenMP] OpenMP 5.1 "assume" directive parsing support (PR #92731)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -342,6 +342,57 @@ template class OMPVarListClause : public OMPClause { } }; +template class OMPDirectiveListClause : public OMPClause { alexey-bataev wrote: Why do you need this? https://github.com/llvm/llvm-project/pull/92731 ___

[clang] [llvm] [OpenMP] OpenMP 5.1 "assume" directive parsing support (PR #92731)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -2013,6 +2064,184 @@ class OMPMergeableClause : public OMPClause { } }; +/// This represents the 'absent' clause in the '#pragma omp assume' +/// directive. +/// +/// \code +/// #pragma omp assume absent() +/// \endcode +/// In this example directive '#pragma omp assume'

[clang] [llvm] [OpenMP] OpenMP 5.1 "assume" directive parsing support (PR #92731)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -2013,6 +2064,184 @@ class OMPMergeableClause : public OMPClause { } }; +/// This represents the 'absent' clause in the '#pragma omp assume' +/// directive. +/// +/// \code +/// #pragma omp assume absent() +/// \endcode +/// In this example directive '#pragma omp assume'

[clang] [llvm] [OpenMP] OpenMP 5.1 "assume" directive parsing support (PR #92731)

2024-07-31 Thread Alexey Bataev via cfe-commits
@@ -2013,6 +2064,184 @@ class OMPMergeableClause : public OMPClause { } }; +/// This represents the 'absent' clause in the '#pragma omp assume' +/// directive. +/// +/// \code +/// #pragma omp assume absent() +/// \endcode +/// In this example directive '#pragma omp assume'

[clang] [llvm] Support for assume directive : Parse & AST modules (PR #97535)

2024-07-16 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: > In clang/lib/Sema/SemaOpenMP.cpp I have retained the marking of the inner > regions of the associated statements with AssumeAttr. This will make the work > in Codegen easier. How it will make the codegen easier? It is better to try to avoid post-building attribute assig

[clang] [llvm] [openmp] [Clang][OpenMP] Add reverse directive (PR #92916)

2024-07-17 Thread Alexey Bataev via cfe-commits
@@ -15749,6 +15757,186 @@ StmtResult SemaOpenMP::ActOnOpenMPUnrollDirective(ArrayRef Clauses, buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPReverseDirective(Stmt *AStmt, +

[clang] [llvm] [openmp] [Clang][OpenMP] Add reverse directive (PR #92916)

2024-07-17 Thread Alexey Bataev via cfe-commits
@@ -15749,6 +15757,186 @@ StmtResult SemaOpenMP::ActOnOpenMPUnrollDirective(ArrayRef Clauses, buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPReverseDirective(Stmt *AStmt, +

[clang] [llvm] [openmp] [Clang][OpenMP] Add reverse directive (PR #92916)

2024-07-17 Thread Alexey Bataev via cfe-commits
@@ -15749,6 +15757,186 @@ StmtResult SemaOpenMP::ActOnOpenMPUnrollDirective(ArrayRef Clauses, buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPReverseDirective(Stmt *AStmt, +

[clang] [llvm] [openmp] [Clang][OpenMP] Add reverse directive (PR #92916)

2024-07-17 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG with a nit https://github.com/llvm/llvm-project/pull/92916 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [openmp] [Clang][OpenMP] Add reverse directive (PR #92916)

2024-07-17 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev edited https://github.com/llvm/llvm-project/pull/92916 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [openmp] [Clang][OpenMP] Add reverse directive (PR #92916)

2024-07-17 Thread Alexey Bataev via cfe-commits
@@ -14658,6 +14666,193 @@ StmtResult SemaOpenMP::ActOnOpenMPUnrollDirective(ArrayRef Clauses, buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPReverseDirective(Stmt *AStmt, +

[clang] [OpenMP] Fix calculation of dependencies for multi-dimensional iteration space (PR #99347)

2024-07-17 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/99347 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [openmp] [Clang][OpenMP] Add interchange directive (PR #93022)

2024-07-18 Thread Alexey Bataev via cfe-commits
@@ -14853,6 +14861,158 @@ StmtResult SemaOpenMP::ActOnOpenMPReverseDirective(Stmt *AStmt, buildPreInits(Context, PreInits)); } +StmtResult SemaOpenMP::ActOnOpenMPInterchangeDirective( +ArrayRef Clauses, Stmt *AStmt, SourceLocation Star

[clang] [Clang][OpenMP] Allow `num_teams` to accept multiple expressions (PR #99732)

2024-07-22 Thread Alexey Bataev via cfe-commits
@@ -21703,32 +21703,37 @@ const ValueDecl *SemaOpenMP::getOpenMPDeclareMapperVarName() const { return cast(DSAStack->getDeclareMapperVarRef())->getDecl(); } -OMPClause *SemaOpenMP::ActOnOpenMPNumTeamsClause(Expr *NumTeams, +OMPClause *SemaOpenMP::ActOnOpenMPNumTeamsClause(A

[clang] [Clang][OpenMP] Allow `num_teams` to accept multiple expressions (PR #99732)

2024-07-22 Thread Alexey Bataev via cfe-commits
@@ -21703,32 +21703,37 @@ const ValueDecl *SemaOpenMP::getOpenMPDeclareMapperVarName() const { return cast(DSAStack->getDeclareMapperVarRef())->getDecl(); } -OMPClause *SemaOpenMP::ActOnOpenMPNumTeamsClause(Expr *NumTeams, +OMPClause *SemaOpenMP::ActOnOpenMPNumTeamsClause(A

[clang] [clang][OpenMP] Move "loop" directive mapping from sema to codegen (PR #99905)

2024-07-22 Thread Alexey Bataev via cfe-commits
@@ -2534,21 +2563,24 @@ static void emitCommonSimdLoop(CodeGenFunction &CGF, const OMPLoopDirective &S, static void emitOMPSimdRegion(CodeGenFunction &CGF, const OMPLoopDirective &S, PrePostActionTy &Action) { Action.Enter(CGF); - assert(isOpen

[clang] [clang][OpenMP] Move "loop" directive mapping from sema to codegen (PR #99905)

2024-07-22 Thread Alexey Bataev via cfe-commits
@@ -3852,44 +3895,44 @@ static bool emitWorksharingDirective(CodeGenFunction &CGF, OMPLoopScope LoopScope(CGF, S); return CGF.EmitScalarExpr(S.getNumIterations()); }; -const auto &&FirstGen = [&S, HasCancel](CodeGenFunction &CGF) { - CodeGenFunction::O

[clang] [clang][OpenMP] Move "loop" directive mapping from sema to codegen (PR #99905)

2024-07-22 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/99905 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [NFC] Factor out common parts of ArraySections into its own class (PR #89639)

2024-04-23 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: > @alexey-bataev Not having this new 'base' type as a member of the > `StmtNodes.td` results in one of the Clang tools failing (see the CI). AND, > since it is a template, it can't do that. > > I can't make it a Mixin, because it needs to provide some of the Expr-type > f

[clang] [NFC] Factor out common parts of ArraySections into its own class (PR #89639)

2024-04-24 Thread Alexey Bataev via cfe-commits
@@ -11163,7 +11163,7 @@ def err_omp_declare_mapper_redefinition : Error< "redefinition of user-defined mapper for type %0 with name %1">; def err_omp_invalid_mapper: Error< "cannot find a valid user-defined mapper for type %0 with name %1">; -def err_omp_array_section_use :

[clang] [NFC] Factor out common parts of ArraySections into its own class (PR #89639)

2024-04-24 Thread Alexey Bataev via cfe-commits
@@ -443,12 +443,17 @@ ExprDependence clang::computeDependence(ObjCIndirectCopyRestoreExpr *E) { return E->getSubExpr()->getDependence(); } -ExprDependence clang::computeDependence(OMPArraySectionExpr *E) { +ExprDependence clang::computeDependence(ArraySectionExpr *E) { a

[clang] [NFC] Factor out common parts of ArraySections into its own class (PR #89639)

2024-04-24 Thread Alexey Bataev via cfe-commits
@@ -3413,8 +3413,8 @@ StringRef BuiltinType::getName(const PrintingPolicy &Policy) const { return "reserve_id_t"; case IncompleteMatrixIdx: return ""; - case OMPArraySection: -return ""; + case ArraySection: +return ""; alexey-bataev wrote:

[clang] [NFC] Factor out common parts of ArraySections into its own class (PR #89639)

2024-04-24 Thread Alexey Bataev via cfe-commits
@@ -6610,6 +6610,265 @@ class TypoExpr : public Expr { }; +/// This class represents BOTH the OpenMP Array Section and OpenACC 'subarray', +/// with a boolean differentiator. +/// OpenMP 5.0 [2.1.5, Array Sections]. +/// To specify an array section in an OpenMP construct, arr

[clang] [NFC] Factor out common parts of ArraySections into its own class (PR #89639)

2024-04-24 Thread Alexey Bataev via cfe-commits
@@ -6610,6 +6610,265 @@ class TypoExpr : public Expr { }; +/// This class represents BOTH the OpenMP Array Section and OpenACC 'subarray', +/// with a boolean differentiator. +/// OpenMP 5.0 [2.1.5, Array Sections]. +/// To specify an array section in an OpenMP construct, arr

[clang] [NFC] Factor out common parts of ArraySections into its own class (PR #89639)

2024-04-24 Thread Alexey Bataev via cfe-commits
@@ -6610,6 +6610,265 @@ class TypoExpr : public Expr { }; +/// This class represents BOTH the OpenMP Array Section and OpenACC 'subarray', +/// with a boolean differentiator. +/// OpenMP 5.0 [2.1.5, Array Sections]. +/// To specify an array section in an OpenMP construct, arr

[clang] [NFC] Factor out common parts of ArraySections into its own class (PR #89639)

2024-04-25 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/89639 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-29 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev edited https://github.com/llvm/llvm-project/pull/90499 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-29 Thread Alexey Bataev via cfe-commits
@@ -4268,7 +4287,11 @@ bool Parser::parseMapTypeModifiers(SemaOpenMP::OpenMPVarListDataTy &Data) { } // Potential map-type token as it is followed by a colon. if (PP.LookAhead(0).is(tok::colon)) -return false; +if (getLangOpts().OpenMP >= 60)

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-29 Thread Alexey Bataev via cfe-commits
@@ -113,7 +114,7 @@ struct SA { #pragma omp target map(b[true:true]) {} -#pragma omp target map(: c,f) // expected-error {{missing map type}} +#pragma omp target map(: c,f) // lt60-error {{missing map type}} alexey-bataev wrote: I assume this

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-29 Thread Alexey Bataev via cfe-commits
@@ -113,7 +114,7 @@ struct SA { #pragma omp target map(b[true:true]) {} -#pragma omp target map(: c,f) // expected-error {{missing map type}} +#pragma omp target map(: c,f) // lt60-error {{missing map type}} alexey-bataev wrote: So, does hangi

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-29 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev edited https://github.com/llvm/llvm-project/pull/90499 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-29 Thread Alexey Bataev via cfe-commits
@@ -113,7 +114,7 @@ struct SA { #pragma omp target map(b[true:true]) {} -#pragma omp target map(: c,f) // expected-error {{missing map type}} +#pragma omp target map(: c,f) // lt60-error {{missing map type}} alexey-bataev wrote: Hm,, I see in

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -113,7 +114,7 @@ struct SA { #pragma omp target map(b[true:true]) {} -#pragma omp target map(: c,f) // expected-error {{missing map type}} +#pragma omp target map(: c,f) // lt60-error {{missing map type}} alexey-bataev wrote: Check page 100

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -958,13 +931,14 @@ Parser::OpenACCClauseParseResult Parser::ParseOpenACCClauseParams( case OpenACCClauseKind::Link: case OpenACCClauseKind::NoCreate: case OpenACCClauseKind::Present: -case OpenACCClauseKind::Private: case OpenACCClauseKind::UseDevice: -

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -112,6 +116,18 @@ class SemaOpenACC : public SemaBase { return const_cast(this)->getIntExprs(); } +// Non-const version that permits modifying of the VarList for the purposes +// of Sema enforcement. +SmallVector &getVarList() { alexey

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -11196,6 +11198,31 @@ void OpenACCClauseTransform::VisitNumGangsClause( ParsedClause.getLParenLoc(), ParsedClause.getIntExprs(), ParsedClause.getEndLoc()); } + +template +void OpenACCClauseTransform::VisitPrivateClause( +const OpenACCPrivateClause &C) { +

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -423,6 +450,52 @@ ExprResult SemaOpenACC::ActOnIntExpr(OpenACCDirectiveKind DK, return IntExpr; } +ExprResult SemaOpenACC::ActOnVar(Expr *VarExpr) { + // We still need to retain the array subscript/subarray exprs, so work on a + // copy. + Expr *CurVarExpr = VarExpr->

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -423,6 +450,52 @@ ExprResult SemaOpenACC::ActOnIntExpr(OpenACCDirectiveKind DK, return IntExpr; } +ExprResult SemaOpenACC::ActOnVar(Expr *VarExpr) { + // We still need to retain the array subscript/subarray exprs, so work on a + // copy. + Expr *CurVarExpr = VarExpr->

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -958,13 +931,14 @@ Parser::OpenACCClauseParseResult Parser::ParseOpenACCClauseParams( case OpenACCClauseKind::Link: case OpenACCClauseKind::NoCreate: case OpenACCClauseKind::Present: -case OpenACCClauseKind::Private: case OpenACCClauseKind::UseDevice: -

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -113,7 +114,7 @@ struct SA { #pragma omp target map(b[true:true]) {} -#pragma omp target map(: c,f) // expected-error {{missing map type}} +#pragma omp target map(: c,f) // lt60-error {{missing map type}} alexey-bataev wrote: Yes, if you ha

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -134,6 +134,24 @@ OpenACCNumGangsClause *OpenACCNumGangsClause::Create(const ASTContext &C, return new (Mem) OpenACCNumGangsClause(BeginLoc, LParenLoc, IntExprs, EndLoc); } +OpenACCPrivateClause *OpenACCPrivateClause::Create(const ASTContext &C, +

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -423,6 +450,52 @@ ExprResult SemaOpenACC::ActOnIntExpr(OpenACCDirectiveKind DK, return IntExpr; } +ExprResult SemaOpenACC::ActOnVar(Expr *VarExpr) { + // We still need to retain the array subscript/subarray exprs, so work on a + // copy. + Expr *CurVarExpr = VarExpr->

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev edited https://github.com/llvm/llvm-project/pull/90521 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -166,3 +176,9 @@ void OpenACCClausePrinter::VisitVectorLengthClause( const OpenACCVectorLengthClause &C) { OS << "vector_length(" << C.getIntExpr() << ")"; } + +void OpenACCClausePrinter::VisitPrivateClause(const OpenACCPrivateClause &C) { + OS << "private("; + llvm:

[clang] [OpenACC] Private Clause on Compute Constructs (PR #90521)

2024-04-30 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/90521 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][OpenMP] Simplify handling of implicit DSA/mapping information (PR #106786)

2024-09-03 Thread Alexey Bataev via cfe-commits
@@ -6060,69 +6057,55 @@ StmtResult SemaOpenMP::ActOnOpenMPExecutableDirective( return StmtError(); // Generate list of implicitly defined firstprivate variables. VarsWithInheritedDSA = DSAChecker.getVarsWithInheritedDSA(); +VariableImplicitInfo ImpInfo = DSACh

[clang] [llvm] Assume (PR #97535)

2024-07-10 Thread Alexey Bataev via cfe-commits
@@ -1759,8 +1759,35 @@ void Parser::ParseOpenMPAssumesDirective(OpenMPDirectiveKind DKind, Assumptions.push_back(Assumption); } + StmtResult AssociatedStmt; + + // Begin marking the scope for assume. + if (DKind == llvm::omp::Directive::OMPD_assume) { + +if (Tok.

[clang] [llvm] Assume (PR #97535)

2024-07-10 Thread Alexey Bataev via cfe-commits
@@ -7323,6 +7324,69 @@ void SemaOpenMP::ActOnFinishedFunctionDefinitionInOpenMPAssumeScope(Decl *D) { FD->addAttr(AA); } +class OMPAssumeStmtVisitor : public StmtVisitor { + SmallVector *OMPAssumeScoped; + +public: + OMPAssumeStmtVisitor(SmallVector *OMPAssumeScoped) {

[clang] [llvm] Assume (PR #97535)

2024-07-10 Thread Alexey Bataev via cfe-commits
@@ -760,6 +760,9 @@ void clang::getOpenMPCaptureRegions( case OMPD_parallel: CaptureRegions.push_back(OMPD_parallel); break; +case OMPD_assume: + CaptureRegions.push_back(OMPD_unknown); + break; alexey-bataev wrote: Why? We usuall

[clang] [llvm] Assume (PR #97535)

2024-07-10 Thread Alexey Bataev via cfe-commits
@@ -760,6 +760,9 @@ void clang::getOpenMPCaptureRegions( case OMPD_parallel: CaptureRegions.push_back(OMPD_parallel); break; +case OMPD_assume: + CaptureRegions.push_back(OMPD_unknown); + break; alexey-bataev wrote: It may affect

[clang] [clang][OpenMP] Fix region nesting check for `scan` directive (PR #98386)

2024-07-10 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/98386 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][OpenMP] Remove compound directives from `checkNestingOfRegions` (PR #98387)

2024-07-11 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/98387 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] Support for assume directive : Parse & AST modules (PR #97535)

2024-07-15 Thread Alexey Bataev via cfe-commits
@@ -488,6 +488,49 @@ class Parser : public CodeCompletionHandler { /// a statement expression and builds a suitable expression statement. StmtResult handleExprStmt(ExprResult E, ParsedStmtContext StmtCtx); + class AssumeParseAssociatedStmtRAII { +Parser *parent; -

[clang] [llvm] Support for assume directive : Parse & AST modules (PR #97535)

2024-07-15 Thread Alexey Bataev via cfe-commits
@@ -488,6 +488,49 @@ class Parser : public CodeCompletionHandler { /// a statement expression and builds a suitable expression statement. StmtResult handleExprStmt(ExprResult E, ParsedStmtContext StmtCtx); + class AssumeParseAssociatedStmtRAII { +Parser *parent; +

[clang] [llvm] Support for assume directive : Parse & AST modules (PR #97535)

2024-07-15 Thread Alexey Bataev via cfe-commits
@@ -488,6 +488,49 @@ class Parser : public CodeCompletionHandler { /// a statement expression and builds a suitable expression statement. StmtResult handleExprStmt(ExprResult E, ParsedStmtContext StmtCtx); + class AssumeParseAssociatedStmtRAII { +Parser *parent; -

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-30 Thread Alexey Bataev via cfe-commits
@@ -4675,8 +4709,10 @@ bool Parser::ParseOpenMPVarList(OpenMPDirectiveKind DKind, // Only parse map-type-modifier[s] and map-type if a colon is present in // the map clause. if (ColonPresent) { + if (getLangOpts().OpenMP >= 60 && getCurToken().is(tok::colon))

[clang] [OpenMP][TR12] change property of map-type modifier. (PR #90499)

2024-04-30 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/90499 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Fix sanitize problem. (PR #90800)

2024-05-02 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: A test? https://github.com/llvm/llvm-project/pull/90800 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenACC] Implement SubArray Parsing/Sema (PR #90796)

2024-05-02 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev edited https://github.com/llvm/llvm-project/pull/90796 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenACC] Implement SubArray Parsing/Sema (PR #90796)

2024-05-02 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev edited https://github.com/llvm/llvm-project/pull/90796 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenACC] Implement SubArray Parsing/Sema (PR #90796)

2024-05-02 Thread Alexey Bataev via cfe-commits
@@ -503,12 +512,211 @@ ExprResult SemaOpenACC::ActOnArraySectionExpr(Expr *Base, SourceLocation LBLoc, SourceLocation RBLoc) { ASTContext &Context = getASTContext(); - // TODO OpenACC: We likely have to reproduce a lot of the s

[clang] [OpenACC] Implement SubArray Parsing/Sema (PR #90796)

2024-05-02 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG with a nit https://github.com/llvm/llvm-project/pull/90796 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Fix sanitize problem. (PR #90800)

2024-05-02 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: > > A test? > > I don't really know how to test this, as I don't know how to reproduce the > problem. Any suggestion? What is the problem? https://github.com/llvm/llvm-project/pull/90800 ___ cfe-commits mailing list cfe-commits@

[clang] Fix sanitize problem. (PR #90800)

2024-05-02 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/90800 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent base clas

2024-05-02 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: I think this breaks the build of SPEC2017/xalancbmk https://github.com/llvm/llvm-project/pull/84050 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent base clas

2024-05-02 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: > @alexey-bataev see [#90152 > (comment)](https://github.com/llvm/llvm-project/pull/90152#issuecomment-2089786180) > @alexey-bataev see [#90152 > (comment)](https://github.com/llvm/llvm-project/pull/90152#issuecomment-2089786180) Thanks for the link https://github.com/

[clang] [llvm] [WIP][OpenMP] Remove dependency on `libffi` from offloading runtime (PR #91264)

2024-05-07 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: > ```llvm > = load i32, ptr %.capture_expr., align 4 > ``` Why do you think it reads beyond __context? %2 = getelementptr inbounds %struct.anon, ptr %1, i32 0, i32 0 points to the first element in the __context, if I'm not missing something. If it has the wrong value, look

[clang] [llvm] [WIP][OpenMP] Remove dependency on `libffi` from offloading runtime (PR #91264)

2024-05-07 Thread Alexey Bataev via cfe-commits
@@ -5932,12 +5932,16 @@ void CGOpenMPRuntime::emitTargetOutlinedFunctionHelper( CodeGenFunction CGF(CGM, true); llvm::OpenMPIRBuilder::FunctionGenCallback &&GenerateOutlinedFunction = - [&CGF, &D, &CodeGen](StringRef EntryFnName) { + [&CGF, &D, &CodeGen, this](St

[clang] [llvm] [WIP][OpenMP] Remove dependency on `libffi` from offloading runtime (PR #91264)

2024-05-07 Thread Alexey Bataev via cfe-commits
@@ -613,6 +613,102 @@ static llvm::Function *emitOutlinedFunctionPrologue( return F; } +static llvm::Function *emitOutlinedFunctionPrologueAggregate( +CodeGenFunction &CGF, FunctionArgList &Args, +llvm::MapVector> +&LocalAddrs, +llvm::DenseMap> +&

[clang] [llvm] [WIP][OpenMP] Remove dependency on `libffi` from offloading runtime (PR #91264)

2024-05-07 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: > ```llvm > struct.anon > ``` Can you provide full IR dump here? https://github.com/llvm/llvm-project/pull/91264 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [WIP][OpenMP] Remove dependency on `libffi` from offloading runtime (PR #91264)

2024-05-07 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: > > > ```llvm > > > struct.anon > > > ``` > > > > > > Can you provide full IR dump here? > > https://godbolt.org/z/48h5s3W6v It does not look like the issue of the target code, I don't see any wrong access for __context. Мост probably something wrong with the host code/r

[clang] [llvm] [WIP][OpenMP] Remove dependency on `libffi` from offloading runtime (PR #91264)

2024-05-07 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: > > > > > ```llvm > > > > > struct.anon > > > > > ``` > > > > > > > > > > > > Can you provide full IR dump here? > > > > > > > > > https://godbolt.org/z/48h5s3W6v > > > > > > It does not look like the issue of the target code, I don't see any wrong > > access for __con

[clang] [llvm] [WIP][OpenMP] Remove dependency on `libffi` from offloading runtime (PR #91264)

2024-05-07 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: Hmm, hard to tell, need to debug it. https://github.com/llvm/llvm-project/pull/91264 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][OpenMP][Tile] Ensure AST node uniqueness. (PR #91325)

2024-05-09 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/91325 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [openmp] [Clang][OpenMP][Tile] Allow non-constant tile sizes. (PR #91345)

2024-05-13 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/91345 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Clang][OpenMP] Fix runtime problem when explicit map both pointer and pointee (PR #92210)

2024-05-15 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/92210 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Avoid unevaluated implicit private (PR #92055)

2024-05-16 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/92055 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Avoid unevaluated implicit private (PR #92055)

2024-05-16 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev closed https://github.com/llvm/llvm-project/pull/92055 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenACC] Implement 'reduction' sema for compute constructs (PR #92808)

2024-05-20 Thread Alexey Bataev via cfe-commits
@@ -426,6 +438,24 @@ SemaOpenACC::ActOnClause(ArrayRef ExistingClauses, << /*NoArgs=*/1 << Clause.getDirectiveKind() << MaxArgs << Clause.getIntExprs().size(); +// OpenACC 3.3 Section 2.5.4: +// A reduction clause may not appear on a parallel const

[clang] [OpenACC] Implement 'reduction' sema for compute constructs (PR #92808)

2024-05-20 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev commented: ast printing tests? https://github.com/llvm/llvm-project/pull/92808 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenACC] Implement 'reduction' sema for compute constructs (PR #92808)

2024-05-20 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev edited https://github.com/llvm/llvm-project/pull/92808 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenACC] Implement 'reduction' sema for compute constructs (PR #92808)

2024-05-20 Thread Alexey Bataev via cfe-commits
@@ -706,6 +736,48 @@ SemaOpenACC::ActOnClause(ArrayRef ExistingClauses, Clause.getLParenLoc(), Clause.getDeviceTypeArchitectures(), Clause.getEndLoc()); } + case OpenACCClauseKind::Reduction: { +// Restrictions only properly implemented on 'compute' cons

[clang] [OpenACC] Implement 'reduction' sema for compute constructs (PR #92808)

2024-05-20 Thread Alexey Bataev via cfe-commits
@@ -715,6 +787,65 @@ SemaOpenACC::ActOnClause(ArrayRef ExistingClauses, return nullptr; } +/// OpenACC 3.3 section 2.5.15: +/// At a mininmum, the supported data types include ... the numerical data types +/// in C, C++, and Fortran. +/// +/// If the reduction var is a com

[clang] [OpenACC] Implement 'reduction' sema for compute constructs (PR #92808)

2024-05-21 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/92808 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [openmp] [Clang][OpenMP] Fix tile/unroll on iterator- and foreach-loops. (PR #91459)

2024-05-21 Thread Alexey Bataev via cfe-commits
@@ -182,17 +182,34 @@ class OMPLoopScope : public CodeGenFunction::RunCleanupsScope { } return false; }); - PreInits = cast_or_null(LD->getPreInits()); + PreInits = LD->getPreInits(); } else if (const auto *Tile = dyn_cast(&S))

[clang] [openmp] [Clang][OpenMP] Fix tile/unroll on iterator- and foreach-loops. (PR #91459)

2024-05-21 Thread Alexey Bataev via cfe-commits
@@ -15097,14 +15125,75 @@ bool SemaOpenMP::checkTransformableLoopNest( llvm_unreachable("Unhandled loop transformation"); if (!DependentPreInits) return; -llvm::append_range(OriginalInits.back(), - cast(DependentPreI

[clang] [openmp] [Clang][OpenMP] Fix tile/unroll on iterator- and foreach-loops. (PR #91459)

2024-05-21 Thread Alexey Bataev via cfe-commits
@@ -9924,11 +9941,24 @@ checkOpenMPLoop(OpenMPDirectiveKind DKind, Expr *CollapseLoopCountExpr, Stmt *DependentPreInits = Transform->getPreInits(); if (!DependentPreInits) return; -for (Decl *C : cast(DependentPreInits)->getDec

[clang] [openmp] [Clang][OpenMP] Fix tile/unroll on iterator- and foreach-loops. (PR #91459)

2024-05-21 Thread Alexey Bataev via cfe-commits
@@ -156,9 +156,9 @@ extern "C" void body(...) {} // IR-EMPTY: // IR-NEXT: [[FOR_INC]]: // IR-NEXT:%[[TMP34:.+]] = load i32, ptr %[[DOTTILE_0_IV_I]], align 4 -// IR-NEXT:%[[INC:.+]] = add nsw i32 %[[TMP34]], 1 +// IR-NEXT:%[[INC:.+]] = add i32 %[[TMP34]], 1

[clang] [openmp] [Clang][OpenMP] Fix tile/unroll on iterator- and foreach-loops. (PR #91459)

2024-05-21 Thread Alexey Bataev via cfe-commits
@@ -9924,11 +9954,24 @@ checkOpenMPLoop(OpenMPDirectiveKind DKind, Expr *CollapseLoopCountExpr, Stmt *DependentPreInits = Transform->getPreInits(); if (!DependentPreInits) return; -for (Decl *C : cast(DependentPreInits)->getDec

[clang] [openmp] [Clang][OpenMP] Fix tile/unroll on iterator- and foreach-loops. (PR #91459)

2024-05-21 Thread Alexey Bataev via cfe-commits
@@ -15095,16 +15136,70 @@ bool SemaOpenMP::checkTransformableLoopNest( DependentPreInits = Dir->getPreInits(); else llvm_unreachable("Unhandled loop transformation"); -if (!DependentPreInits) - return; -llvm::append_range(Ori

[clang] [openmp] [Clang][OpenMP] Fix tile/unroll on iterator- and foreach-loops. (PR #91459)

2024-05-22 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev approved this pull request. LG https://github.com/llvm/llvm-project/pull/91459 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema][OpenMP] Allow `num_teams` to accept multiple expressions (PR #99732)

2024-08-01 Thread Alexey Bataev via cfe-commits
https://github.com/alexey-bataev commented: Update OpenMPSupport.rst and include info about changes to release notes https://github.com/llvm/llvm-project/pull/99732 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/

[clang] [clang][OpenMP] Diagnose badly-formed collapsed imperfect loop nests (#60678) (PR #101305)

2024-08-01 Thread Alexey Bataev via cfe-commits
alexey-bataev wrote: > OpenMPIterationSpaceChecker is still passed a pointer to CollapsedLoopDecls, > because one caller passes a nullptr, and we don't want to do the analysis in > that case. Still pass by reference, just pass empty where it is not required https://github.com/llvm/llvm-projec

<    13   14   15   16   17   18   19   20   21   22   >