LLVM 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
llvm::AAPointerInfo::RangeList Struct Reference

A container for a list of ranges. More...

#include "llvm/Transforms/IPO/Attributor.h"

Public Types

using RangeTy = AA::RangeTy
 
using VecTy = SmallVector< RangeTy >
 
using iterator = VecTy::iterator
 
using const_iterator = VecTy::const_iterator
 
using value_type = RangeTy
 

Public Member Functions

 RangeList (const RangeTy &R)
 
 RangeList (ArrayRef< int64_t > Offsets, int64_t Size)
 
 RangeList ()=default
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
void push_back (const RangeTy &R)
 
unsigned size () const
 
bool operator== (const RangeList &OI) const
 
bool merge (const RangeList &RHS)
 Merge the ranges in RHS into the current ranges.
 
std::pair< iterator, boolinsert (iterator Pos, const RangeTy &R)
 Insert R at the given iterator Pos, and merge if necessary.
 
std::pair< iterator, boolinsert (const RangeTy &R)
 Insert the given range R, maintaining sorted order.
 
void addToAllOffsets (int64_t Inc)
 Add the increment Inc to the offset of every range.
 
bool isUnique () const
 Return true iff there is exactly one range and it is known.
 
const RangeTygetUnique () const
 Return the unique range, assuming it exists.
 
bool isUnknown () const
 Return true iff the list contains an unknown range.
 
iterator setUnknown ()
 Discard all ranges and insert a single unknown range.
 
bool isUnassigned () const
 Return true if no ranges have been inserted.
 

Static Public Member Functions

static void set_difference (const RangeList &L, const RangeList &R, RangeList &D)
 Copy ranges from L that are not in R, into D.
 

Public Attributes

VecTy Ranges
 

Detailed Description

A container for a list of ranges.

Definition at line 5782 of file Attributor.h.

Member Typedef Documentation

◆ const_iterator

Definition at line 5790 of file Attributor.h.

◆ iterator

Definition at line 5789 of file Attributor.h.

◆ RangeTy

Definition at line 5787 of file Attributor.h.

◆ value_type

Definition at line 5810 of file Attributor.h.

◆ VecTy

Definition at line 5788 of file Attributor.h.

Constructor & Destructor Documentation

◆ RangeList() [1/3]

llvm::AAPointerInfo::RangeList::RangeList ( const RangeTy R)
inline

Definition at line 5793 of file Attributor.h.

References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Ranges.

◆ RangeList() [2/3]

llvm::AAPointerInfo::RangeList::RangeList ( ArrayRef< int64_t >  Offsets,
int64_t  Size 
)
inline

◆ RangeList() [3/3]

llvm::AAPointerInfo::RangeList::RangeList ( )
default

Member Function Documentation

◆ addToAllOffsets()

void llvm::AAPointerInfo::RangeList::addToAllOffsets ( int64_t  Inc)
inline

Add the increment Inc to the offset of every range.

Definition at line 5889 of file Attributor.h.

References assert(), isUnassigned(), isUnknown(), and Ranges.

◆ begin() [1/2]

iterator llvm::AAPointerInfo::RangeList::begin ( )
inline

◆ begin() [2/2]

const_iterator llvm::AAPointerInfo::RangeList::begin ( ) const
inline

◆ end() [1/2]

iterator llvm::AAPointerInfo::RangeList::end ( )
inline

◆ end() [2/2]

const_iterator llvm::AAPointerInfo::RangeList::end ( ) const
inline

Definition at line 5807 of file Attributor.h.

References llvm::SmallVectorTemplateCommon< T, typename >::end(), and Ranges.

◆ getUnique()

const RangeTy & llvm::AAPointerInfo::RangeList::getUnique ( ) const
inline

Return the unique range, assuming it exists.

Definition at line 5905 of file Attributor.h.

References assert(), llvm::SmallVectorTemplateCommon< T, typename >::front(), isUnique(), and Ranges.

Referenced by llvm::AAPointerInfo::Access::getUniqueRange().

◆ insert() [1/2]

std::pair< iterator, bool > llvm::AAPointerInfo::RangeList::insert ( const RangeTy R)
inline

Insert the given range R, maintaining sorted order.

Returns
The place of insertion and true iff anything changed.

Definition at line 5884 of file Attributor.h.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), insert(), and Ranges.

◆ insert() [2/2]

std::pair< iterator, bool > llvm::AAPointerInfo::RangeList::insert ( iterator  Pos,
const RangeTy R 
)
inline

Insert R at the given iterator Pos, and merge if necessary.

This assumes that all ranges before Pos are OffsetLessThan R, and then maintains the sorted order for the suffix list.

Returns
The place of insertion and true iff anything changed.

Definition at line 5863 of file Attributor.h.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::insert(), isUnknown(), llvm::AA::RangeTy::OffsetLessThan(), Ranges, and setUnknown().

Referenced by llvm::AAPointerInfo::Access::addRange(), insert(), and merge().

◆ isUnassigned()

bool llvm::AAPointerInfo::RangeList::isUnassigned ( ) const
inline

Return true if no ranges have been inserted.

Definition at line 5929 of file Attributor.h.

References Ranges, and llvm::SmallVectorBase< Size_T >::size().

Referenced by addToAllOffsets(), and isUnknown().

◆ isUnique()

bool llvm::AAPointerInfo::RangeList::isUnique ( ) const
inline

Return true iff there is exactly one range and it is known.

Definition at line 5900 of file Attributor.h.

References llvm::SmallVectorTemplateCommon< T, typename >::front(), Ranges, and llvm::SmallVectorBase< Size_T >::size().

Referenced by getUnique(), and llvm::AAPointerInfo::Access::hasUniqueRange().

◆ isUnknown()

bool llvm::AAPointerInfo::RangeList::isUnknown ( ) const
inline

Return true iff the list contains an unknown range.

Definition at line 5911 of file Attributor.h.

References assert(), llvm::SmallVectorTemplateCommon< T, typename >::front(), isUnassigned(), Ranges, and llvm::SmallVectorBase< Size_T >::size().

Referenced by addToAllOffsets(), insert(), and merge().

◆ merge()

bool llvm::AAPointerInfo::RangeList::merge ( const RangeList RHS)
inline

Merge the ranges in RHS into the current ranges.

  • Merging a list of unknown ranges makes the current list unknown.
  • Ranges with the same offset are merged according to RangeTy::operator&
    Returns
    true if the current RangeList changed.

Definition at line 5832 of file Attributor.h.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorBase< Size_T >::empty(), insert(), isUnknown(), Ranges, RHS, and setUnknown().

Referenced by llvm::AAPointerInfo::Access::operator&=().

◆ operator==()

bool llvm::AAPointerInfo::RangeList::operator== ( const RangeList OI) const
inline

Definition at line 5826 of file Attributor.h.

References Ranges.

◆ push_back()

void llvm::AAPointerInfo::RangeList::push_back ( const RangeTy R)
inline

◆ set_difference()

static void llvm::AAPointerInfo::RangeList::set_difference ( const RangeList L,
const RangeList R,
RangeList D 
)
inlinestatic

Copy ranges from L that are not in R, into D.

Definition at line 5818 of file Attributor.h.

References D, and llvm::AA::RangeTy::OffsetLessThan().

Referenced by llvm::AA::PointerInfo::State::addAccess().

◆ setUnknown()

iterator llvm::AAPointerInfo::RangeList::setUnknown ( )
inline

◆ size()

unsigned llvm::AAPointerInfo::RangeList::size ( ) const
inline

Member Data Documentation

◆ Ranges

VecTy llvm::AAPointerInfo::RangeList::Ranges

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