[flang-commits] [flang] [flang][OpenMP] Implement getOpenMPVersion helper function, NFC (PR #90086)
Krzysztof Parzyszek via flang-commits
flang-commits at lists.llvm.org
Tue Apr 30 07:46:33 PDT 2024
https://github.com/kparzysz updated https://github.com/llvm/llvm-project/pull/90086
>From 4cf41a60afacefbbc7098309ba1f099b867a8806 Mon Sep 17 00:00:00 2001
From: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: Tue, 26 Mar 2024 09:58:18 -0500
Subject: [PATCH 1/5] [flang][OpenMP] Implement getOpenMPVersion helper
function, NFC
---
flang/lib/Lower/OpenMP/Utils.cpp | 6 ++++++
flang/lib/Lower/OpenMP/Utils.h | 1 +
2 files changed, 7 insertions(+)
diff --git a/flang/lib/Lower/OpenMP/Utils.cpp b/flang/lib/Lower/OpenMP/Utils.cpp
index da3f2be73e5095..1400f1f4cc8dd2 100644
--- a/flang/lib/Lower/OpenMP/Utils.cpp
+++ b/flang/lib/Lower/OpenMP/Utils.cpp
@@ -47,6 +47,12 @@ int64_t getCollapseValue(const List<Clause> &clauses) {
return 1;
}
+uint32_t getOpenMPVersion(mlir::ModuleOp mod) {
+ if (mlir::Attribute verAttr = mod->getAttr("omp.version"))
+ return llvm::cast<mlir::omp::VersionAttr>(verAttr).getVersion();
+ llvm_unreachable("Expecting OpenMP version attribute in module");
+}
+
void genObjectList(const ObjectList &objects,
Fortran::lower::AbstractConverter &converter,
llvm::SmallVectorImpl<mlir::Value> &operands) {
diff --git a/flang/lib/Lower/OpenMP/Utils.h b/flang/lib/Lower/OpenMP/Utils.h
index b3a9f7f30c98bd..693a91f7cc6954 100644
--- a/flang/lib/Lower/OpenMP/Utils.h
+++ b/flang/lib/Lower/OpenMP/Utils.h
@@ -59,6 +59,7 @@ void gatherFuncAndVarSyms(
llvm::SmallVectorImpl<DeclareTargetCapturePair> &symbolAndClause);
int64_t getCollapseValue(const List<Clause> &clauses);
+uint32_t getOpenMPVersion(mlir::ModuleOp mod);
Fortran::semantics::Symbol *
getOmpObjectSymbol(const Fortran::parser::OmpObject &ompObject);
>From 15586c432463faf5f8688570536fb3dff75d2731 Mon Sep 17 00:00:00 2001
From: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: Fri, 26 Apr 2024 10:36:27 -0500
Subject: [PATCH 2/5] Return a fallback value instead of crashing if no version
present
---
flang/lib/Lower/OpenMP/Utils.cpp | 4 ++--
flang/lib/Lower/OpenMP/Utils.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/flang/lib/Lower/OpenMP/Utils.cpp b/flang/lib/Lower/OpenMP/Utils.cpp
index 1400f1f4cc8dd2..e4f6fa027ec938 100644
--- a/flang/lib/Lower/OpenMP/Utils.cpp
+++ b/flang/lib/Lower/OpenMP/Utils.cpp
@@ -47,10 +47,10 @@ int64_t getCollapseValue(const List<Clause> &clauses) {
return 1;
}
-uint32_t getOpenMPVersion(mlir::ModuleOp mod) {
+uint32_t getOpenMPVersion(mlir::ModuleOp mod, uint32_t fallback) {
if (mlir::Attribute verAttr = mod->getAttr("omp.version"))
return llvm::cast<mlir::omp::VersionAttr>(verAttr).getVersion();
- llvm_unreachable("Expecting OpenMP version attribute in module");
+ return fallback;
}
void genObjectList(const ObjectList &objects,
diff --git a/flang/lib/Lower/OpenMP/Utils.h b/flang/lib/Lower/OpenMP/Utils.h
index 693a91f7cc6954..3007aeee11af18 100644
--- a/flang/lib/Lower/OpenMP/Utils.h
+++ b/flang/lib/Lower/OpenMP/Utils.h
@@ -59,7 +59,7 @@ void gatherFuncAndVarSyms(
llvm::SmallVectorImpl<DeclareTargetCapturePair> &symbolAndClause);
int64_t getCollapseValue(const List<Clause> &clauses);
-uint32_t getOpenMPVersion(mlir::ModuleOp mod);
+uint32_t getOpenMPVersion(mlir::ModuleOp mod, uint32_t fallback = ~0u);
Fortran::semantics::Symbol *
getOmpObjectSymbol(const Fortran::parser::OmpObject &ompObject);
>From cf2f99488c313169c503fe01a2e90cbc51d61be8 Mon Sep 17 00:00:00 2001
From: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: Tue, 30 Apr 2024 08:00:12 -0500
Subject: [PATCH 3/5] getOpenMPVersionAttribute
---
flang/include/flang/Tools/CrossToolHelpers.h | 6 ++++++
flang/lib/Lower/OpenMP/Utils.cpp | 6 ------
flang/lib/Lower/OpenMP/Utils.h | 1 -
3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/flang/include/flang/Tools/CrossToolHelpers.h b/flang/include/flang/Tools/CrossToolHelpers.h
index b7d84af8c483ee..fa511a0b19eb4f 100644
--- a/flang/include/flang/Tools/CrossToolHelpers.h
+++ b/flang/include/flang/Tools/CrossToolHelpers.h
@@ -133,4 +133,10 @@ void setOpenMPVersionAttribute(mlir::ModuleOp &module, int64_t version) {
mlir::omp::VersionAttr::get(module.getContext(), version));
}
+int64_t getOpenMPVersionAttribute(mlir::ModuleOp module, int64_t fallback = -1) {
+ if (mlir::Attribute verAttr = module->getAttr("omp.version"))
+ return llvm::cast<mlir::omp::VersionAttr>(verAttr).getVersion();
+ return fallback;
+}
+
#endif // FORTRAN_TOOLS_CROSS_TOOL_HELPERS_H
diff --git a/flang/lib/Lower/OpenMP/Utils.cpp b/flang/lib/Lower/OpenMP/Utils.cpp
index e4f6fa027ec938..da3f2be73e5095 100644
--- a/flang/lib/Lower/OpenMP/Utils.cpp
+++ b/flang/lib/Lower/OpenMP/Utils.cpp
@@ -47,12 +47,6 @@ int64_t getCollapseValue(const List<Clause> &clauses) {
return 1;
}
-uint32_t getOpenMPVersion(mlir::ModuleOp mod, uint32_t fallback) {
- if (mlir::Attribute verAttr = mod->getAttr("omp.version"))
- return llvm::cast<mlir::omp::VersionAttr>(verAttr).getVersion();
- return fallback;
-}
-
void genObjectList(const ObjectList &objects,
Fortran::lower::AbstractConverter &converter,
llvm::SmallVectorImpl<mlir::Value> &operands) {
diff --git a/flang/lib/Lower/OpenMP/Utils.h b/flang/lib/Lower/OpenMP/Utils.h
index 3007aeee11af18..b3a9f7f30c98bd 100644
--- a/flang/lib/Lower/OpenMP/Utils.h
+++ b/flang/lib/Lower/OpenMP/Utils.h
@@ -59,7 +59,6 @@ void gatherFuncAndVarSyms(
llvm::SmallVectorImpl<DeclareTargetCapturePair> &symbolAndClause);
int64_t getCollapseValue(const List<Clause> &clauses);
-uint32_t getOpenMPVersion(mlir::ModuleOp mod, uint32_t fallback = ~0u);
Fortran::semantics::Symbol *
getOmpObjectSymbol(const Fortran::parser::OmpObject &ompObject);
>From 6130d425917cc3db18395c21b4aa1ac142a39da0 Mon Sep 17 00:00:00 2001
From: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: Tue, 30 Apr 2024 08:05:51 -0500
Subject: [PATCH 4/5] clang-format
---
flang/include/flang/Tools/CrossToolHelpers.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/flang/include/flang/Tools/CrossToolHelpers.h b/flang/include/flang/Tools/CrossToolHelpers.h
index fa511a0b19eb4f..f059b2fba13da7 100644
--- a/flang/include/flang/Tools/CrossToolHelpers.h
+++ b/flang/include/flang/Tools/CrossToolHelpers.h
@@ -133,7 +133,8 @@ void setOpenMPVersionAttribute(mlir::ModuleOp &module, int64_t version) {
mlir::omp::VersionAttr::get(module.getContext(), version));
}
-int64_t getOpenMPVersionAttribute(mlir::ModuleOp module, int64_t fallback = -1) {
+int64_t getOpenMPVersionAttribute(
+ mlir::ModuleOp module, int64_t fallback = -1) {
if (mlir::Attribute verAttr = module->getAttr("omp.version"))
return llvm::cast<mlir::omp::VersionAttr>(verAttr).getVersion();
return fallback;
>From 2d5f4e1006d88f44c93cbebd5f440d8d4d4a7798 Mon Sep 17 00:00:00 2001
From: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: Tue, 30 Apr 2024 09:46:19 -0500
Subject: [PATCH 5/5] add static
---
flang/include/flang/Tools/CrossToolHelpers.h | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/flang/include/flang/Tools/CrossToolHelpers.h b/flang/include/flang/Tools/CrossToolHelpers.h
index f059b2fba13da7..cebdd6d181c364 100644
--- a/flang/include/flang/Tools/CrossToolHelpers.h
+++ b/flang/include/flang/Tools/CrossToolHelpers.h
@@ -109,7 +109,7 @@ struct OffloadModuleOpts {
// Shares assinging of the OpenMP OffloadModuleInterface and its assorted
// attributes accross Flang tools (bbc/flang)
-void setOffloadModuleInterfaceAttributes(
+[[maybe_unused]] static void setOffloadModuleInterfaceAttributes(
mlir::ModuleOp &module, OffloadModuleOpts Opts) {
// Should be registered by the OpenMPDialect
if (auto offloadMod = llvm::dyn_cast<mlir::omp::OffloadModuleInterface>(
@@ -127,13 +127,14 @@ void setOffloadModuleInterfaceAttributes(
}
}
-void setOpenMPVersionAttribute(mlir::ModuleOp &module, int64_t version) {
+[[maybe_unused]] static void setOpenMPVersionAttribute(
+ mlir::ModuleOp &module, int64_t version) {
module.getOperation()->setAttr(
mlir::StringAttr::get(module.getContext(), llvm::Twine{"omp.version"}),
mlir::omp::VersionAttr::get(module.getContext(), version));
}
-int64_t getOpenMPVersionAttribute(
+[[maybe_unused]] static int64_t getOpenMPVersionAttribute(
mlir::ModuleOp module, int64_t fallback = -1) {
if (mlir::Attribute verAttr = module->getAttr("omp.version"))
return llvm::cast<mlir::omp::VersionAttr>(verAttr).getVersion();
More information about the flang-commits
mailing list