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

State for an integer range. More...

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

Inheritance diagram for llvm::IntegerRangeState:
Inheritance graph
[legend]

Public Member Functions

 IntegerRangeState (uint32_t BitWidth)
 
 IntegerRangeState (const ConstantRange &CR)
 
uint32_t getBitWidth () const
 Return associated values' bit width.
 
bool isValidState () const override
 See AbstractState::isValidState()
 
bool isAtFixpoint () const override
 See AbstractState::isAtFixpoint()
 
ChangeStatus indicateOptimisticFixpoint () override
 See AbstractState::indicateOptimisticFixpoint(...)
 
ChangeStatus indicatePessimisticFixpoint () override
 See AbstractState::indicatePessimisticFixpoint(...)
 
ConstantRange getKnown () const
 Return the known state encoding.
 
ConstantRange getAssumed () const
 Return the assumed state encoding.
 
void unionAssumed (const ConstantRange &R)
 Unite assumed range with the passed state.
 
void unionAssumed (const IntegerRangeState &R)
 See IntegerRangeState::unionAssumed(..).
 
void intersectKnown (const ConstantRange &R)
 Intersect known range with the passed state.
 
void intersectKnown (const IntegerRangeState &R)
 See IntegerRangeState::intersectKnown(..).
 
bool operator== (const IntegerRangeState &R) const
 Equality for IntegerRangeState.
 
IntegerRangeState operator^= (const IntegerRangeState &R)
 "Clamp" this state with R.
 
IntegerRangeState operator&= (const IntegerRangeState &R)
 
- Public Member Functions inherited from llvm::AbstractState
virtual ~AbstractState ()=default
 
virtual bool isValidState () const =0
 Return if this abstract state is in a valid state.
 
virtual bool isAtFixpoint () const =0
 Return if this abstract state is fixed, thus does not need to be updated if information changes as it cannot change itself.
 
virtual ChangeStatus indicateOptimisticFixpoint ()=0
 Indicate that the abstract state should converge to the optimistic state.
 
virtual ChangeStatus indicatePessimisticFixpoint ()=0
 Indicate that the abstract state should converge to the pessimistic state.
 

Static Public Member Functions

static ConstantRange getWorstState (uint32_t BitWidth)
 Return the worst possible representable state.
 
static ConstantRange getBestState (uint32_t BitWidth)
 Return the best possible representable state.
 
static ConstantRange getBestState (const IntegerRangeState &IRS)
 

Public Attributes

uint32_t BitWidth
 Bitwidth of the associated value.
 
ConstantRange Assumed
 State representing assumed range, initially set to empty.
 
ConstantRange Known
 State representing known range, initially set to [-inf, inf].
 

Detailed Description

State for an integer range.

Definition at line 2930 of file Attributor.h.

Constructor & Destructor Documentation

◆ IntegerRangeState() [1/2]

llvm::IntegerRangeState::IntegerRangeState ( uint32_t  BitWidth)
inline

Definition at line 2941 of file Attributor.h.

◆ IntegerRangeState() [2/2]

llvm::IntegerRangeState::IntegerRangeState ( const ConstantRange CR)
inline

Definition at line 2945 of file Attributor.h.

Member Function Documentation

◆ getAssumed()

ConstantRange llvm::IntegerRangeState::getAssumed ( ) const
inline

Return the assumed state encoding.

Definition at line 2989 of file Attributor.h.

References Assumed.

Referenced by llvm::operator<<(), operator==(), and stripAndAccumulateOffsets().

◆ getBestState() [1/2]

static ConstantRange llvm::IntegerRangeState::getBestState ( const IntegerRangeState IRS)
inlinestatic

Definition at line 2958 of file Attributor.h.

References getBestState(), and getBitWidth().

◆ getBestState() [2/2]

static ConstantRange llvm::IntegerRangeState::getBestState ( uint32_t  BitWidth)
inlinestatic

Return the best possible representable state.

Definition at line 2955 of file Attributor.h.

References BitWidth.

Referenced by getBestState().

◆ getBitWidth()

uint32_t llvm::IntegerRangeState::getBitWidth ( ) const
inline

Return associated values' bit width.

Definition at line 2963 of file Attributor.h.

References BitWidth.

Referenced by getBestState(), and llvm::operator<<().

◆ getKnown()

ConstantRange llvm::IntegerRangeState::getKnown ( ) const
inline

Return the known state encoding.

Definition at line 2986 of file Attributor.h.

References Known.

