[Mlir-commits] [mlir] 95b2e23 - [mlir] Simplify PreservedAnalyses::isInvalidated (NFC) (#137506)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Sun Apr 27 08:53:14 PDT 2025


Author: Kazu Hirata
Date: 2025-04-27T08:53:11-07:00
New Revision: 95b2e234f97a4153574ec51fb44e27b072439a90

URL: https://github.com/llvm/llvm-project/commit/95b2e234f97a4153574ec51fb44e27b072439a90
DIFF: https://github.com/llvm/llvm-project/commit/95b2e234f97a4153574ec51fb44e27b072439a90.diff

LOG: [mlir] Simplify PreservedAnalyses::isInvalidated (NFC) (#137506)

We can use "constexpr if" to combine the two variants of functions.

Added: 
    

Modified: 
    mlir/include/mlir/Pass/AnalysisManager.h

Removed: 
    


################################################################################
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