[llvm-branch-commits] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #111192)

2024-10-08 Thread Sergio Afonso via llvm-branch-commits
@@ -225,32 +359,79 @@ class MapInfoFinalizationPass fir::FirOpBuilder &builder, mlir::Operation *target) { auto mapClauseOwner = -llvm::dyn_cast(target); +llvm::dyn_cast_if_present( +

[llvm-branch-commits] [flang] [Flang][OpenMP] Improve entry block argument creation and binding (PR #110267)

2024-10-01 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/110267 >From efa0c3271ece41ee04e6d34fa83021ded72d4c47 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Fri, 27 Sep 2024 13:51:27 +0100 Subject: [PATCH] [Flang][OpenMP] Improve entry block argument creation and bindi

[llvm-branch-commits] [mlir] [MLIR][OpenMP] Improve omp.section block arguments handling (PR #110266)

2024-10-01 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/110266 >From 4bc376d594a8d2a3050d6980507c131591e0fbf3 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Thu, 26 Sep 2024 11:42:03 +0100 Subject: [PATCH] [MLIR][OpenMP] Improve omp.section block arguments handling The

[llvm-branch-commits] [mlir] [MLIR][OpenMP] Document entry block argument-defining clauses (NFC) (PR #109811)

2024-10-01 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/109811 >From 32735e31bba0bc9c062d2039921f9720b8e82f16 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Tue, 24 Sep 2024 15:40:17 +0100 Subject: [PATCH] [MLIR][OpenMP] Document entry block argument-defining clauses (

[llvm-branch-commits] [flang] [mlir] [MLIR][OpenMP] Use map format to represent use_device_{addr, ptr} (PR #109810)

2024-10-01 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/109810 >From c08a30e2e6cdc34e9ca1fa9aebf8a42181b933b7 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Fri, 20 Sep 2024 17:11:34 +0100 Subject: [PATCH] [MLIR][OpenMP] Use map format to represent use_device_{addr,ptr

[llvm-branch-commits] [flang] [mlir] [MLIR][OpenMP] Use map format to represent use_device_{addr, ptr} (PR #109810)

2024-09-30 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: Ping for review! https://github.com/llvm/llvm-project/pull/109810 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [flang] [Flang][OpenMP] Improve entry block argument creation and binding (PR #110267)

2024-09-30 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/110267 >From 2c5d74d932797b916b5f0da6fb017b5f4af2b2b4 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Fri, 27 Sep 2024 13:51:27 +0100 Subject: [PATCH] [Flang][OpenMP] Improve entry block argument creation and bindi

[llvm-branch-commits] [mlir] [MLIR][OpenMP] Improve omp.section block arguments handling (PR #110266)

2024-09-30 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/110266 >From d6920f4bd10cdf88d6d640f8e1da2c595c39bdb6 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Thu, 26 Sep 2024 11:42:03 +0100 Subject: [PATCH] [MLIR][OpenMP] Improve omp.section block arguments handling The

[llvm-branch-commits] [mlir] [MLIR][OpenMP] Document entry block argument-defining clauses (NFC) (PR #109811)

2024-09-30 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/109811 >From a821f44e2c9ac732c752abae62385c4d78082a2b Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Tue, 24 Sep 2024 15:40:17 +0100 Subject: [PATCH] [MLIR][OpenMP] Document entry block argument-defining clauses (

[llvm-branch-commits] [flang] [mlir] [MLIR][OpenMP] Use map format to represent use_device_{addr, ptr} (PR #109810)

2024-09-30 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/109810 >From f61e3a60d6f494d08b58ded9b802f2b3d92b728f Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Fri, 20 Sep 2024 17:11:34 +0100 Subject: [PATCH] [MLIR][OpenMP] Use map format to represent use_device_{addr,ptr

[llvm-branch-commits] [mlir] [MLIR][OpenMP] Improve omp.section block arguments handling (PR #110266)

2024-09-27 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/110266 The `omp.section` operation is an outlier in that the block arguments it has are defined by clauses on the required parent `omp.sections` operation. This patch updates the definition of this operation introduci

[llvm-branch-commits] [mlir] [MLIR][OpenMP] Improve omp.section block arguments handling (PR #110266)

2024-09-27 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: PR stack: - #109808 - #109809 - #109810 - #109811 - #110266 - #110267 https://github.com/llvm/llvm-project/pull/110266 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinf

[llvm-branch-commits] [flang] [Flang][OpenMP] Improve entry block argument creation and binding (PR #110267)

2024-09-27 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: PR stack: - #109808 - #109809 - #109810 - #109811 - #110266 - #110267 https://github.com/llvm/llvm-project/pull/110267 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinf

[llvm-branch-commits] [flang] [Flang][OpenMP] Improve entry block argument creation and binding (PR #110267)

2024-09-27 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/110267 The main purpose of this patch is to centralize the logic for creating MLIR operation entry blocks and for binding them to the corresponding symbols. This minimizes the chances of mixing arguments up for operat

[llvm-branch-commits] [flang] [flang][OpenMP] Add version checks for clauses (PR #110015)

2024-09-26 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak edited https://github.com/llvm/llvm-project/pull/110015 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [flang] [flang][OpenMP] Add version checks for clauses (PR #110015)

2024-09-26 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak approved this pull request. Thank you Krzysztof, LGTM. https://github.com/llvm/llvm-project/pull/110015 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/l

[llvm-branch-commits] [flang] [flang][OpenMP] Add version checks for clauses (PR #110015)

2024-09-26 Thread Sergio Afonso via llvm-branch-commits
@@ -163,6 +163,43 @@ class AssociatedLoopChecker { std::map constructNamesAndLevels_; }; +bool OmpStructureChecker::CheckAllowedClause(llvmOmpClause clause) { + unsigned version{context_.langOptions().OpenMPVersion}; + DirectiveContext &dirCtx = GetContext(); + llvm::omp:

[llvm-branch-commits] [mlir] [MLIR][OpenMP] Document entry block argument-defining clauses (NFC) (PR #109811)

2024-09-24 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: PR stack: - #109808 - #109809 - #109810 - #109811 https://github.com/llvm/llvm-project/pull/109811 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commit

[llvm-branch-commits] [flang] [mlir] [MLIR][OpenMP] Use map format to represent use_device_{addr, ptr} (PR #109810)

2024-09-24 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: PR stack: - #109808 - #109809 - #109810 - #109811 https://github.com/llvm/llvm-project/pull/109810 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commit

[llvm-branch-commits] [flang] [mlir] [MLIR][OpenMP] Normalize representation of entry block arg-defining clauses (PR #109809)

2024-09-24 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: PR stack: - #109808 - #109809 - #109810 - #109811 https://github.com/llvm/llvm-project/pull/109809 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commit

[llvm-branch-commits] [mlir] [MLIR][OpenMP] Document entry block argument-defining clauses (NFC) (PR #109811)

2024-09-24 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/109811 This patch adds general information on the proposed approach to unify the handling and representation of clauses that define entry block arguments attached to operations that accept them. >From 5849d2548655542

[llvm-branch-commits] [flang] [mlir] [MLIR][OpenMP] Use map format to represent use_device_{addr, ptr} (PR #109810)

2024-09-24 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/109810 This patch updates the `omp.target_data` operation to use the same formatting as `map` clauses on `omp.target` for `use_device_addr` and `use_device_ptr`. This is done so the mapping that is being enforced betw

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document clause-based op representation (PR #107234)

2024-09-13 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/107234 >From 47e8403d4adaba03696862ac3ea353fc0feb37d3 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Tue, 3 Sep 2024 17:09:57 +0100 Subject: [PATCH 1/2] [MLIR][OpenMP] NFC: Document clause-based op representation

[llvm-branch-commits] [flang] [flang] Introduce custom loop nest generation for loops in workshare construct (PR #101445)

2024-09-09 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: Sorry for the delay getting back to this! I don't have any remaining blocking concerns with your proposal, but I think it would be good if others shared their opinions before proceeding with this approach. https://github.com/llvm/llvm-project/pull/101445

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document compound constructs representation (PR #107236)

2024-09-05 Thread Sergio Afonso via llvm-branch-commits
@@ -287,3 +287,117 @@ been implemented, but it is closely linked to the `omp.canonical_loop` work. Nevertheless, loop transformation that the `collapse` clause for loop-associated worksharing constructs defines can be represented by introducing multiple bounds, step and induc

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document compound constructs representation (PR #107236)

2024-09-05 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/107236 >From da68c8b8be9588251bb4342e869a52035fc45a8e Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Wed, 4 Sep 2024 13:21:22 +0100 Subject: [PATCH 1/2] [MLIR][OpenMP] NFC: Document compound constructs representat

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document compound constructs representation (PR #107236)

2024-09-04 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: PR Stack: - #107232 - #107233 - #107234 - #107235 - #107236 https://github.com/llvm/llvm-project/pull/107236 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bra

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document loop representation (PR #107235)

2024-09-04 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: PR Stack: - #107232 - #107233 - #107234 - #107235 - #107236 https://github.com/llvm/llvm-project/pull/107235 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bra

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document clause-based op representation (PR #107234)

2024-09-04 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: PR Stack: - #107232 - #107233 - #107234 - #107235 - #107236 https://github.com/llvm/llvm-project/pull/107234 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bra

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document op naming conventions (PR #107233)

2024-09-04 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: PR Stack: - #107232 - #107233 - #107234 - #107235 - #107236 https://github.com/llvm/llvm-project/pull/107233 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bra

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document compound constructs representation (PR #107236)

2024-09-04 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/107236 This patch documents the MLIR representation of OpenMP compound constructs discussed in [this](https://discourse.llvm.org/t/rfc-representing-combined-composite-constructs-in-the-openmp-dialect/76986) and [thi

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document clause-based op representation (PR #107234)

2024-09-04 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/107234 This patch documents the clause-based op represetation discussed in [this RFC](https://discourse.llvm.org/t/rfc-clause-based-representation-of-openmp-dialect-operations/79053). >From 47e8403d4adaba03696862ac3ea

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document loop representation (PR #107235)

2024-09-04 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/107235 This patch describes the loop wrapper approach to represent loop-associated constructs in the OpenMP MLIR dialect and documents current limitations and ongoing efforts. >From 4fbe52392662da14779032e967de5cbc46

[llvm-branch-commits] [mlir] [MLIR][OpenMP][Docs] NFC: Document op naming conventions (PR #107233)

2024-09-04 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/107233 This patch documents op naming conventions discussed in [this RFC](https://discourse.llvm.org/t/rfc-uniformize-openmp-dialect-operation-names/77715). >From 9affb197d2eb208ea25312a02fa0f93ec64d7513 Mon Sep 17 00

[llvm-branch-commits] [llvm] [mlir] [OpenMP]Update use_device_clause lowering (PR #101707)

2024-08-29 Thread Sergio Afonso via llvm-branch-commits
@@ -2193,80 +2197,141 @@ llvm::Value *getSizeInBytes(DataLayout &dl, const mlir::Type &type, return builder.getInt64(dl.getTypeSizeInBits(type) / 8); } -void collectMapDataFromMapVars(MapInfoData &mapData, - llvm::SmallVectorImpl &mapVars, -

[llvm-branch-commits] [llvm] [mlir] [OpenMP]Update use_device_clause lowering (PR #101707)

2024-08-29 Thread Sergio Afonso via llvm-branch-commits
@@ -2193,80 +2197,137 @@ llvm::Value *getSizeInBytes(DataLayout &dl, const mlir::Type &type, return builder.getInt64(dl.getTypeSizeInBits(type) / 8); } -void collectMapDataFromMapVars(MapInfoData &mapData, - llvm::SmallVectorImpl &mapVars, -

[llvm-branch-commits] [llvm] [mlir] [OpenMP]Update use_device_clause lowering (PR #101707)

2024-08-29 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak approved this pull request. Thank you, LGTM. Just a small comment left from me. https://github.com/llvm/llvm-project/pull/101707 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/c

[llvm-branch-commits] [llvm] [mlir] [OpenMP]Update use_device_clause lowering (PR #101707)

2024-08-29 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak edited https://github.com/llvm/llvm-project/pull/101707 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [flang] [Flang][OpenMP] DISTRIBUTE PARALLEL DO SIMD lowering (PR #106211)

2024-08-29 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/106211 >From 3508bc032e4fe208f1dc58f0fd979cf769f6ae17 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Tue, 27 Aug 2024 12:51:25 +0100 Subject: [PATCH] [Flang][OpenMP] DISTRIBUTE PARALLEL DO SIMD lowering This patch

[llvm-branch-commits] [flang] [Flang][OpenMP] DISTRIBUTE PARALLEL DO lowering (PR #106207)

2024-08-29 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/106207 >From 1ae4c05cbaf186df1805314e213c733421bd1949 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Tue, 27 Aug 2024 11:14:14 +0100 Subject: [PATCH] [Flang][OpenMP] DISTRIBUTE PARALLEL DO lowering This patch adds

[llvm-branch-commits] [flang] [Flang][OpenMP] Move loop privatization out of dispatch (PR #106066)

2024-08-29 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/106066 >From c28e6de6fca8fe9142045dc81d5aa48e821524df Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Mon, 26 Aug 2024 13:29:52 +0100 Subject: [PATCH] [Flang][OpenMP] Move loop privatization out of dispatch This pa

[llvm-branch-commits] [flang] [Flang][OpenMP] DISTRIBUTE PARALLEL DO SIMD lowering (PR #106211)

2024-08-27 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: > This looks good on its own. How many of these composite constructs are there > in total? I'm wondering if there are enough that we should consider a more > elaborate solution to avoid duplicating code (e.g. what if clause processing > changes at some point). Thank you for the

[llvm-branch-commits] [flang] [Flang][OpenMP] DISTRIBUTE PARALLEL DO lowering (PR #106207)

2024-08-27 Thread Sergio Afonso via llvm-branch-commits
@@ -2052,8 +2074,69 @@ static void genCompositeDistributeParallelDo( semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval, mlir::Location loc, const ConstructQueue &queue, ConstructQueue::const_iterator item) { + lower::StatementContext stmtCtx; +

[llvm-branch-commits] [flang] [Flang][OpenMP] DISTRIBUTE PARALLEL DO SIMD lowering (PR #106211)

2024-08-27 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/106211 This patch adds PFT to MLIR lowering support for `distribute parallel do simd` composite constructs. >From e16c8780f5cb0ebea14922a16b87372df305fc01 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Tue, 27 Au

[llvm-branch-commits] [flang] [Flang][OpenMP] DISTRIBUTE PARALLEL DO lowering (PR #106207)

2024-08-27 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/106207 This patch adds PFT to MLIR lowering support for `distribute parallel do` composite constructs. >From 5b654d992778b2d22cfbfb0aed542f729c6f4581 Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Tue, 27 Aug 202

[llvm-branch-commits] [flang] [Flang][OpenMP] Move loop privatization out of dispatch (PR #106066)

2024-08-26 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/106066 This patch moves the creation of `DataSharingProcessor` instances for loop constructs out of `genOMPDispatch()` and into their corresponding codegen functions. This is a necessary first step to enable a proper

[llvm-branch-commits] [flang] [flang] Introduce custom loop nest generation for loops in workshare construct (PR #101445)

2024-08-26 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: > No you are right, sorry for the back and forth, as you said, since a wsloop > can only be nested in a omp.parallel it is immediately obvious that it binds > to the omp.parallel threads so that makes sense. > > My only concern was that at some point some transformation (perhaps

[llvm-branch-commits] [flang] [flang] Introduce custom loop nest generation for loops in workshare construct (PR #101445)

2024-08-23 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: > > Maybe support for this operation could be just based on changes to how the > > MLIR representation is built in the first place, what do you think? > > This is partly what this implementation aims to do. In fact, after the pass > that lowers the omp.workshare operation we are

[llvm-branch-commits] [flang] [flang] Introduce custom loop nest generation for loops in workshare construct (PR #101445)

2024-08-22 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: > wsloop expects its parent block to be a parallel block which all threads will > execute and all of those threads will share the work of the nested loop nest. Yes, the `omp.wsloop` binds to the current team (usually the innermost `omp.parallel` parent). It doesn't have to be th

[llvm-branch-commits] [mlir] [mlir][OpenMP][NFC] clean up optional reduction region parsing (PR #105644)

2024-08-22 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak approved this pull request. Thank you, looks much better this way! https://github.com/llvm/llvm-project/pull/105644 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailma

[llvm-branch-commits] [flang] [flang] Introduce custom loop nest generation for loops in workshare construct (PR #101445)

2024-08-22 Thread Sergio Afonso via llvm-branch-commits
skatrak wrote: > I am debating introducing a new operation workshare_loop_container which > exists only to "contain" a omp.loop_nest between lowering an elemental to > lowering the omp.workshare it is contained in. > > so we would have this state: > > ``` > omp.workshare { > omp.workshare_l

[llvm-branch-commits] [flang] [flang][omp] Emit omp.workshare in frontend (PR #101444)

2024-08-22 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak approved this pull request. Thank you, LGTM as well. https://github.com/llvm/llvm-project/pull/101444 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llv

[llvm-branch-commits] [flang] [flang][omp] Emit omp.workshare in frontend (PR #101444)

2024-08-22 Thread Sergio Afonso via llvm-branch-commits
@@ -1272,6 +1272,15 @@ static void genTaskwaitClauses(lower::AbstractConverter &converter, loc, llvm::omp::Directive::OMPD_taskwait); } +static void genWorkshareClauses(lower::AbstractConverter &converter, skatrak wrote: Ultra-nit: Move below `genTeams

[llvm-branch-commits] [flang] [flang][omp] Emit omp.workshare in frontend (PR #101444)

2024-08-22 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak edited https://github.com/llvm/llvm-project/pull/101444 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [flang] [mlir] [flang][OpenMP] use reduction alloc region (PR #102525)

2024-08-22 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak approved this pull request. Thanks for this work, it LGTM. https://github.com/llvm/llvm-project/pull/102525 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listin

[llvm-branch-commits] [mlir] [mlir][OpenMP] Convert reduction alloc region to LLVMIR (PR #102524)

2024-08-22 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak approved this pull request. Thank you, this LGTM. https://github.com/llvm/llvm-project/pull/102524 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-b

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -85,67 +135,227 @@ class OMPMapInfoFinalizationPass descriptor = alloca; } +return descriptor; + } + + /// Simple function that will generate a FIR operation accessing + /// the descriptors base address (BoxOffsetOp) and then generate a + /// MapInfoOp for

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -85,67 +138,187 @@ class OMPMapInfoFinalizationPass descriptor = alloca; } +return descriptor; + } + + /// Simple function that will generate a FIR operation accessing + /// the descriptors base address (BoxOffsetOp) and then generate a + /// MapInfoOp for

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -85,67 +138,187 @@ class OMPMapInfoFinalizationPass descriptor = alloca; } +return descriptor; + } + + /// Simple function that will generate a FIR operation accessing + /// the descriptors base address (BoxOffsetOp) and then generate a + /// MapInfoOp for

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -85,67 +138,187 @@ class OMPMapInfoFinalizationPass descriptor = alloca; } +return descriptor; + } + + /// Simple function that will generate a FIR operation accessing + /// the descriptors base address (BoxOffsetOp) and then generate a + /// MapInfoOp for

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -216,31 +215,50 @@ bool ClauseProcessor::processMotionClauses(lower::StatementContext &stmtCtx, if (origSymbol && fir::isTypeWithDescriptor(origSymbol.getType())) symAddr = origSymbol; + if (object.sym()->owner().IsDerivedType()) { +

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak commented: Thanks Andrew for the updates to this patch. I gave it a fresh look and I've got another set of comments, but they should be easy to address. https://github.com/llvm/llvm-project/pull/96266 ___ llvm-branch-commits

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -85,67 +138,187 @@ class OMPMapInfoFinalizationPass descriptor = alloca; } +return descriptor; + } + + /// Simple function that will generate a FIR operation accessing + /// the descriptors base address (BoxOffsetOp) and then generate a + /// MapInfoOp for

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -85,67 +138,187 @@ class OMPMapInfoFinalizationPass descriptor = alloca; } +return descriptor; + } + + /// Simple function that will generate a FIR operation accessing + /// the descriptors base address (BoxOffsetOp) and then generate a + /// MapInfoOp for

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -237,26 +436,34 @@ class OMPMapInfoFinalizationPass getOperation()->walk([&](mlir::omp::MapInfoOp op) { // TODO: Currently only supports a single user for the MapInfoOp, this - // is fine for the moment as the Fortran Frontend will generate a - // new Ma

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -267,6 +267,24 @@ mlir::Block *fir::FirOpBuilder::getAllocaBlock() { return getEntryBlock(); } +static mlir::ArrayAttr makeI64ArrayAttr(llvm::ArrayRef values, +mlir::MLIRContext *context) { + llvm::SmallVector attrs; + for (auto &

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -280,75 +340,60 @@ void insertChildMapInfoIntoParent( // precedes the children. An alternative, may be to do // delayed generation of map info operations from the clauses and // organize them first before generation. - mapOp->moveAfter(indices.second.b

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -85,67 +138,187 @@ class OMPMapInfoFinalizationPass descriptor = alloca; } +return descriptor; + } + + /// Simple function that will generate a FIR operation accessing + /// the descriptors base address (BoxOffsetOp) and then generate a + /// MapInfoOp for

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -267,6 +267,24 @@ mlir::Block *fir::FirOpBuilder::getAllocaBlock() { return getEntryBlock(); } +static mlir::ArrayAttr makeI64ArrayAttr(llvm::ArrayRef values, +mlir::MLIRContext *context) { + llvm::SmallVector attrs; + for (auto &

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -175,99 +271,63 @@ getComponentObject(std::optional object, return getComponentObject(baseObj.value(), semaCtx); } -static void -generateMemberPlacementIndices(const Object &object, - llvm::SmallVectorImpl &indices, -

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -267,6 +267,24 @@ mlir::Block *fir::FirOpBuilder::getAllocaBlock() { return getEntryBlock(); } +static mlir::ArrayAttr makeI64ArrayAttr(llvm::ArrayRef values, +mlir::MLIRContext *context) { + llvm::SmallVector attrs; --

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -175,99 +271,63 @@ getComponentObject(std::optional object, return getComponentObject(baseObj.value(), semaCtx); } -static void -generateMemberPlacementIndices(const Object &object, - llvm::SmallVectorImpl &indices, -

[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak edited https://github.com/llvm/llvm-project/pull/96266 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [OpenMP][MLIR] Descriptor explicit member map lowering changes (PR #96265)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -2261,47 +2261,47 @@ static int getMapDataMemberIdx(MapInfoData &mapData, static mlir::omp::MapInfoOp getFirstOrLastMappedMemberPtr(mlir::omp::MapInfoOp mapInfo, bool first) { - mlir::DenseIntElementsAttr indexAttr = mapInfo.getMembersIndexAttr(); - + mlir::ArrayAttr inde

[llvm-branch-commits] [OpenMP][MLIR] Descriptor explicit member map lowering changes (PR #96265)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -2541,6 +2541,31 @@ static void processMapMembersWithParent( assert(memberDataIdx >= 0 && "could not find mapped member of structure"); +// If we're currently mapping a pointer to a block of data, we must +// initially map the pointer, and then attatch/bind the

[llvm-branch-commits] [OpenMP][MLIR] Descriptor explicit member map lowering changes (PR #96265)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -1087,50 +1086,31 @@ static ParseResult parseMembersIndex(OpAsmParser &parser, if (failed(parser.parseRSquare())) return failure(); -// Only set once, if any indices are not the same size -// we error out in the next check as that's unsupported -if (s

[llvm-branch-commits] [OpenMP][MLIR] Descriptor explicit member map lowering changes (PR #96265)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak approved this pull request. Thank you Andrew for working on my previous comments. I have a couple of suggestions to hopefully help simplify things a bit further, but it LGTM. No need to wait for another look by me before merging. https://github.com/llvm/llvm-project/

[llvm-branch-commits] [OpenMP][MLIR] Descriptor explicit member map lowering changes (PR #96265)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -1064,16 +1064,15 @@ static void printMapClause(OpAsmPrinter &p, Operation *op, } static ParseResult parseMembersIndex(OpAsmParser &parser, - DenseIntElementsAttr &membersIdx) { - SmallVector values; +

[llvm-branch-commits] [OpenMP][MLIR] Descriptor explicit member map lowering changes (PR #96265)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak edited https://github.com/llvm/llvm-project/pull/96265 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [OpenMP][MLIR] Descriptor explicit member map lowering changes (PR #96265)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -2541,6 +2541,31 @@ static void processMapMembersWithParent( assert(memberDataIdx >= 0 && "could not find mapped member of structure"); +// If we're currently mapping a pointer to a block of data, we must +// initially map the pointer, and then attatch/bind the

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -2383,3 +2383,165 @@ func.func @masked_arg_count_mismatch(%arg0: i32, %arg1: i32) { }) : (i32, i32) -> () return } + +// - +func.func @omp_parallel_missing_composite(%lb: index, %ub: index, %step: index) -> () { + omp.distribute { + // expected-error@+1 {{'omp.

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -1748,11 +1754,27 @@ LogicalResult WsloopOp::verify() { if (!isWrapper()) return emitOpError() << "must be a loop wrapper"; + auto wrapper = + llvm::dyn_cast_if_present((*this)->getParentOp()); + bool isCompositeWrapper = wrapper && wrapper.isWrapper() && +

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -1748,11 +1754,27 @@ LogicalResult WsloopOp::verify() { if (!isWrapper()) return emitOpError() << "must be a loop wrapper"; + auto wrapper = + llvm::dyn_cast_if_present((*this)->getParentOp()); + bool isCompositeWrapper = wrapper && wrapper.isWrapper() && -

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -210,7 +210,7 @@ func.func @invalid_nested_wrapper(%lb : index, %ub : index, %step : index) { omp.terminator } skatrak wrote: Nit: Add attribute to `omp.distribute` too. https://github.com/llvm/llvm-project/pull/102341 ___

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -36,9 +36,9 @@ func.func @invalid_nested_wrapper(%lb : index, %ub : index, %step : index) { omp.terminator } skatrak wrote: Nit: I suppose it doesn't matter because the parent op's verifier fails before checking this one, but I think it makes

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -2173,7 +2173,7 @@ func.func @omp_distribute_nested_wrapper(%lb: index, %ub: index, %step: index) - "omp.terminator"() : () -> () }) : () -> () skatrak wrote: Nit: Add attribute to `omp.wsloop` too. https://github.com/llvm/llvm-project/pull/10234

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
@@ -1965,7 +1965,7 @@ func.func @taskloop(%lb: i32, %ub: i32, %step: i32) { omp.terminator } skatrak wrote: Nit: Add attribute to `omp.distribute` too. https://github.com/llvm/llvm-project/pull/102341 ___ l

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak approved this pull request. Thank you again Akash, this LGTM. I have a couple of minor nits left, but there's no need for another review by me after addressing them. Can you add to ops.mlir an instance of `distribute parallel do/for simd` after line 117? https://gith

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-12 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak edited https://github.com/llvm/llvm-project/pull/102341 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [flang] [llvm] [Flang][OpenMP] Prevent re-composition of composite constructs (PR #102613)

2024-08-09 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak commented: Thank you Krzysztof for your comments, they should be addressed now. https://github.com/llvm/llvm-project/pull/102613 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/c

[llvm-branch-commits] [flang] [llvm] [Flang][OpenMP] Prevent re-composition of composite constructs (PR #102613)

2024-08-09 Thread Sergio Afonso via llvm-branch-commits
@@ -2263,24 +2321,13 @@ static void genOMPDispatch(lower::AbstractConverter &converter, // Composite constructs case llvm::omp::Directive::OMPD_distribute_parallel_do: -genCompositeDistributeParallelDo(converter, symTable, semaCtx, eval, loc, -

[llvm-branch-commits] [flang] [llvm] [Flang][OpenMP] Prevent re-composition of composite constructs (PR #102613)

2024-08-09 Thread Sergio Afonso via llvm-branch-commits
@@ -90,38 +83,33 @@ ConstructQueue buildConstructQueue( Fortran::lower::pft::Evaluation &eval, const parser::CharBlock &source, llvm::omp::Directive compound, const List &clauses) { - List constructs; - ConstructDecomposition decompose(modOp, semaCtx, eval, compoun

[llvm-branch-commits] [flang] [llvm] [Flang][OpenMP] Prevent re-composition of composite constructs (PR #102613)

2024-08-09 Thread Sergio Afonso via llvm-branch-commits
@@ -2141,13 +2154,50 @@ static void genCompositeTaskloopSimd( semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval, mlir::Location loc, const ConstructQueue &queue, ConstructQueue::const_iterator item, DataSharingProcessor &dsp) { + assert(std::distan

[llvm-branch-commits] [flang] [llvm] [Flang][OpenMP] Prevent re-composition of composite constructs (PR #102613)

2024-08-09 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak edited https://github.com/llvm/llvm-project/pull/102613 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [flang] [llvm] [Flang][OpenMP] Prevent re-composition of composite constructs (PR #102613)

2024-08-09 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/102613 >From aa0403a8a137295345b066cebaab9635e4b9886f Mon Sep 17 00:00:00 2001 From: Sergio Afonso Date: Fri, 9 Aug 2024 12:58:27 +0100 Subject: [PATCH 1/2] [Flang][OpenMP] Prevent re-composition of composite construc

[llvm-branch-commits] [flang] [llvm] [Flang][OpenMP] Prevent re-composition of composite constructs (PR #102613)

2024-08-09 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak edited https://github.com/llvm/llvm-project/pull/102613 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [flang] [llvm] [Flang][OpenMP] Prevent re-composition of composite constructs (PR #102613)

2024-08-09 Thread Sergio Afonso via llvm-branch-commits
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/102613 After decomposition of OpenMP compound constructs and assignment of applicable clauses to each leaf construct, composite constructs are then combined again into a single element in the construct queue. This hel

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-08 Thread Sergio Afonso via llvm-branch-commits
@@ -1825,11 +1843,17 @@ LogicalResult DistributeOp::verify() { return emitOpError() << "must be a loop wrapper"; if (LoopWrapperInterface nested = getNestedWrapper()) { +if (!llvm::cast(getOperation()).isComposite()) + return emitError() + << "'omp.c

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-08 Thread Sergio Afonso via llvm-branch-commits
@@ -1749,10 +1755,18 @@ LogicalResult WsloopOp::verify() { return emitOpError() << "must be a loop wrapper"; if (LoopWrapperInterface nested = getNestedWrapper()) { +if (!llvm::cast(getOperation()).isComposite()) + return emitError() + << "'omp.compo

[llvm-branch-commits] [flang] [mlir] [OpenMP][MLIR] Set omp.composite attr for composite loop wrappers and add verifier checks (PR #102341)

2024-08-08 Thread Sergio Afonso via llvm-branch-commits
@@ -2063,10 +2063,14 @@ static void genCompositeDistributeSimd( // TODO: Populate entry block arguments with private variables. auto distributeOp = genWrapperOp( converter, loc, distributeClauseOps, /*blockArgTypes=*/{}); + llvm::cast(distributeOp.getOperation()) +

  1   2   3   4   >