Skip to content

Commit 49eb7d0

Browse files
[IR] Simplify isRequired and passIsRequiredImpl (NFC) (llvm#137503)
We can use "constexpr if" to combine the two variants of functions.
1 parent cbd3283 commit 49eb7d0

File tree

2 files changed

+6
-16
lines changed

2 files changed

+6
-16
lines changed

llvm/include/llvm/IR/PassInstrumentation.h

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -216,14 +216,9 @@ class PassInstrumentation {
216216
template <typename PassT>
217217
using has_required_t = decltype(std::declval<PassT &>().isRequired());
218218

219-
template <typename PassT>
220-
static std::enable_if_t<is_detected<has_required_t, PassT>::value, bool>
221-
isRequired(const PassT &Pass) {
222-
return Pass.isRequired();
223-
}
224-
template <typename PassT>
225-
static std::enable_if_t<!is_detected<has_required_t, PassT>::value, bool>
226-
isRequired(const PassT &Pass) {
219+
template <typename PassT> static bool isRequired(const PassT &Pass) {
220+
if constexpr (is_detected<has_required_t, PassT>::value)
221+
return Pass.isRequired();
227222
return false;
228223
}
229224

llvm/include/llvm/IR/PassManagerInternal.h

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,9 @@ struct PassModel : PassConcept<IRUnitT, AnalysisManagerT, ExtraArgTs...> {
102102
template <typename T>
103103
using has_required_t = decltype(std::declval<T &>().isRequired());
104104

105-
template <typename T>
106-
static std::enable_if_t<is_detected<has_required_t, T>::value, bool>
107-
passIsRequiredImpl() {
108-
return T::isRequired();
109-
}
110-
template <typename T>
111-
static std::enable_if_t<!is_detected<has_required_t, T>::value, bool>
112-
passIsRequiredImpl() {
105+
template <typename T> static bool passIsRequiredImpl() {
106+
if constexpr (is_detected<has_required_t, T>::value)
107+
return T::isRequired();
113108
return false;
114109
}
115110

0 commit comments

Comments
 (0)