class AllocaSlices::partition_iterator
Declaration
class AllocaSlices::partition_iterator : public iterator_facade_base { /* full declaration omitted */ };
Description
An iterator over partitions of the alloca's slices. This iterator implements the core algorithm for partitioning the alloca's slices. It is a forward iterator as we don't support backtracking for efficiency reasons, and re-use a single storage area to maintain the current set of split slices. It is templated on the slice iterator type to use so that it can operate with either const or non-const slice iterators.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:424
Inherits from: iterator_facade_base
Member Variables
- private llvm::sroa::Partition P
- Most of the state for walking the partitions is held in a class with a nice interface for examining them.
- private AllocaSlices::iterator SE
- We need to keep the end of the slices to know when to stop.
- private uint64_t MaxSplitSliceEndOffset = 0
- We also need to keep track of the maximum split end offset seen. FIXME: Do we really?
Method Overview
- private void advance()
- private partition_iterator(AllocaSlices::iterator SI, AllocaSlices::iterator SE)
Methods
¶void advance()
void advance()
Description
Advance the iterator to the next partition. Requires that the iterator not be at the end of the slices.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:453
¶partition_iterator(AllocaSlices::iterator SI,
AllocaSlices::iterator SE)
partition_iterator(AllocaSlices::iterator SI,
AllocaSlices::iterator SE)
Description
Sets the partition to be empty at given iterator, and sets the end iterator.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:442
Parameters
- AllocaSlices::iterator SI
- AllocaSlices::iterator SE