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 5837 of file Attributor.h.

Member Typedef Documentation

◆ const_iterator

Definition at line 5845 of file Attributor.h.

◆ iterator

Definition at line 5844 of file Attributor.h.

◆ RangeTy

Definition at line 5842 of file Attributor.h.

◆ value_type

Definition at line 5865 of file Attributor.h.

◆ VecTy

Definition at line 5843 of file Attributor.h.

Constructor & Destructor Documentation

◆ RangeList() [1/3]

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

Definition at line 5848 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 5944 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 5862 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 5960 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 5939 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 LessThan R, and then maintains the sorted order for the suffix list.

Returns
The place of insertion and true iff anything changed.

Definition at line 5918 of file Attributor.h.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::insert(), isUnknown(), llvm::AA::RangeTy::LessThan(), 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 5984 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 5955 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 5966 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 5887 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 5881 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 5873 of file Attributor.h.

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

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: