42 const Use *End = getImpliedUser();
45 :
reinterpret_cast<User *
>(
const_cast<Use *
>(End));
62 static const PrevPtrTag tags[20] = {
63 fullStopTag, oneDigitTag, stopTag, oneDigitTag, oneDigitTag,
64 stopTag, zeroDigitTag, oneDigitTag, oneDigitTag, stopTag,
65 zeroDigitTag, oneDigitTag, zeroDigitTag, oneDigitTag, stopTag,
66 oneDigitTag, oneDigitTag, oneDigitTag, oneDigitTag, stopTag};
67 new (Stop)
Use(tags[Done++]);
71 while (Start != Stop) {
74 new (Stop)
Use(stopTag);
78 new (Stop)
Use(PrevPtrTag(Count & 1));
91 ::operator
delete(Start);
94 const Use *Use::getImpliedUser()
const {
95 const Use *Current =
this;
98 unsigned Tag = (Current++)->Prev.getInt();
108 unsigned Tag = Current->Prev.getInt();
113 Offset = (Offset << 1) + Tag;
This class represents lattice values for constants.
PointerTy getPointer() const
void addUse(Use &U)
This method should only be used by the Use class.
This defines the Use class.
A Use represents the edge between a Value definition and its users.
User * getUser() const LLVM_READONLY
Returns the User that contains this Use.
unsigned getOperandNo() const
Return the operand # of this use in its User.
PointerIntPair - This class implements a pair of a pointer and small integer.
static Use * initTags(Use *Start, Use *Stop)
Initializes the waymarking tags on an array of Uses.
void swap(Use &RHS)
Provide a fast substitute to std::swap<Use> that also works with less standard-compliant compilers...
LLVM Value Representation.
static void zap(Use *Start, const Use *Stop, bool del=false)
Destroys Use operands when the number of operands of a User changes.