LLVM  8.0.1
Public Member Functions | Friends | List of all members
llvm::sroa::Partition Class Reference

A partition of the slices. More...

Public Member Functions

uint64_t beginOffset () const
 The start offset of this partition. More...
 
uint64_t endOffset () const
 The end offset of this partition. More...
 
uint64_t size () const
 The size of the partition. More...
 
bool empty () const
 Test whether this partition contains no slices, and merely spans a region occupied by split slices. More...
 
ArrayRef< Slice * > splitSliceTails () const
 Get the sequence of split slice tails. More...
 
Iterate slices that start within the partition.

These may be splittable or unsplittable.

They have a begin offset >= the partition begin offset.

iterator begin () const
 
iterator end () const
 

Friends

class AllocaSlices
 
class AllocaSlices::partition_iterator
 

Detailed 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.

Definition at line 363 of file SROA.cpp.

Member Function Documentation

◆ begin()

iterator llvm::sroa::Partition::begin ( ) const
inline

Definition at line 416 of file SROA.cpp.

References SI.

Referenced by getTypePartition(), and isIntegerWideningViable().

◆ beginOffset()

uint64_t llvm::sroa::Partition::beginOffset ( ) const
inline

The start offset of this partition.

All of the contained slices start at or after this offset.

Definition at line 388 of file SROA.cpp.

Referenced by getTypePartition(), and isVectorPromotionViableForSlice().

◆ empty()

bool llvm::sroa::Partition::empty ( ) const
inline

Test whether this partition contains no slices, and merely spans a region occupied by split slices.

Definition at line 405 of file SROA.cpp.

◆ end()

iterator llvm::sroa::Partition::end ( ) const
inline

Definition at line 417 of file SROA.cpp.

Referenced by getTypePartition(), and isIntegerWideningViable().

◆ endOffset()

uint64_t llvm::sroa::Partition::endOffset ( ) const
inline

The end offset of this partition.

All of the contained slices end at or before this offset.

Definition at line 393 of file SROA.cpp.

Referenced by getTypePartition(), and isVectorPromotionViableForSlice().

◆ size()

uint64_t llvm::sroa::Partition::size ( ) const
inline

The size of the partition.

Note that this can never be zero.

Definition at line 398 of file SROA.cpp.

References assert().

Referenced by getTypePartition().

◆ splitSliceTails()

ArrayRef<Slice *> llvm::sroa::Partition::splitSliceTails ( ) const
inline

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.

Definition at line 425 of file SROA.cpp.

Referenced by getTypePartition().

Friends And Related Function Documentation

◆ AllocaSlices

friend class AllocaSlices
friend

Definition at line 365 of file SROA.cpp.

◆ AllocaSlices::partition_iterator

friend class AllocaSlices::partition_iterator
friend

Definition at line 366 of file SROA.cpp.


The documentation for this class was generated from the following file: