class Partition
Declaration
class Partition { /* full declaration omitted */ };
Description
A partition of the slices. An ephemeral representation for a range of slices which can be viewed as a partition of the alloca. This range represents a span of the alloca's memory which cannot be split, and provides access to all of the slices overlapping some part of the partition. Objects of this type are produced by traversing the alloca's slices, but are only ephemeral and not persistent.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:350
Member Variables
- private uint64_t BeginOffset = 0
- The beginning and ending offsets of the alloca for this partition.
- private uint64_t EndOffset = 0
- The beginning and ending offsets of the alloca for this partition.
- private llvm::sroa::Partition::iterator SI
- The start and end iterators of this partition.
- private llvm::sroa::Partition::iterator SJ
- The start and end iterators of this partition.
- private anonymous struct / union SplitTails
- A collection of split slice tails overlapping the partition.
Method Overview
- private Partition(llvm::sroa::Partition::iterator SI)
- public llvm::sroa::Partition::iterator begin() const
- public uint64_t beginOffset() const
- public bool empty() const
- public llvm::sroa::Partition::iterator end() const
- public uint64_t endOffset() const
- public uint64_t size() const
- public ArrayRef<(anonymous namespace)::Slice *> splitSliceTails() const
Methods
¶Partition(llvm::sroa::Partition::iterator SI)
Partition(llvm::sroa::Partition::iterator SI)
Description
Raw constructor builds an empty partition starting and ending at the given iterator.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:369
Parameters
- llvm::sroa::Partition::iterator SI
¶llvm::sroa::Partition::iterator begin() const
llvm::sroa::Partition::iterator begin() const
Description
These may be splittable or unsplittable. They have a begin offset >= the partition begin offset. @ {
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:403
¶uint64_t beginOffset() const
uint64_t beginOffset() const
Description
The start offset of this partition. All of the contained slices start at or after this offset.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:375
¶bool empty() const
bool empty() const
Description
Test whether this partition contains no slices, and merely spans a region occupied by split slices.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:392
¶llvm::sroa::Partition::iterator end() const
llvm::sroa::Partition::iterator end() const
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:404
¶uint64_t endOffset() const
uint64_t endOffset() const
Description
The end offset of this partition. All of the contained slices end at or before this offset.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:380
¶uint64_t size() const
uint64_t size() const
Description
The size of the partition. Note that this can never be zero.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:385
¶ArrayRef<(anonymous namespace)::Slice*>
splitSliceTails() const
ArrayRef<(anonymous namespace)::Slice*>
splitSliceTails() const
Description
Get the sequence of split slice tails. These tails are of slices which start before this partition but are split and overlap into the partition. We accumulate these while forming partitions.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:412