[Mlir-commits] [mlir] [mlir] Simplify PreservedAnalyses::isInvalidated (NFC) (PR #137506)
Kazu Hirata
llvmlistbot at llvm.org
Sun Apr 27 00:41:13 PDT 2025
https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/137506
We can use "constexpr if" to combine the two variants of functions.
>From 15709c50825a3821348b7fde9527905fffe0bead Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Sat, 26 Apr 2025 23:44:35 -0700
Subject: [PATCH] [mlir] Simplify PreservedAnalyses::isInvalidated (NFC)
We can use "constexpr if" to combine the two variants of functions.
---
mlir/include/mlir/Pass/AnalysisManager.h | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/mlir/include/mlir/Pass/AnalysisManager.h b/mlir/include/mlir/Pass/AnalysisManager.h
index 199ffee792bb5..45009d4b02a58 100644
--- a/mlir/include/mlir/Pass/AnalysisManager.h
+++ b/mlir/include/mlir/Pass/AnalysisManager.h
@@ -85,17 +85,14 @@ template <typename T, typename... Args>
using has_is_invalidated = decltype(std::declval<T &>().isInvalidated(
std::declval<const PreservedAnalyses &>()));
-/// Implementation of 'isInvalidated' if the analysis provides a definition.
template <typename AnalysisT>
-std::enable_if_t<llvm::is_detected<has_is_invalidated, AnalysisT>::value, bool>
-isInvalidated(AnalysisT &analysis, const PreservedAnalyses &pa) {
- return analysis.isInvalidated(pa);
-}
-/// Default implementation of 'isInvalidated'.
-template <typename AnalysisT>
-std::enable_if_t<!llvm::is_detected<has_is_invalidated, AnalysisT>::value, bool>
-isInvalidated(AnalysisT &analysis, const PreservedAnalyses &pa) {
- return !pa.isPreserved<AnalysisT>();
+bool isInvalidated(AnalysisT &analysis, const PreservedAnalyses &pa) {
+ if constexpr (llvm::is_detected<has_is_invalidated, AnalysisT>::value)
+ /// Implementation of 'isInvalidated' if the analysis provides a definition.
+ return analysis.isInvalidated(pa);
+ else
+ /// Default implementation of 'isInvalidated'.
+ return !pa.isPreserved<AnalysisT>();
}
} // namespace analysis_impl
More information about the Mlir-commits
mailing list