1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00

add some WeakVH::operator='s. Without these, assigning

a Value* to a WeakVH was constructing a temporary WeakVH
(due to the implicit assignment operator).  This avoids
that cost.

llvm-svn: 83704
This commit is contained in:
Chris Lattner 2009-10-10 08:27:29 +00:00
parent 70895041a7
commit 54621efc37

View File

@ -54,6 +54,8 @@ private:
PointerIntPair<ValueHandleBase**, 2, HandleBaseKind> PrevPair; PointerIntPair<ValueHandleBase**, 2, HandleBaseKind> PrevPair;
ValueHandleBase *Next; ValueHandleBase *Next;
Value *VP; Value *VP;
explicit ValueHandleBase(const ValueHandleBase&); // DO NOT IMPLEMENT.
public: public:
explicit ValueHandleBase(HandleBaseKind Kind) explicit ValueHandleBase(HandleBaseKind Kind)
: PrevPair(0, Kind), Next(0), VP(0) {} : PrevPair(0, Kind), Next(0), VP(0) {}
@ -131,6 +133,13 @@ public:
WeakVH(const WeakVH &RHS) WeakVH(const WeakVH &RHS)
: ValueHandleBase(Weak, RHS) {} : ValueHandleBase(Weak, RHS) {}
Value *operator=(Value *RHS) {
return ValueHandleBase::operator=(RHS);
}
Value *operator=(const ValueHandleBase &RHS) {
return ValueHandleBase::operator=(RHS);
}
operator Value*() const { operator Value*() const {
return getValPtr(); return getValPtr();
} }