49 return static_cast<Use**
>(
P);
51 enum { NumLowBitsAvailable = 2 };
75 if (Val) removeFromList();
78 enum PrevPtrTag { zeroDigitTag
84 Use(PrevPtrTag tag) : Val(0) {
90 operator Value*()
const {
return Val; }
94 Value *
get()
const {
return Val; }
123 static void zap(
Use *Start,
const Use *Stop,
bool del =
false);
126 const Use* getImpliedUser()
const;
132 void setPrev(
Use **NewPrev) {
133 Prev.setPointer(NewPrev);
135 void addToList(Use **
List) {
137 if (Next) Next->setPrev(&Next);
141 void removeFromList() {
142 Use **StrippedPrev = Prev.getPointer();
143 *StrippedPrev = Next;
144 if (Next) Next->setPrev(StrippedPrev);
167 template<
typename UserTy>
169 UserTy*, ptrdiff_t> {
170 typedef std::iterator<std::forward_iterator_tag, UserTy*, ptrdiff_t> super;
190 bool atEnd()
const {
return U == 0; }
194 assert(U &&
"Cannot increment end iterator!");
199 _Self tmp = *
this; ++*
this;
return tmp;
204 assert(U &&
"Cannot dereference end iterator!");
const Value * operator->() const
PointerIntPair< User *, 1, unsigned > UserRef
UserTy * operator->() const
super::reference reference
UserTy * operator*() const
#define DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ty, ref)
const Use & operator=(const Use &RHS)
bool operator!=(const _Self &x) const
static Use * initTags(Use *Start, Use *Stop)
static void * getAsVoidPointer(Use **P)
unsigned getOperandNo() const
bool atEnd() const
atEnd - return true if this iterator is equal to use_end() on the value.
bool operator==(const _Self &x) const
static SimpleType getSimplifiedValue(const Use &Val)
#define LLVM_DELETED_FUNCTION
Value * operator=(Value *RHS)
struct LLVMOpaqueUse * LLVMUseRef
LLVM Value Representation.
static SimpleType getSimplifiedValue(Use &Val)
static Use ** getFromVoidPointer(void *P)
static void zap(Use *Start, const Use *Stop, bool del=false)