Referenced by llvm::operator<<(), operator==(), and stripAndAccumulateOffsets().

◆ getWorstState()

static ConstantRange llvm::IntegerRangeState::getWorstState ( uint32_t  BitWidth)
inlinestatic

Return the worst possible representable state.

Definition at line 2950 of file Attributor.h.

References BitWidth.

◆ indicateOptimisticFixpoint()

ChangeStatus llvm::IntegerRangeState::indicateOptimisticFixpoint ( )
inlineoverridevirtual

See AbstractState::indicateOptimisticFixpoint(...)

Implements llvm::AbstractState.

Definition at line 2974 of file Attributor.h.

References Assumed, llvm::CHANGED, and Known.

◆ indicatePessimisticFixpoint()

ChangeStatus llvm::IntegerRangeState::indicatePessimisticFixpoint ( )
inlineoverridevirtual

See AbstractState::indicatePessimisticFixpoint(...)

Implements llvm::AbstractState.

Definition at line 2980 of file Attributor.h.

References Assumed, llvm::CHANGED, and Known.

◆ intersectKnown() [1/2]

void llvm::IntegerRangeState::intersectKnown ( const ConstantRange R)
inline

Intersect known range with the passed state.

Definition at line 3003 of file Attributor.h.

References Assumed, llvm::ConstantRange::intersectWith(), and Known.

Referenced by intersectKnown().

◆ intersectKnown() [2/2]

void llvm::IntegerRangeState::intersectKnown ( const IntegerRangeState R)
inline

See IntegerRangeState::intersectKnown(..).

Definition at line 3009 of file Attributor.h.

References intersectKnown().

◆ isAtFixpoint()

bool llvm::IntegerRangeState::isAtFixpoint ( ) const
inlineoverridevirtual

See AbstractState::isAtFixpoint()

Implements llvm::AbstractState.

Definition at line 2971 of file Attributor.h.

References Assumed, and Known.

◆ isValidState()

bool llvm::IntegerRangeState::isValidState ( ) const
inlineoverridevirtual

◆ operator&=()

IntegerRangeState llvm::IntegerRangeState::operator&= ( const IntegerRangeState R)
inline

Definition at line 3028 of file Attributor.h.

References Assumed, Known, and llvm::ConstantRange::unionWith().

◆ operator==()

bool llvm::IntegerRangeState::operator== ( const IntegerRangeState R) const
inline

Equality for IntegerRangeState.

Definition at line 3014 of file Attributor.h.

References getAssumed(), and getKnown().

◆ operator^=()

IntegerRangeState llvm::IntegerRangeState::operator^= ( const IntegerRangeState R)
inline

"Clamp" this state with R.

The result is subtype dependent but it is intended that only information assumed in both states will be assumed in this one afterwards.

Definition at line 3021 of file Attributor.h.

References unionAssumed().

◆ unionAssumed() [1/2]

void llvm::IntegerRangeState::unionAssumed ( const ConstantRange R)
inline

Unite assumed range with the passed state.

Definition at line 2992 of file Attributor.h.

References Assumed, llvm::ConstantRange::intersectWith(), Known, and llvm::ConstantRange::unionWith().

Referenced by operator^=(), and unionAssumed().

◆ unionAssumed() [2/2]

void llvm::IntegerRangeState::unionAssumed ( const IntegerRangeState R)
inline

See IntegerRangeState::unionAssumed(..).

Definition at line 2998 of file Attributor.h.

References unionAssumed().

Member Data Documentation

◆ Assumed

ConstantRange llvm::IntegerRangeState::Assumed

State representing assumed range, initially set to empty.

Definition at line 2936 of file Attributor.h.

Referenced by getAssumed(), indicateOptimisticFixpoint(), indicatePessimisticFixpoint(), intersectKnown(), isAtFixpoint(), isValidState(), operator&=(), and unionAssumed().

◆ BitWidth

uint32_t llvm::IntegerRangeState::BitWidth

Bitwidth of the associated value.

Definition at line 2933 of file Attributor.h.

Referenced by getBestState(), getBitWidth(), getWorstState(), and isValidState().

◆ Known

ConstantRange llvm::IntegerRangeState::Known

State representing known range, initially set to [-inf, inf].

Definition at line 2939 of file Attributor.h.

Referenced by getKnown(), indicateOptimisticFixpoint(), indicatePessimisticFixpoint(), intersectKnown(), isAtFixpoint(), operator&=(), and unionAssumed().


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