[LoopVer] Add missing std::move
authorAdam Nemet <anemet@apple.com>
Thu, 30 Jul 2015 04:21:13 +0000 (04:21 +0000)
committerAdam Nemet <anemet@apple.com>
Thu, 30 Jul 2015 04:21:13 +0000 (04:21 +0000)
The reason I was passing this vector by value in the constructor so that
I wouldn't have to copy when initializing the corresponding member but
then I forgot the std::move.

The use-case is LoopDistribution which filters the checks then
std::moves it to LoopVersioning's constructor.  With this interface we
can avoid any copies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243616 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/LoopVersioning.cpp

index b2182bd64092608a8ef633795c133e3a49a811cd..e4af2e3cc95483f91441754318bb53b4194d917d 100644 (file)
@@ -27,7 +27,8 @@ LoopVersioning::LoopVersioning(
     const LoopAccessInfo &LAI, Loop *L, LoopInfo *LI, DominatorTree *DT,
     const SmallVector<int, 8> *PtrToPartition)
     : VersionedLoop(L), NonVersionedLoop(nullptr),
-      PtrToPartition(PtrToPartition), Checks(Checks), LAI(LAI), LI(LI), DT(DT) {
+      PtrToPartition(PtrToPartition), Checks(std::move(Checks)), LAI(LAI),
+      LI(LI), DT(DT) {
   assert(L->getExitBlock() && "No single exit block");
   assert(L->getLoopPreheader() && "No preheader");
 }