From: Justin Lebar Date: Sat, 3 Dec 2016 19:49:19 +0000 (+0000) Subject: [PM] Make AnalysisManager::registerPass take its parameter by universal reference. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0f33f0738ff1e9097e7821b2734e645deb269cf5;p=llvm [PM] Make AnalysisManager::registerPass take its parameter by universal reference. Summary: Previously, we were forcing a copy if you passed an lvalue argument; now we'll take it by reference. Reviewers: chandlerc Subscribers: mehdi_amini, silvas, llvm-commits Differential Revision: https://reviews.llvm.org/D27370 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288594 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/IR/PassManager.h b/include/llvm/IR/PassManager.h index a746ebb469d..92984861c7b 100644 --- a/include/llvm/IR/PassManager.h +++ b/include/llvm/IR/PassManager.h @@ -548,7 +548,8 @@ public: /// interface also lends itself to minimizing the number of times we have to /// do lookups for analyses or construct complex passes only to throw them /// away. - template bool registerPass(PassBuilderT PassBuilder) { + template + bool registerPass(PassBuilderT &&PassBuilder) { typedef decltype(PassBuilder()) PassT; typedef detail::AnalysisPassModel