From d2aa336c9adcdbe6a2479ebb302fa0329004e652 Mon Sep 17 00:00:00 2001 From: Fedor Sergeev Date: Sat, 15 Sep 2018 14:56:12 +0000 Subject: [PATCH] [NFC] minor cleanup in PassManagerInternal.h A few changes found necessary for upcoming PassInstrumentation patch: - name() methods made const - properly forward arguments in AnalysisPassModel::run Separated out of the main D47858 patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@342325 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/PassManagerInternal.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/include/llvm/IR/PassManagerInternal.h b/include/llvm/IR/PassManagerInternal.h index 16a3258b412..5ad68be6274 100644 --- a/include/llvm/IR/PassManagerInternal.h +++ b/include/llvm/IR/PassManagerInternal.h @@ -48,7 +48,7 @@ struct PassConcept { ExtraArgTs... ExtraArgs) = 0; /// Polymorphic method to access the name of a pass. - virtual StringRef name() = 0; + virtual StringRef name() const = 0; }; /// A template wrapper used to implement the polymorphic API. @@ -80,7 +80,7 @@ struct PassModel : PassConcept { return Pass.run(IR, AM, ExtraArgs...); } - StringRef name() override { return PassT::name(); } + StringRef name() const override { return PassT::name(); } PassT Pass; }; @@ -250,7 +250,7 @@ struct AnalysisPassConcept { ExtraArgTs... ExtraArgs) = 0; /// Polymorphic method to access the name of a pass. - virtual StringRef name() = 0; + virtual StringRef name() const = 0; }; /// Wrapper to model the analysis pass concept. @@ -290,13 +290,14 @@ struct AnalysisPassModel : AnalysisPassConcept> run(IRUnitT &IR, AnalysisManager &AM, ExtraArgTs... ExtraArgs) override { - return llvm::make_unique(Pass.run(IR, AM, ExtraArgs...)); + return llvm::make_unique( + Pass.run(IR, AM, std::forward(ExtraArgs)...)); } /// The model delegates to a static \c PassT::name method. /// /// The returned string ref must point to constant immutable data! - StringRef name() override { return PassT::name(); } + StringRef name() const override { return PassT::name(); } PassT Pass; }; -- 2.11.0