@@ -1796,36 +1918,110 @@ convertOmpTaskOp(omp::TaskOp taskOp,
llvm::IRBuilderBase &builder,
// Allocate and initialize private variables
// TODO: package private variables up in a structure
builder.SetInsertPoint(initBlock->getTerminator());
- for (auto [privDecl, mlirP
@@ -1730,6 +1730,126 @@ buildDependData(std::optional dependKinds,
OperandRange dependVars,
}
}
+static bool privatizerReadsSourceVariable(omp::PrivateClauseOp &priv) {
+ if (priv.getDataSharingType() == omp::DataSharingClauseType::FirstPrivate)
+return true;
+
+ Regi
@@ -1730,6 +1730,126 @@ buildDependData(std::optional dependKinds,
OperandRange dependVars,
}
}
+static bool privatizerReadsSourceVariable(omp::PrivateClauseOp &priv) {
+ if (priv.getDataSharingType() == omp::DataSharingClauseType::FirstPrivate)
+return true;
+
+ Regi
@@ -1796,36 +1918,110 @@ convertOmpTaskOp(omp::TaskOp taskOp,
llvm::IRBuilderBase &builder,
// Allocate and initialize private variables
// TODO: package private variables up in a structure
builder.SetInsertPoint(initBlock->getTerminator());
- for (auto [privDecl, mlirP
@@ -1730,6 +1730,126 @@ buildDependData(std::optional dependKinds,
OperandRange dependVars,
}
}
+static bool privatizerReadsSourceVariable(omp::PrivateClauseOp &priv) {
ergawy wrote:
nit: I think it would be nice to have on the op definition itself.
https
@@ -1796,36 +1918,110 @@ convertOmpTaskOp(omp::TaskOp taskOp,
llvm::IRBuilderBase &builder,
// Allocate and initialize private variables
// TODO: package private variables up in a structure
builder.SetInsertPoint(initBlock->getTerminator());
- for (auto [privDecl, mlirP
https://github.com/ergawy approved this pull request.
Nice! Thanks!
https://github.com/llvm/llvm-project/pull/125900
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-com
@@ -1730,6 +1730,126 @@ buildDependData(std::optional dependKinds,
OperandRange dependVars,
}
}
+static bool privatizerReadsSourceVariable(omp::PrivateClauseOp &priv) {
+ if (priv.getDataSharingType() == omp::DataSharingClauseType::FirstPrivate)
+return true;
+
+ Regi
@@ -2709,13 +2709,23 @@ getRefPtrIfDeclareTarget(mlir::Value value,
}
namespace {
+// Append customMappers information to existing MapInfosTy
+struct MapInfosTy : llvm::OpenMPIRBuilder::MapInfosTy {
+ SmallVector Mappers;
ergawy wrote:
Can we add `Mapper` to
@@ -3421,6 +3441,85 @@ static void genMapInfos(llvm::IRBuilderBase &builder,
}
}
+static llvm::Expected
+emitUserDefinedMapper(Operation *declMapperOp, llvm::IRBuilderBase &builder,
+ LLVM::ModuleTranslation &moduleTranslation);
+
+static llvm::Expected
@@ -3421,6 +3441,85 @@ static void genMapInfos(llvm::IRBuilderBase &builder,
}
}
+static llvm::Expected
+emitUserDefinedMapper(Operation *declMapperOp, llvm::IRBuilderBase &builder,
+ LLVM::ModuleTranslation &moduleTranslation);
+
+static llvm::Expected
@@ -3421,6 +3441,85 @@ static void genMapInfos(llvm::IRBuilderBase &builder,
}
}
+static llvm::Expected
+emitUserDefinedMapper(Operation *declMapperOp, llvm::IRBuilderBase &builder,
+ LLVM::ModuleTranslation &moduleTranslation);
+
+static llvm::Expected
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/124746
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy approved this pull request.
LGTM!
https://github.com/llvm/llvm-project/pull/121001
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy approved this pull request.
LGTM!
https://github.com/llvm/llvm-project/pull/121005
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/121005
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
@@ -186,6 +186,32 @@ struct MapInfoOpConversion : public
ConvertOpToLLVMPattern {
}
};
+struct DeclMapperOpConversion
ergawy wrote:
You are right. No need to overcomplicate this. This is fine.
https://github.com/llvm/llvm-project/pull/121005
_
https://github.com/ergawy deleted
https://github.com/llvm/llvm-project/pull/116050
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
@@ -6182,9 +6182,12 @@ TEST_F(OpenMPIRBuilderTest, TargetRegion) {
TargetRegionEntryInfo EntryInfo("func", 42, 4711, 17);
OpenMPIRBuilder::LocationDescription OmpLoc({Builder.saveIP(), DL});
- OpenMPIRBuilder::InsertPointOrErrorTy AfterIP = OMPBuilder.createTarget(
-
@@ -6182,9 +6182,12 @@ TEST_F(OpenMPIRBuilderTest, TargetRegion) {
TargetRegionEntryInfo EntryInfo("func", 42, 4711, 17);
OpenMPIRBuilder::LocationDescription OmpLoc({Builder.saveIP(), DL});
- OpenMPIRBuilder::InsertPointOrErrorTy AfterIP = OMPBuilder.createTarget(
-
@@ -488,44 +559,34 @@ void DataSharingProcessor::doPrivatize(const
semantics::Symbol *sym,
mlir::OpBuilder::InsertionGuard guard(firOpBuilder);
firOpBuilder.setInsertionPointToStart(moduleOp.getBody());
auto result = firOpBuilder.create(
-symLoc, uniquePriv
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/124019
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
@@ -20,25 +20,42 @@ namespace mlir {
class Region;
} // namespace mlir
+namespace Fortran {
+namespace semantics {
+class Symbol;
+} // namespace semantics
+} // namespace Fortran
+
namespace fir {
class FirOpBuilder;
class ShapeShiftOp;
} // namespace fir
namespace For
@@ -132,7 +168,7 @@ void DataSharingProcessor::cloneSymbol(const
semantics::Symbol *sym) {
if (needInitClone()) {
Fortran::lower::initializeCloneAtRuntime(converter, *sym, symTable);
-callsInitClone = true;
+mightHaveReadMoldArg = true;
ergawy w
@@ -96,17 +149,118 @@ fir::ShapeShiftOp
Fortran::lower::omp::getShapeShift(fir::FirOpBuilder &builder,
return shapeShift;
}
+// Initialize box newBox using moldBox. These should both have the same type
and
+// be boxes containing derived types e.g.
+// fir.box>
+// fir.box
@@ -55,15 +55,19 @@ class MapsForPrivatizedSymbolsPass
std::underlying_type_t>(
llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_TO);
Operation *definingOp = var.getDefiningOp();
-auto declOp = llvm::dyn_cast_or_null(definingOp);
-assert(declOp &&
-
@@ -468,15 +505,49 @@ void DataSharingProcessor::doPrivatize(const
semantics::Symbol *sym,
lower::SymbolBox hsb = converter.lookupOneLevelUpSymbol(*sym);
assert(hsb && "Host symbol box not found");
- mlir::Type symType = hsb.getAddr().getType();
+ mlir::Value privVal =
@@ -468,15 +505,49 @@ void DataSharingProcessor::doPrivatize(const
semantics::Symbol *sym,
lower::SymbolBox hsb = converter.lookupOneLevelUpSymbol(*sym);
assert(hsb && "Host symbol box not found");
- mlir::Type symType = hsb.getAddr().getType();
+ mlir::Value privVal =
@@ -34,52 +34,48 @@ def PrivateClauseOp : OpenMP_Op<"private",
[IsolatedFromAbove, RecipeInterface]>
let description = [{
This operation provides a declaration of how to implement the
[first]privatization of a variable. The dialect users should provide
-informati
@@ -468,15 +505,49 @@ void DataSharingProcessor::doPrivatize(const
semantics::Symbol *sym,
lower::SymbolBox hsb = converter.lookupOneLevelUpSymbol(*sym);
assert(hsb && "Host symbol box not found");
- mlir::Type symType = hsb.getAddr().getType();
+ mlir::Value privVal =
@@ -96,17 +149,118 @@ fir::ShapeShiftOp
Fortran::lower::omp::getShapeShift(fir::FirOpBuilder &builder,
return shapeShift;
}
+// Initialize box newBox using moldBox. These should both have the same type
and
+// be boxes containing derived types e.g.
+// fir.box>
+// fir.box
@@ -96,17 +149,118 @@ fir::ShapeShiftOp
Fortran::lower::omp::getShapeShift(fir::FirOpBuilder &builder,
return shapeShift;
}
+// Initialize box newBox using moldBox. These should both have the same type
and
+// be boxes containing derived types e.g.
+// fir.box>
+// fir.box
@@ -148,41 +309,113 @@ void
Fortran::lower::omp::populateByRefInitAndCleanupRegions(
builder.setInsertionPointToEnd(initBlock);
mlir::Value boxAlloca = allocatedPrivVarArg;
+
+moldArg = builder.loadIfRef(loc, moldArg);
+getLengthParameters(builder, loc, moldAr
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/124019
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy commented:
Thanks for the great work @tblah! I partially reviewed since this is a huge PR
(understandably). I will come back and continue reviewing the rest laster.
https://github.com/llvm/llvm-project/pull/124019
___
llvm-br
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/124019
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
@@ -34,52 +34,48 @@ def PrivateClauseOp : OpenMP_Op<"private",
[IsolatedFromAbove, RecipeInterface]>
let description = [{
This operation provides a declaration of how to implement the
[first]privatization of a variable. The dialect users should provide
-informati
@@ -55,15 +55,19 @@ class MapsForPrivatizedSymbolsPass
std::underlying_type_t>(
llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_TO);
Operation *definingOp = var.getDefiningOp();
-auto declOp = llvm::dyn_cast_or_null(definingOp);
-assert(declOp &&
-
https://github.com/ergawy approved this pull request.
LGTM! Thanks Tom! However, I have to admit, the `fir` dialect type system is
still a "semi-"blackbox to me, so someone more familiar with it needs to
carefully review changes in `PrivateReductionUtils.cpp`.
https://github.com/llvm/llvm-proj
https://github.com/ergawy approved this pull request.
Thanks, Sergio! LGTM
https://github.com/llvm/llvm-project/pull/122478
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bra
@@ -6182,9 +6182,12 @@ TEST_F(OpenMPIRBuilderTest, TargetRegion) {
TargetRegionEntryInfo EntryInfo("func", 42, 4711, 17);
OpenMPIRBuilder::LocationDescription OmpLoc({Builder.saveIP(), DL});
- OpenMPIRBuilder::InsertPointOrErrorTy AfterIP = OMPBuilder.createTarget(
-
https://github.com/ergawy approved this pull request.
https://github.com/llvm/llvm-project/pull/116050
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127633
>From 35dd008e971fb42d457d04f26ca7b8f69c19082d Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 02:50:46 -0600
Subject: [PATCH 1/3] [flang][OpenMP] Map simple `do concurrent` loops to
OpenMP host con
ergawy wrote:
Again sorry, GH is acting weird!!
https://github.com/llvm/llvm-project/pull/127634
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127633
>From f6a61dc9d383f19fa1cf38173829f2a732a4d544 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 02:50:46 -0600
Subject: [PATCH 1/3] [flang][OpenMP] Map simple `do concurrent` loops to
OpenMP host con
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127634
>From 4515ac1a9f1a3efe94c902b7882400d04d25d4e8 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:17:17 -0600
Subject: [PATCH 1/2] [flang][OpenMP] Extend `do concurrent` mapping to
multi-range loops
ergawy wrote:
I have no idea how the PR requested reviews from all these poeple!!! Sorry for
the noise.
https://github.com/llvm/llvm-project/pull/127635
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi
ergawy wrote:
The same issue (requesting reviews from an enormous amounts of people) happened
here as well. No idea why. I just did a simple rebase on `main`. Apologies for
the noise once more.
https://github.com/llvm/llvm-project/pull/127633
___
llv
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/131582
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/131574
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
ergawy wrote:
> Have you run any testsuites on this? If so please add that to the commit
> description.
Provided test suite results and doing some more internal testing on the PR as
well.
https://github.com/llvm/llvm-project/pull/131574
___
llvm-bra
https://github.com/ergawy created
https://github.com/llvm/llvm-project/pull/131582
Moves code needed to collect info about delayed privatizers into a shared util
instread of repeating the same patter across all relevant constructs.
>From e237f8b5c88d9a3106398cf0eac2a5fba4cdb6e4 Mon Sep 17 00:0
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/131582
>From 19e8b682071fcdd3fb0b26383c5e0dc20a357da8 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Mon, 17 Mar 2025 03:37:00 -0500
Subject: [PATCH] [OpenMP][MLIR] Refactor code related to collecting privatizer
info into
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127634
>From 8b56c277f04c4f2d3a8a387d20454f7ddb86754c Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:17:17 -0600
Subject: [PATCH 1/2] [flang][OpenMP] Extend `do concurrent` mapping to
multi-range loops
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127634
>From 8b56c277f04c4f2d3a8a387d20454f7ddb86754c Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:17:17 -0600
Subject: [PATCH 1/2] [flang][OpenMP] Extend `do concurrent` mapping to
multi-range loops
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127634
>From 8b56c277f04c4f2d3a8a387d20454f7ddb86754c Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:17:17 -0600
Subject: [PATCH 1/2] [flang][OpenMP] Extend `do concurrent` mapping to
multi-range loops
@@ -102,6 +105,47 @@ mlir::Operation *findLoopIterationVarMemDecl(fir::DoLoopOp
doLoop) {
return result.getDefiningOp();
}
+/// Collects the op(s) responsible for updating a loop's iteration variable
with
+/// the current iteration number. For example, for the input IR:
--
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127635
>From caa2a3061021ca0d67246e3f7f575141aeed9802 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:40:19 -0600
Subject: [PATCH] [flang][OpenMP] Handle "loop-local values" in `do concurrent`
nests
Ex
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/131574
>From 047e4b2327da0ee0ad0398fe8d3c799cefc3f7d8 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Mon, 17 Mar 2025 02:08:23 -0500
Subject: [PATCH] [flang][OpenMP] Enable delayed privatization by default for
`omp.distri
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/131582
>From 1b934bafb44a4e5e07f02dd3daab88bbd27017c3 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Mon, 17 Mar 2025 03:37:00 -0500
Subject: [PATCH] [OpenMP][MLIR] Refactor code related to collecting privatizer
info into
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127633
>From f6a61dc9d383f19fa1cf38173829f2a732a4d544 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 02:50:46 -0600
Subject: [PATCH 1/3] [flang][OpenMP] Map simple `do concurrent` loops to
OpenMP host con
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127635
>From 6321731e6e1cf412ed002571b9140d56ac5b76c6 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:40:19 -0600
Subject: [PATCH] [flang][OpenMP] Handle "loop-local values" in `do concurrent`
nests
Ex
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127634
>From 4515ac1a9f1a3efe94c902b7882400d04d25d4e8 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:17:17 -0600
Subject: [PATCH 1/2] [flang][OpenMP] Extend `do concurrent` mapping to
multi-range loops
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127634
>From 8b56c277f04c4f2d3a8a387d20454f7ddb86754c Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:17:17 -0600
Subject: [PATCH] [flang][OpenMP] Extend `do concurrent` mapping to multi-range
loops
Ad
https://github.com/ergawy created
https://github.com/llvm/llvm-project/pull/131574
Switches delayed privatization for `omp.distribute` to be on by default:
controlled by the `-openmp-enable-delayed-privatization` instead of by
`-openmp-enable-delayed-privatization-staging`
>From d8463d8f7092e
https://github.com/ergawy created
https://github.com/llvm/llvm-project/pull/138489
This PR updates the `do concurrent` to OpenMP mapping pass to use the newly
added `fir.do_concurrent` ops that were recently added upstream instead of
handling nests of `fir.do_loop ... unordered` ops.
Parent P
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138489
>From ac0cde7576c49a00e3591254d6891879b52bee81 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Mon, 5 May 2025 02:23:04 -0500
Subject: [PATCH] [flang][OpenMP] Update `do concurrent` mapping pass to use
`fir.do_concu
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/138534
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/138505
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138506
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans-se
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138512
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans-se
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138534
>From 098df5a40cae3f7d514bcdb6579c7107ef74c18e Mon Sep 17 00:00:00 2001
From: ergawy
Date: Mon, 5 May 2025 07:15:52 -0500
Subject: [PATCH] [flang][fir] Basic PFT to MLIR lowering for do concurrent
locality speci
https://github.com/ergawy created
https://github.com/llvm/llvm-project/pull/138505
Adds a new `fir.local` op to model `local` and `local_init` locality
specifiers. This op is a clone of `omp.private`. In particular, this new op
also models the privatization/localization logic of an SSA value i
https://github.com/ergawy created
https://github.com/llvm/llvm-project/pull/138506
Extends `fir.do_concurrent.loop` ops to model locality specifiers. This follows
the same pattern used in OpenMP where an op of type `fir.local` (in OpenMP it
is `omp.private`) is referenced from the `do concurre
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138489
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans-se
https://github.com/ergawy created
https://github.com/llvm/llvm-project/pull/138512
Extends lowering `fir.do_concurrent` to `fir.do_loop ... unordered` by adding
support for locality specifiers.
In particular, for `local` specifiers, a `fir.alloca` op is created using the
localizer type. For `
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138506
>From 33312c3ed87c5d299673be5e4831ea1583d536c6 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Mon, 5 May 2025 03:25:19 -0500
Subject: [PATCH] [flang][fir] Add locality specifiers modeling to
`fir.do_concurrent.loop
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138505
>From 09f3a12a25be35d119c02164ef6a4d21a024a940 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Mon, 5 May 2025 04:20:40 -0500
Subject: [PATCH] [flang][fir] Add `fir.local` op for locality specifiers
Adds a new `fir.
https://github.com/ergawy closed
https://github.com/llvm/llvm-project/pull/137929
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/138512
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/138512
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
ergawy wrote:
Abandoning since we have a PR stack to implement locality specs:
- https://github.com/llvm/llvm-project/pull/138505
- https://github.com/llvm/llvm-project/pull/138506
- https://github.com/llvm/llvm-project/pull/138512
- https://github.com/llvm/llvm-project/pull/138534
https://githu
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138534
>From 41a340107729c3cfdf124aa398f270ad2ec013e1 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Mon, 5 May 2025 07:15:52 -0500
Subject: [PATCH] [flang][fir] Basic PFT to MLIR lowering for do concurrent
locality speci
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/138512
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy edited
https://github.com/llvm/llvm-project/pull/138506
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy created
https://github.com/llvm/llvm-project/pull/138534
Extends support for `fir.do_concurrent` locality specifiers to the PFT to MLIR
level. This adds code-gen for generating the newly added `fir.local` ops and
referencing these ops from `fir.do_concurrent.loop` ops
@@ -3485,6 +3485,137 @@ def fir_BoxTotalElementsOp
let hasCanonicalizer = 1;
}
+def YieldOp : fir_Op<"yield",
ergawy wrote:
`fir.result` requires its parent op to have the same number of results
(https://github.com/llvm/llvm-project/blob/main/flang/lib/Opt
@@ -548,19 +357,16 @@ class DoConcurrentConversionPass
return;
}
-llvm::DenseSet concurrentLoopsToSkip;
+llvm::DenseSet concurrentLoopsToSkip;
ergawy wrote:
> I'm not certain that is guaranteed.
ops are walked [in
pre-order](https://github
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138505
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans-se
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138534
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans-se
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138506
Rate limit · GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans-se
@@ -3485,6 +3485,137 @@ def fir_BoxTotalElementsOp
let hasCanonicalizer = 1;
}
+def YieldOp : fir_Op<"yield",
+[Pure, ReturnLike, Terminator,
+ ParentOneOf<["LocalitySpecifierOp"]>]> {
+ let summary = "loop yield and termination operation";
+ let description = [{
+
@@ -3485,6 +3485,137 @@ def fir_BoxTotalElementsOp
let hasCanonicalizer = 1;
}
+def YieldOp : fir_Op<"yield",
+[Pure, ReturnLike, Terminator,
+ ParentOneOf<["LocalitySpecifierOp"]>]> {
+ let summary = "loop yield and termination operation";
+ let description = [{
+
ergawy wrote:
> Please could you add a test for the verifier failures.
On it
https://github.com/llvm/llvm-project/pull/138505
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/138512
>From a4acb56894a9e5ec95f857a671e672b126e979c5 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Mon, 5 May 2025 06:50:49 -0500
Subject: [PATCH] [flang][fir] Basci lowering `fir.do_concurrent` locality
specs to `fir.d
@@ -3485,6 +3485,137 @@ def fir_BoxTotalElementsOp
let hasCanonicalizer = 1;
}
+def YieldOp : fir_Op<"yield",
+[Pure, ReturnLike, Terminator,
+ ParentOneOf<["LocalitySpecifierOp"]>]> {
+ let summary = "loop yield and termination operation";
+ let description = [{
+
@@ -2709,13 +2709,23 @@ getRefPtrIfDeclareTarget(mlir::Value value,
}
namespace {
+// Append customMappers information to existing MapInfosTy
+struct MapInfosTy : llvm::OpenMPIRBuilder::MapInfosTy {
+ SmallVector Mappers;
ergawy wrote:
We gain better readabi
https://github.com/ergawy approved this pull request.
https://github.com/llvm/llvm-project/pull/124746
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127634
>From 4c63b2a9dc2e8c1147a38249eae7bf8244469a00 Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:17:17 -0600
Subject: [PATCH] [flang][OpenMP] Extend `do concurrent` mapping to multi-range
loops
Ad
https://github.com/ergawy updated
https://github.com/llvm/llvm-project/pull/127635
>From 3d1c2e67f4a462787c3326a8ac85c3951370aafa Mon Sep 17 00:00:00 2001
From: ergawy
Date: Tue, 18 Feb 2025 06:40:19 -0600
Subject: [PATCH] [flang][OpenMP] Handle "loop-local values" in `do concurrent`
nests
Ex
101 - 200 of 296 matches
Mail list logo