From 15709c50825a3821348b7fde9527905fffe0bead Mon Sep 17 00:00:00 2001 From: Kazu Hirata 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 using has_is_invalidated = decltype(std::declval().isInvalidated( std::declval())); -/// Implementation of 'isInvalidated' if the analysis provides a definition. template -std::enable_if_t::value, bool> -isInvalidated(AnalysisT &analysis, const PreservedAnalyses &pa) { - return analysis.isInvalidated(pa); -} -/// Default implementation of 'isInvalidated'. -template -std::enable_if_t::value, bool> -isInvalidated(AnalysisT &analysis, const PreservedAnalyses &pa) { - return !pa.isPreserved(); +bool isInvalidated(AnalysisT &analysis, const PreservedAnalyses &pa) { + if constexpr (llvm::is_detected::value) + /// Implementation of 'isInvalidated' if the analysis provides a definition. + return analysis.isInvalidated(pa); + else + /// Default implementation of 'isInvalidated'. + return !pa.isPreserved(); } } // namespace analysis_impl