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)

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

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

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

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

Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:404

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

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

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