From 1551f6f1b259b10c68867c581d5bcd796653e61d Mon Sep 17 00:00:00 2001 From: Clement Courbet Date: Tue, 21 May 2019 14:24:46 +0000 Subject: [PATCH] Revert r361257 "[MergeICmps][NFC] Make BCEAtom move-only." Broke some bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361263 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/MergeICmps.cpp | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/lib/Transforms/Scalar/MergeICmps.cpp b/lib/Transforms/Scalar/MergeICmps.cpp index e789d9d22b6..161e6495818 100644 --- a/lib/Transforms/Scalar/MergeICmps.cpp +++ b/lib/Transforms/Scalar/MergeICmps.cpp @@ -81,20 +81,6 @@ struct BCEAtom { BCEAtom(GetElementPtrInst *GEP, LoadInst *LoadI, int BaseId, APInt Offset) : GEP(GEP), LoadI(LoadI), BaseId(BaseId), Offset(Offset) {} - BCEAtom(const BCEAtom &) = delete; - BCEAtom &operator=(const BCEAtom &) = delete; - - BCEAtom(BCEAtom &&that) = default; - BCEAtom &operator=(BCEAtom &&that) { - if (this == &that) - return *this; - GEP = that.GEP; - LoadI = that.LoadI; - BaseId = that.BaseId; - Offset = std::move(that.Offset); - return *this; - } - // We want to order BCEAtoms by (Base, Offset). However we cannot use // the pointer values for Base because these are non-deterministic. // To make sure that the sort order is stable, we first assign to each atom @@ -189,7 +175,7 @@ class BCECmpBlock { BCECmpBlock() {} BCECmpBlock(BCEAtom L, BCEAtom R, int SizeBits) - : Lhs_(std::move(L)), Rhs_(std::move(R)), SizeBits_(SizeBits) { + : Lhs_(L), Rhs_(R), SizeBits_(SizeBits) { if (Rhs_ < Lhs_) std::swap(Rhs_, Lhs_); } @@ -390,7 +376,7 @@ BCECmpBlock visitCmpBlock(Value *const Val, BasicBlock *const Block, } static inline void enqueueBlock(std::vector &Comparisons, - BCECmpBlock &&Comparison) { + BCECmpBlock &Comparison) { LLVM_DEBUG(dbgs() << "Block '" << Comparison.BB->getName() << "': Found cmp of " << Comparison.SizeBits() << " bits between " << Comparison.Lhs().BaseId << " + " @@ -398,7 +384,7 @@ static inline void enqueueBlock(std::vector &Comparisons, << Comparison.Rhs().BaseId << " + " << Comparison.Rhs().Offset << "\n"); LLVM_DEBUG(dbgs() << "\n"); - Comparisons.push_back(std::move(Comparison)); + Comparisons.push_back(Comparison); } // A chain of comparisons. @@ -470,7 +456,7 @@ BCECmpChain::BCECmpChain(const std::vector &Blocks, PHINode &Phi, << "Split initial block '" << Comparison.BB->getName() << "' that does extra work besides compare\n"); Comparison.RequireSplit = true; - enqueueBlock(Comparisons, std::move(Comparison)); + enqueueBlock(Comparisons, Comparison); } else { LLVM_DEBUG(dbgs() << "ignoring initial block '" << Comparison.BB->getName() @@ -503,7 +489,7 @@ BCECmpChain::BCECmpChain(const std::vector &Blocks, PHINode &Phi, // We could still merge bb1 and bb2 though. return; } - enqueueBlock(Comparisons, std::move(Comparison)); + enqueueBlock(Comparisons, Comparison); } // It is possible we have no suitable comparison to merge. @@ -521,7 +507,7 @@ BCECmpChain::BCECmpChain(const std::vector &Blocks, PHINode &Phi, // semantics because we are only accessing dereferencable memory. llvm::sort(Comparisons_, [](const BCECmpBlock &LhsBlock, const BCECmpBlock &RhsBlock) { - return LhsBlock.Rhs() < RhsBlock.Lhs(); + return LhsBlock.Lhs() < RhsBlock.Lhs(); }); #ifdef MERGEICMPS_DOT_ON errs() << "AFTER REORDERING:\n\n"; -- 2.11.0