iterator_range< use_iterator > uses()
This class represents lattice values for constants.
Use * U
The use currently being visited.
SmallPtrSet< Use *, 8 > VisitedUses
A set of visited uses to break cycles in unreachable code.
bool IsOffsetKnown
True if we have a known constant offset for the use currently being visited.
A Use represents the edge between a Value definition and its users.
This file provides a collection of visitors which walk the (instruction) uses of a pointer...
A struct of the data needed to visit a particular use.
SmallVector< UseToVisit, 8 > Worklist
The worklist of to-visit uses.
PointerIntPair< Use *, 1, bool > UseAndIsOffsetKnownPair
an instruction for type-safe pointer arithmetic to access elements of arrays and structs ...
void enqueueUsers(Instruction &I)
Enqueue the users of this instruction in the visit worklist.
bool adjustOffsetForGEP(GetElementPtrInst &GEPI)
Walk the operands of a GEP and adjust the offset as appropriate.
bool accumulateConstantOffset(const DataLayout &DL, APInt &Offset) const
Accumulate the constant address offset of this GEP if possible.
APInt Offset
The constant offset of the use if that is known.