diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
commit | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch) | |
tree | 012bb94d777798f1f56ac1cec429509766d05181 /contrib/libs/llvm12/include/llvm/IR/PassManagerInternal.h | |
parent | 6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff) | |
download | ydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/IR/PassManagerInternal.h')
-rw-r--r-- | contrib/libs/llvm12/include/llvm/IR/PassManagerInternal.h | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/contrib/libs/llvm12/include/llvm/IR/PassManagerInternal.h b/contrib/libs/llvm12/include/llvm/IR/PassManagerInternal.h index 8d5ddd82cb..6f92b8fb54 100644 --- a/contrib/libs/llvm12/include/llvm/IR/PassManagerInternal.h +++ b/contrib/libs/llvm12/include/llvm/IR/PassManagerInternal.h @@ -55,12 +55,12 @@ struct PassConcept { /// Polymorphic method to access the name of a pass. virtual StringRef name() const = 0; - - /// Polymorphic method to to let a pass optionally exempted from skipping by - /// PassInstrumentation. - /// To opt-in, pass should implement `static bool isRequired()`. It's no-op - /// to have `isRequired` always return false since that is the default. - virtual bool isRequired() const = 0; + + /// Polymorphic method to to let a pass optionally exempted from skipping by + /// PassInstrumentation. + /// To opt-in, pass should implement `static bool isRequired()`. It's no-op + /// to have `isRequired` always return false since that is the default. + virtual bool isRequired() const = 0; }; /// A template wrapper used to implement the polymorphic API. @@ -94,22 +94,22 @@ struct PassModel : PassConcept<IRUnitT, AnalysisManagerT, ExtraArgTs...> { StringRef name() const override { return PassT::name(); } - template <typename T> - using has_required_t = decltype(std::declval<T &>().isRequired()); - - template <typename T> - static std::enable_if_t<is_detected<has_required_t, T>::value, bool> - passIsRequiredImpl() { - return T::isRequired(); - } - template <typename T> - static std::enable_if_t<!is_detected<has_required_t, T>::value, bool> - passIsRequiredImpl() { - return false; - } - - bool isRequired() const override { return passIsRequiredImpl<PassT>(); } - + template <typename T> + using has_required_t = decltype(std::declval<T &>().isRequired()); + + template <typename T> + static std::enable_if_t<is_detected<has_required_t, T>::value, bool> + passIsRequiredImpl() { + return T::isRequired(); + } + template <typename T> + static std::enable_if_t<!is_detected<has_required_t, T>::value, bool> + passIsRequiredImpl() { + return false; + } + + bool isRequired() const override { return passIsRequiredImpl<PassT>(); } + PassT Pass; }; |