[llvm] r231136 - Revert "Remove the explicit SDNodeIterator::operator= in favor of the implicit default"
David Blaikie
dblaikie at gmail.com
Tue Mar 3 13:18:16 PST 2015
Author: dblaikie
Date: Tue Mar 3 15:18:16 2015
New Revision: 231136
URL: http://llvm.org/viewvc/llvm-project?rev=231136&view=rev
Log:
Revert "Remove the explicit SDNodeIterator::operator= in favor of the implicit default"
Accidentally committed a few more of these cleanup changes than
intended. Still breaking these out & tidying them up.
This reverts commit r231135.
Modified:
llvm/trunk/include/llvm/Analysis/CallGraph.h
llvm/trunk/include/llvm/Analysis/IntervalIterator.h
llvm/trunk/include/llvm/Analysis/RegionIterator.h
llvm/trunk/include/llvm/CodeGen/LiveInterval.h
llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
llvm/trunk/include/llvm/IR/CFG.h
llvm/trunk/include/llvm/IR/ValueHandle.h
llvm/trunk/include/llvm/MC/MCContext.h
llvm/trunk/include/llvm/Support/CommandLine.h
llvm/trunk/include/llvm/Support/Format.h
llvm/trunk/include/llvm/Support/YAMLParser.h
llvm/trunk/lib/Analysis/CFLAliasAnalysis.cpp
llvm/trunk/lib/AsmParser/LLParser.cpp
llvm/trunk/lib/AsmParser/LLParser.h
llvm/trunk/lib/CodeGen/LiveInterval.cpp
llvm/trunk/lib/CodeGen/LiveStackAnalysis.cpp
llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/trunk/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
llvm/trunk/tools/llvm-diff/DiffLog.h
llvm/trunk/unittests/ADT/DenseMapTest.cpp
llvm/trunk/unittests/ADT/ilistTest.cpp
llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp
Modified: llvm/trunk/include/llvm/Analysis/CallGraph.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/CallGraph.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Analysis/CallGraph.h (original)
+++ llvm/trunk/include/llvm/Analysis/CallGraph.h Tue Mar 3 15:18:16 2015
@@ -104,12 +104,6 @@ class CallGraph {
public:
CallGraph(Module &M);
- // Copyable for syntax's sake, but rely on RVO such that this is never called.
- // Should really make this type legitimately movable instead, possibly my
- // making FunctionMap values and the CallsExternalCode member unique_ptrs,
- // then adding some internal helper objects that can call
- // "allReferencesDropped" on those elements before their final destruction.
- CallGraph(const CallGraph&);
~CallGraph();
void print(raw_ostream &OS) const;
Modified: llvm/trunk/include/llvm/Analysis/IntervalIterator.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/IntervalIterator.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Analysis/IntervalIterator.h (original)
+++ llvm/trunk/include/llvm/Analysis/IntervalIterator.h Tue Mar 3 15:18:16 2015
@@ -104,8 +104,6 @@ public:
llvm_unreachable("ProcessInterval should never fail for first interval!");
}
}
- // Declare but don't define, rely on RVO to optimize this away.
- IntervalIterator(const IntervalIterator&);
IntervalIterator(IntervalPartition &IP, bool OwnMemory) : IOwnMem(OwnMemory) {
OrigContainer = &IP;
Modified: llvm/trunk/include/llvm/Analysis/RegionIterator.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/RegionIterator.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Analysis/RegionIterator.h (original)
+++ llvm/trunk/include/llvm/Analysis/RegionIterator.h Tue Mar 3 15:18:16 2015
@@ -146,8 +146,6 @@ public:
return tmp;
}
- RNSuccIterator(const RNSuccIterator&) = default;
-
inline const Self &operator=(const Self &I) {
if (this != &I) {
assert(getNode()->getParent() == I.getNode()->getParent()
@@ -243,8 +241,6 @@ public:
return tmp;
}
- RNSuccIterator(const RNSuccIterator&) = default;
-
inline const Self &operator=(const Self &I) {
if (this != &I) {
assert(Node->getParent() == I.Node->getParent()
Modified: llvm/trunk/include/llvm/CodeGen/LiveInterval.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/LiveInterval.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/LiveInterval.h (original)
+++ llvm/trunk/include/llvm/CodeGen/LiveInterval.h Tue Mar 3 15:18:16 2015
@@ -199,7 +199,7 @@ namespace llvm {
// of live ranges of physical registers in computeRegUnitRange.
// After that the set is flushed to the segment vector and deleted.
typedef std::set<Segment> SegmentSet;
- std::unique_ptr<SegmentSet> segmentSet;
+ SegmentSet *segmentSet;
typedef Segments::iterator iterator;
iterator begin() { return segments.begin(); }
@@ -218,13 +218,15 @@ namespace llvm {
const_vni_iterator vni_end() const { return valnos.end(); }
/// Constructs a new LiveRange object.
- LiveRange(bool UseSegmentSet = false)
- : segmentSet(UseSegmentSet ? llvm::make_unique<SegmentSet>()
- : nullptr) {}
+ LiveRange(bool UseSegmentSet = false) : segmentSet(nullptr) {
+ if (UseSegmentSet)
+ segmentSet = new SegmentSet();
+ }
/// Constructs a new LiveRange object by copying segments and valnos from
/// another LiveRange.
- LiveRange(const LiveRange &Other, BumpPtrAllocator &Allocator) {
+ LiveRange(const LiveRange &Other, BumpPtrAllocator &Allocator)
+ : segmentSet(nullptr) {
assert(Other.segmentSet == nullptr &&
"Copying of LiveRanges with active SegmentSets is not supported");
@@ -238,6 +240,8 @@ namespace llvm {
}
}
+ ~LiveRange() { delete segmentSet; }
+
/// advanceTo - Advance the specified iterator to point to the Segment
/// containing the specified position, or end() if the position is past the
/// end of the range. If no Segment contains this position, but the
@@ -741,6 +745,8 @@ namespace llvm {
#endif
private:
+ LiveInterval& operator=(const LiveInterval& rhs) = delete;
+
/// Appends @p Range to SubRanges list.
void appendSubRange(SubRange *Range) {
Range->Next = SubRanges;
Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h (original)
+++ llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h Tue Mar 3 15:18:16 2015
@@ -2063,6 +2063,12 @@ public:
}
bool operator!=(const SDNodeIterator& x) const { return !operator==(x); }
+ const SDNodeIterator &operator=(const SDNodeIterator &I) {
+ assert(I.Node == Node && "Cannot assign iterators to two different nodes!");
+ Operand = I.Operand;
+ return *this;
+ }
+
pointer operator*() const {
return Node->getOperand(Operand).getNode();
}
Modified: llvm/trunk/include/llvm/IR/CFG.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/CFG.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/CFG.h (original)
+++ llvm/trunk/include/llvm/IR/CFG.h Tue Mar 3 15:18:16 2015
@@ -132,13 +132,11 @@ private:
/// \brief Proxy object to allow write access in operator[]
class SuccessorProxy {
Self it;
- friend class SuccIterator;
- SuccessorProxy(const SuccessorProxy&) = default;
public:
explicit SuccessorProxy(const Self &it) : it(it) {}
- SuccessorProxy &operator=(const SuccessorProxy &r) {
+ SuccessorProxy &operator=(SuccessorProxy r) {
*this = reference(r);
return *this;
}
@@ -167,8 +165,6 @@ public:
idx = 0;
}
- SuccIterator(const SuccIterator&) = default;
-
inline const Self &operator=(const Self &I) {
assert(Term == I.Term &&"Cannot assign iterators to two different blocks!");
idx = I.idx;
Modified: llvm/trunk/include/llvm/IR/ValueHandle.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/ValueHandle.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/ValueHandle.h (original)
+++ llvm/trunk/include/llvm/IR/ValueHandle.h Tue Mar 3 15:18:16 2015
@@ -51,7 +51,6 @@ protected:
Tracking,
Weak
};
- ValueHandleBase(const ValueHandleBase&) = default;
private:
PointerIntPair<ValueHandleBase**, 2, HandleBaseKind> PrevPair;
@@ -59,6 +58,7 @@ private:
Value* V;
+ ValueHandleBase(const ValueHandleBase&) = delete;
public:
explicit ValueHandleBase(HandleBaseKind Kind)
: PrevPair(nullptr, Kind), Next(nullptr), V(nullptr) {}
@@ -144,10 +144,6 @@ public:
WeakVH(Value *P) : ValueHandleBase(Weak, P) {}
WeakVH(const WeakVH &RHS)
: ValueHandleBase(Weak, RHS) {}
- // Questionable - these are stored in a vector in AssumptionCache (perhaps
- // other copies too) and need to be copied. When copied, how would they
- // properly insert into the use list?
- WeakVH&operator=(const WeakVH &RHS) = default;
Value *operator=(Value *RHS) {
return ValueHandleBase::operator=(RHS);
@@ -349,8 +345,7 @@ protected:
CallbackVH(const CallbackVH &RHS)
: ValueHandleBase(Callback, RHS) {}
- virtual ~CallbackVH() = default;
- CallbackVH &operator=(const CallbackVH &) = default;
+ virtual ~CallbackVH() {}
void setValPtr(Value *P) {
ValueHandleBase::operator=(P);
Modified: llvm/trunk/include/llvm/MC/MCContext.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCContext.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCContext.h (original)
+++ llvm/trunk/include/llvm/MC/MCContext.h Tue Mar 3 15:18:16 2015
@@ -477,7 +477,7 @@ namespace llvm {
/// allocator supports it).
/// @return The allocated memory. Could be NULL.
inline void *operator new(size_t Bytes, llvm::MCContext &C,
- size_t Alignment = 16) LLVM_NOEXCEPT {
+ size_t Alignment = 16) throw () {
return C.Allocate(Bytes, Alignment);
}
/// @brief Placement delete companion to the new above.
@@ -487,7 +487,7 @@ inline void *operator new(size_t Bytes,
/// is called implicitly by the compiler if a placement new expression using
/// the MCContext throws in the object constructor.
inline void operator delete(void *Ptr, llvm::MCContext &C, size_t)
- LLVM_NOEXCEPT {
+ throw () {
C.Deallocate(Ptr);
}
@@ -511,7 +511,7 @@ inline void operator delete(void *Ptr, l
/// allocator supports it).
/// @return The allocated memory. Could be NULL.
inline void *operator new[](size_t Bytes, llvm::MCContext& C,
- size_t Alignment = 16) LLVM_NOEXCEPT {
+ size_t Alignment = 16) throw () {
return C.Allocate(Bytes, Alignment);
}
@@ -521,7 +521,7 @@ inline void *operator new[](size_t Bytes
/// invoking it directly; see the new[] operator for more details. This operator
/// is called implicitly by the compiler if a placement new[] expression using
/// the MCContext throws in the object constructor.
-inline void operator delete[](void *Ptr, llvm::MCContext &C) LLVM_NOEXCEPT {
+inline void operator delete[](void *Ptr, llvm::MCContext &C) throw () {
C.Deallocate(Ptr);
}
Modified: llvm/trunk/include/llvm/Support/CommandLine.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/CommandLine.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/CommandLine.h (original)
+++ llvm/trunk/include/llvm/Support/CommandLine.h Tue Mar 3 15:18:16 2015
@@ -352,13 +352,9 @@ struct cat {
// Support value comparison outside the template.
struct GenericOptionValue {
- virtual ~GenericOptionValue() = default;
+ virtual ~GenericOptionValue() {}
virtual bool compare(const GenericOptionValue &V) const = 0;
-protected:
- GenericOptionValue() = default;
- GenericOptionValue(const GenericOptionValue&) = default;
- GenericOptionValue &operator=(const GenericOptionValue &) = default;
private:
virtual void anchor();
};
@@ -390,9 +386,6 @@ struct OptionValueBase : public GenericO
template <class DataType> class OptionValueCopy : public GenericOptionValue {
DataType Value;
bool Valid;
-protected:
- OptionValueCopy(const OptionValueCopy&) = default;
- OptionValueCopy &operator=(const OptionValueCopy&) = default;
public:
OptionValueCopy() : Valid(false) {}
@@ -424,10 +417,6 @@ public:
template <class DataType>
struct OptionValueBase<DataType, false> : OptionValueCopy<DataType> {
typedef DataType WrapperType;
-protected:
- OptionValueBase() = default;
- OptionValueBase(const OptionValueBase&) = default;
- OptionValueBase &operator=(const OptionValueBase&) = default;
};
// Top-level option class.
@@ -732,8 +721,6 @@ public:
virtual void anchor();
protected:
- basic_parser_impl(const basic_parser_impl&) = default;
-
// A helper for basic_parser::printOptionDiff.
void printOptionName(const Option &O, size_t GlobalWidth) const;
};
@@ -742,9 +729,6 @@ protected:
// a typedef for the provided data type.
//
template <class DataType> class basic_parser : public basic_parser_impl {
-protected:
- // Workaround PR22763
- basic_parser(const basic_parser& RHS) : basic_parser_impl(RHS) {}
public:
basic_parser(Option &O) : basic_parser_impl(O) {}
typedef DataType parser_data_type;
@@ -754,7 +738,7 @@ public:
//--------------------------------------------------
// parser<bool>
//
-template <> class parser<bool> final : public basic_parser<bool> {
+template <> class parser<bool> : public basic_parser<bool> {
public:
parser(Option &O) : basic_parser(O) {}
@@ -781,7 +765,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basi
//--------------------------------------------------
// parser<boolOrDefault>
-template <> class parser<boolOrDefault> final : public basic_parser<boolOrDefault> {
+template <> class parser<boolOrDefault> : public basic_parser<boolOrDefault> {
public:
parser(Option &O) : basic_parser(O) {}
@@ -807,7 +791,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basi
//--------------------------------------------------
// parser<int>
//
-template <> class parser<int> final : public basic_parser<int> {
+template <> class parser<int> : public basic_parser<int> {
public:
parser(Option &O) : basic_parser(O) {}
@@ -829,7 +813,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basi
//--------------------------------------------------
// parser<unsigned>
//
-template <> class parser<unsigned> final : public basic_parser<unsigned> {
+template <> class parser<unsigned> : public basic_parser<unsigned> {
public:
parser(Option &O) : basic_parser(O) {}
@@ -852,7 +836,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basi
// parser<unsigned long long>
//
template <>
-class parser<unsigned long long> final : public basic_parser<unsigned long long> {
+class parser<unsigned long long> : public basic_parser<unsigned long long> {
public:
parser(Option &O) : basic_parser(O) {}
@@ -875,7 +859,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basi
//--------------------------------------------------
// parser<double>
//
-template <> class parser<double> final : public basic_parser<double> {
+template <> class parser<double> : public basic_parser<double> {
public:
parser(Option &O) : basic_parser(O) {}
@@ -897,7 +881,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basi
//--------------------------------------------------
// parser<float>
//
-template <> class parser<float> final : public basic_parser<float> {
+template <> class parser<float> : public basic_parser<float> {
public:
parser(Option &O) : basic_parser(O) {}
@@ -919,7 +903,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basi
//--------------------------------------------------
// parser<std::string>
//
-template <> class parser<std::string> final : public basic_parser<std::string> {
+template <> class parser<std::string> : public basic_parser<std::string> {
public:
parser(Option &O) : basic_parser(O) {}
@@ -944,7 +928,7 @@ EXTERN_TEMPLATE_INSTANTIATION(class basi
//--------------------------------------------------
// parser<char>
//
-template <> class parser<char> final : public basic_parser<char> {
+template <> class parser<char> : public basic_parser<char> {
public:
parser(Option &O) : basic_parser(O) {}
Modified: llvm/trunk/include/llvm/Support/Format.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Format.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/Format.h (original)
+++ llvm/trunk/include/llvm/Support/Format.h Tue Mar 3 15:18:16 2015
@@ -38,7 +38,6 @@ class format_object_base {
protected:
const char *Fmt;
~format_object_base() {} // Disallow polymorphic deletion.
- format_object_base(const format_object_base&) = default;
virtual void home(); // Out of line virtual method.
/// Call snprintf() for this object, on the given buffer and size.
Modified: llvm/trunk/include/llvm/Support/YAMLParser.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/YAMLParser.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/YAMLParser.h (original)
+++ llvm/trunk/include/llvm/Support/YAMLParser.h Tue Mar 3 15:18:16 2015
@@ -145,11 +145,11 @@ public:
unsigned int getType() const { return TypeID; }
void *operator new(size_t Size, BumpPtrAllocator &Alloc,
- size_t Alignment = 16) LLVM_NOEXCEPT {
+ size_t Alignment = 16) throw() {
return Alloc.Allocate(Size, Alignment);
}
- void operator delete(void *Ptr, BumpPtrAllocator &Alloc, size_t Size) LLVM_NOEXCEPT {
+ void operator delete(void *Ptr, BumpPtrAllocator &Alloc, size_t Size) throw() {
Alloc.Deallocate(Ptr, Size);
}
@@ -157,7 +157,7 @@ protected:
std::unique_ptr<Document> &Doc;
SMRange SourceRange;
- void operator delete(void *) LLVM_NOEXCEPT {}
+ void operator delete(void *) throw() {}
virtual ~Node() {}
Modified: llvm/trunk/lib/Analysis/CFLAliasAnalysis.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/CFLAliasAnalysis.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/CFLAliasAnalysis.cpp (original)
+++ llvm/trunk/lib/Analysis/CFLAliasAnalysis.cpp Tue Mar 3 15:18:16 2015
@@ -151,13 +151,15 @@ struct FunctionInfo {
struct CFLAliasAnalysis;
-struct FunctionHandle final : public CallbackVH {
+struct FunctionHandle : public CallbackVH {
FunctionHandle(Function *Fn, CFLAliasAnalysis *CFLAA)
: CallbackVH(Fn), CFLAA(CFLAA) {
assert(Fn != nullptr);
assert(CFLAA != nullptr);
}
+ virtual ~FunctionHandle() {}
+
void deleted() override { removeSelfFromCache(); }
void allUsesReplacedWith(Value *) override { removeSelfFromCache(); }
Modified: llvm/trunk/lib/AsmParser/LLParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLParser.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/lib/AsmParser/LLParser.cpp (original)
+++ llvm/trunk/lib/AsmParser/LLParser.cpp Tue Mar 3 15:18:16 2015
@@ -2365,9 +2365,9 @@ bool LLParser::ParseValID(ValID &ID, Per
ParseToken(lltok::rbrace, "expected end of struct constant"))
return true;
- ID.ConstantStructElts.reset(new Constant*[Elts.size()]);
+ ID.ConstantStructElts = new Constant*[Elts.size()];
ID.UIntVal = Elts.size();
- memcpy(ID.ConstantStructElts.get(), Elts.data(), Elts.size()*sizeof(Elts[0]));
+ memcpy(ID.ConstantStructElts, Elts.data(), Elts.size()*sizeof(Elts[0]));
ID.Kind = ValID::t_ConstantStruct;
return false;
}
@@ -2386,8 +2386,8 @@ bool LLParser::ParseValID(ValID &ID, Per
return true;
if (isPackedStruct) {
- ID.ConstantStructElts.reset(new Constant*[Elts.size()]);
- memcpy(ID.ConstantStructElts.get(), Elts.data(), Elts.size()*sizeof(Elts[0]));
+ ID.ConstantStructElts = new Constant*[Elts.size()];
+ memcpy(ID.ConstantStructElts, Elts.data(), Elts.size()*sizeof(Elts[0]));
ID.UIntVal = Elts.size();
ID.Kind = ValID::t_PackedConstantStruct;
return false;
@@ -2512,12 +2512,7 @@ bool LLParser::ParseValID(ValID &ID, Per
if (!F) {
// Make a global variable as a placeholder for this reference.
- GlobalValue *&FwdRef =
- ForwardRefBlockAddresses.insert(std::make_pair(
- std::move(Fn),
- std::map<ValID, GlobalValue *>()))
- .first->second.insert(std::make_pair(std::move(Label), nullptr))
- .first->second;
+ GlobalValue *&FwdRef = ForwardRefBlockAddresses[Fn][Label];
if (!FwdRef)
FwdRef = new GlobalVariable(*M, Type::getInt8Ty(Context), false,
GlobalValue::InternalLinkage, nullptr, "");
@@ -3947,8 +3942,8 @@ bool LLParser::ConvertValIDToValue(Type
return Error(ID.Loc, "element " + Twine(i) +
" of struct initializer doesn't match struct element type");
- V = ConstantStruct::get(
- ST, makeArrayRef(ID.ConstantStructElts.get(), ID.UIntVal));
+ V = ConstantStruct::get(ST, makeArrayRef(ID.ConstantStructElts,
+ ID.UIntVal));
} else
return Error(ID.Loc, "constant expression type mismatch");
return false;
Modified: llvm/trunk/lib/AsmParser/LLParser.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLParser.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/lib/AsmParser/LLParser.h (original)
+++ llvm/trunk/lib/AsmParser/LLParser.h Tue Mar 3 15:18:16 2015
@@ -62,9 +62,13 @@ namespace llvm {
APSInt APSIntVal;
APFloat APFloatVal;
Constant *ConstantVal;
- std::unique_ptr<Constant*[]> ConstantStructElts;
+ Constant **ConstantStructElts;
ValID() : Kind(t_LocalID), APFloatVal(0.0) {}
+ ~ValID() {
+ if (Kind == t_ConstantStruct || Kind == t_PackedConstantStruct)
+ delete [] ConstantStructElts;
+ }
bool operator<(const ValID &RHS) const {
if (Kind == t_LocalID || Kind == t_GlobalID)
Modified: llvm/trunk/lib/CodeGen/LiveInterval.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveInterval.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/LiveInterval.cpp (original)
+++ llvm/trunk/lib/CodeGen/LiveInterval.cpp Tue Mar 3 15:18:16 2015
@@ -743,6 +743,7 @@ void LiveRange::flushSegmentSet() {
segments.empty() &&
"segment set can be used only initially before switching to the array");
segments.append(segmentSet->begin(), segmentSet->end());
+ delete segmentSet;
segmentSet = nullptr;
verify();
}
Modified: llvm/trunk/lib/CodeGen/LiveStackAnalysis.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveStackAnalysis.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/LiveStackAnalysis.cpp (original)
+++ llvm/trunk/lib/CodeGen/LiveStackAnalysis.cpp Tue Mar 3 15:18:16 2015
@@ -61,10 +61,8 @@ LiveStacks::getOrCreateInterval(int Slot
assert(Slot >= 0 && "Spill slot indice must be >= 0");
SS2IntervalMap::iterator I = S2IMap.find(Slot);
if (I == S2IMap.end()) {
- I = S2IMap.emplace(std::piecewise_construct, std::forward_as_tuple(Slot),
- std::forward_as_tuple(
- TargetRegisterInfo::index2StackSlot(Slot), 0.0F))
- .first;
+ I = S2IMap.insert(I, std::make_pair(Slot,
+ LiveInterval(TargetRegisterInfo::index2StackSlot(Slot), 0.0F)));
S2RCMap.insert(std::make_pair(Slot, RC));
} else {
// Use the largest common subclass register class.
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Tue Mar 3 15:18:16 2015
@@ -9115,6 +9115,9 @@ struct LoadedSlice {
unsigned Shift = 0, SelectionDAG *DAG = nullptr)
: Inst(Inst), Origin(Origin), Shift(Shift), DAG(DAG) {}
+ LoadedSlice(const LoadedSlice &LS)
+ : Inst(LS.Inst), Origin(LS.Origin), Shift(LS.Shift), DAG(LS.DAG) {}
+
/// \brief Get the bits used in a chunk of bits \p BitWidth large.
/// \return Result is \p BitWidth and has used bits set to 1 and
/// not used bits set to 0.
Modified: llvm/trunk/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp Tue Mar 3 15:18:16 2015
@@ -319,7 +319,7 @@ void A57ChainingConstraint::addInterChai
static bool regJustKilledBefore(const LiveIntervals &LIs, unsigned reg,
const MachineInstr &MI) {
- const LiveInterval &LI = LIs.getInterval(reg);
+ LiveInterval LI = LIs.getInterval(reg);
SlotIndex SI = LIs.getInstructionIndex(&MI);
return LI.expiredAt(SI);
}
Modified: llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp Tue Mar 3 15:18:16 2015
@@ -548,7 +548,6 @@ public:
}
PhiState(Value *b) : status(Base), base(b) {}
PhiState() : status(Unknown), base(nullptr) {}
- PhiState &operator=(const PhiState &) = default;
PhiState(const PhiState &other) : status(other.status), base(other.base) {
assert(status != Base || base);
}
Modified: llvm/trunk/tools/llvm-diff/DiffLog.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-diff/DiffLog.h?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-diff/DiffLog.h (original)
+++ llvm/trunk/tools/llvm-diff/DiffLog.h Tue Mar 3 15:18:16 2015
@@ -40,8 +40,6 @@ namespace llvm {
public:
LogBuilder(Consumer &c, StringRef Format)
: consumer(c), Format(Format) {}
- // Relying on RVO, not actually copyable.
- LogBuilder(const LogBuilder&);
LogBuilder &operator<<(Value *V) {
Arguments.push_back(V);
Modified: llvm/trunk/unittests/ADT/DenseMapTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/DenseMapTest.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/unittests/ADT/DenseMapTest.cpp (original)
+++ llvm/trunk/unittests/ADT/DenseMapTest.cpp Tue Mar 3 15:18:16 2015
@@ -46,7 +46,6 @@ public:
CtorTester(const CtorTester &Arg) : Value(Arg.Value) {
EXPECT_TRUE(Constructed.insert(this).second);
}
- CtorTester &operator=(const CtorTester &) = default;
~CtorTester() {
EXPECT_EQ(1u, Constructed.erase(this));
}
Modified: llvm/trunk/unittests/ADT/ilistTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/ilistTest.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/unittests/ADT/ilistTest.cpp (original)
+++ llvm/trunk/unittests/ADT/ilistTest.cpp Tue Mar 3 15:18:16 2015
@@ -21,9 +21,7 @@ struct Node : ilist_node<Node> {
int Value;
Node() {}
- Node(int Value) : Value(Value) {}
- Node(const Node&) = default;
- Node(Node &&RHS) : Value(RHS.Value) { RHS.Value = -1; }
+ Node(int _Value) : Value(_Value) {}
~Node() { Value = -1; }
};
Modified: llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp?rev=231136&r1=231135&r2=231136&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp Tue Mar 3 15:18:16 2015
@@ -441,8 +441,6 @@ struct MatchableInfo {
: AsmVariantID(0), AsmString(Alias->AsmString), TheDef(Alias->TheDef), DefRec(Alias.release()) {
}
- MatchableInfo(const MatchableInfo&) = default;
-
~MatchableInfo() {
delete DefRec.dyn_cast<const CodeGenInstAlias*>();
}
More information about the llvm-commits
mailing list