[PATCH] D27370: [PM] Make AnalysisManager::registerPass take its parameter by universal reference.

Justin Lebar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 2 16:01:22 PST 2016


jlebar created this revision.
jlebar added a reviewer: chandlerc.
jlebar added subscribers: llvm-commits, silvas.
Herald added a subscriber: mehdi_amini.

Previously, we were forcing a copy if you passed an lvalue argument; now
we'll take it by reference.


https://reviews.llvm.org/D27370

Files:
  llvm/include/llvm/IR/PassManager.h


Index: llvm/include/llvm/IR/PassManager.h
===================================================================
--- llvm/include/llvm/IR/PassManager.h
+++ llvm/include/llvm/IR/PassManager.h
@@ -548,7 +548,8 @@
   /// 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 <typename PassBuilderT> bool registerPass(PassBuilderT PassBuilder) {
+  template <typename PassBuilderT>
+  bool registerPass(PassBuilderT &&PassBuilder) {
     typedef decltype(PassBuilder()) PassT;
     typedef detail::AnalysisPassModel<IRUnitT, PassT, PreservedAnalyses,
                                       Invalidator, ExtraArgTs...>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27370.80145.patch
Type: text/x-patch
Size: 733 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161203/d5d331e8/attachment.bin>


More information about the llvm-commits mailing list