Skip to content

Commit 95b2e23

Browse files
[mlir] Simplify PreservedAnalyses::isInvalidated (NFC) (#137506)
We can use "constexpr if" to combine the two variants of functions.
1 parent 1395e0a commit 95b2e23

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

mlir/include/mlir/Pass/AnalysisManager.h

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -85,17 +85,14 @@ template <typename T, typename... Args>
8585
using has_is_invalidated = decltype(std::declval<T &>().isInvalidated(
8686
std::declval<const PreservedAnalyses &>()));
8787

88-
/// Implementation of 'isInvalidated' if the analysis provides a definition.
8988
template <typename AnalysisT>
90-
std::enable_if_t<llvm::is_detected<has_is_invalidated, AnalysisT>::value, bool>
91-
isInvalidated(AnalysisT &analysis, const PreservedAnalyses &pa) {
92-
return analysis.isInvalidated(pa);
93-
}
94-
/// Default implementation of 'isInvalidated'.
95-
template <typename AnalysisT>
96-
std::enable_if_t<!llvm::is_detected<has_is_invalidated, AnalysisT>::value, bool>
97-
isInvalidated(AnalysisT &analysis, const PreservedAnalyses &pa) {
98-
return !pa.isPreserved<AnalysisT>();
89+
bool isInvalidated(AnalysisT &analysis, const PreservedAnalyses &pa) {
90+
if constexpr (llvm::is_detected<has_is_invalidated, AnalysisT>::value)
91+
/// Implementation of 'isInvalidated' if the analysis provides a definition.
92+
return analysis.isInvalidated(pa);
93+
else
94+
/// Default implementation of 'isInvalidated'.
95+
return !pa.isPreserved<AnalysisT>();
9996
}
10097
} // namespace analysis_impl
10198

0 commit comments

Comments
 (0)