LLVM 24.0.0git
llvm::PotentialValuesState< MemberTy > Struct Template Reference

A class for a set state. More...

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

Inheritance diagram for llvm::PotentialValuesState< MemberTy >:
[legend]

Public Types

using SetTy = SmallSetVector<MemberTy, 8>

Public Member Functions

 PotentialValuesState ()
 PotentialValuesState (bool IsValid)
bool isValidState () const override
 Return if this abstract state is in a valid state.
bool isAtFixpoint () const override
 Return if this abstract state is fixed, thus does not need to be updated if information changes as it cannot change itself.
ChangeStatus indicatePessimisticFixpoint () override
 Indicate that the abstract state should converge to the pessimistic state.
ChangeStatus indicateOptimisticFixpoint () override
 Indicate that the abstract state should converge to the optimistic state.
PotentialValuesState & getAssumed ()
 Return the assumed state.
const PotentialValuesState & getAssumed () const
const SetTy & getAssumedSet () const
 Return this set.
bool undefIsContained () const
 Returns whether this state contains an undef value or not.
bool operator== (const PotentialValuesState &RHS) const
void unionAssumed (const MemberTy &C)
 Union assumed set with the passed value.
void unionAssumed (const PotentialValuesState &PVS)
 Union assumed set with assumed set of the passed state PVS.
void unionAssumedWithUndef ()
 Union assumed set with an undef value.
PotentialValuesState operator^= (const PotentialValuesState &PVS)
 "Clamp" this state with PVS.
PotentialValuesState operator&= (const PotentialValuesState &PVS)
Public Member Functions inherited from llvm::AbstractState
virtual ~AbstractState ()=default

Static Public Member Functions

static PotentialValuesState getBestState ()
 Return empty set as the best state of potential values.
static PotentialValuesState getBestState (const PotentialValuesState &PVS)
static PotentialValuesState getWorstState ()
 Return full set as the worst state of potential values.

Static Public Attributes

static unsigned MaxPotentialValues
 Maximum number of potential values to be tracked.

Protected Member Functions

SetTy & getAssumedSet ()

Detailed Description

template<typename MemberTy>
struct llvm::PotentialValuesState< MemberTy >

A class for a set state.

The assumed boolean state indicates whether the corresponding set is full set or not. If the assumed state is false, this is the worst state. The worst state (invalid state) of set of potential values is when the set contains every possible value (i.e. we cannot in any way limit the value that the target position can take). That never happens naturally, we only force it. As for the conditions under which we force it, see AAPotentialConstantValues.

Definition at line 4829 of file Attributor.h.

Member Typedef Documentation

◆ SetTy

template<typename MemberTy>
using llvm::PotentialValuesState< MemberTy >::SetTy = SmallSetVector<MemberTy, 8>

Definition at line 4830 of file Attributor.h.

Constructor & Destructor Documentation

◆ PotentialValuesState() [1/2]

template<typename MemberTy>
llvm::PotentialValuesState< MemberTy >::PotentialValuesState ( )
inline

◆ PotentialValuesState() [2/2]

template<typename MemberTy>
llvm::PotentialValuesState< MemberTy >::PotentialValuesState ( bool IsValid)
inline

Definition at line 4834 of file Attributor.h.

Member Function Documentation

◆ getAssumed() [1/2]

template<typename MemberTy>
PotentialValuesState & llvm::PotentialValuesState< MemberTy >::getAssumed ( )
inline

Return the assumed state.

Definition at line 4850 of file Attributor.h.

◆ getAssumed() [2/2]

template<typename MemberTy>
const PotentialValuesState & llvm::PotentialValuesState< MemberTy >::getAssumed ( ) const
inline

Definition at line 4851 of file Attributor.h.

◆ getAssumedSet() [1/2]

template<typename MemberTy>
SetTy & llvm::PotentialValuesState< MemberTy >::getAssumedSet ( )
inlineprotected

Definition at line 4917 of file Attributor.h.

◆ getAssumedSet() [2/2]

template<typename MemberTy>
const SetTy & llvm::PotentialValuesState< MemberTy >::getAssumedSet ( ) const
inline

Return this set.

We should check whether this set is valid or not by isValidState() before calling this function.

Definition at line 4855 of file Attributor.h.

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

◆ getBestState() [1/2]

template<typename MemberTy>
PotentialValuesState llvm::PotentialValuesState< MemberTy >::getBestState ( )
inlinestatic

Return empty set as the best state of potential values.

Definition at line 4881 of file Attributor.h.

Referenced by llvm::PotentialValuesState< APInt >::getBestState().

◆ getBestState() [2/2]

template<typename MemberTy>
PotentialValuesState llvm::PotentialValuesState< MemberTy >::getBestState ( const PotentialValuesState< MemberTy > & PVS)
inlinestatic

Definition at line 4885 of file Attributor.h.

◆ getWorstState()

template<typename MemberTy>
PotentialValuesState llvm::PotentialValuesState< MemberTy >::getWorstState ( )
inlinestatic

Return full set as the worst state of potential values.

Definition at line 4890 of file Attributor.h.

◆ indicateOptimisticFixpoint()

template<typename MemberTy>
ChangeStatus llvm::PotentialValuesState< MemberTy >::indicateOptimisticFixpoint ( )
inlineoverridevirtual

Indicate that the abstract state should converge to the optimistic state.

This will usually make the optimistically assumed state the known to be true state.

Returns
ChangeStatus::UNCHANGED as the assumed value should not change.

Implements llvm::AbstractState.

Definition at line 4845 of file Attributor.h.

◆ indicatePessimisticFixpoint()

template<typename MemberTy>
ChangeStatus llvm::PotentialValuesState< MemberTy >::indicatePessimisticFixpoint ( )
inlineoverridevirtual

Indicate that the abstract state should converge to the pessimistic state.

This will usually revert the optimistically assumed state to the known to be true state.

Returns
ChangeStatus::CHANGED as the assumed value may change.

Implements llvm::AbstractState.

Definition at line 4841 of file Attributor.h.

◆ isAtFixpoint()

template<typename MemberTy>
bool llvm::PotentialValuesState< MemberTy >::isAtFixpoint ( ) const
inlineoverridevirtual

Return if this abstract state is fixed, thus does not need to be updated if information changes as it cannot change itself.

Implements llvm::AbstractState.

Definition at line 4839 of file Attributor.h.

◆ isValidState()

template<typename MemberTy>
bool llvm::PotentialValuesState< MemberTy >::isValidState ( ) const
inlineoverridevirtual

◆ operator&=()

template<typename MemberTy>
PotentialValuesState llvm::PotentialValuesState< MemberTy >::operator&= ( const PotentialValuesState< MemberTy > & PVS)
inline

Definition at line 4910 of file Attributor.h.

◆ operator==()

template<typename MemberTy>
bool llvm::PotentialValuesState< MemberTy >::operator== ( const PotentialValuesState< MemberTy > & RHS) const
inline

Definition at line 4866 of file Attributor.h.

◆ operator^=()

template<typename MemberTy>
PotentialValuesState llvm::PotentialValuesState< MemberTy >::operator^= ( const PotentialValuesState< MemberTy > & PVS)
inline

"Clamp" this state with PVS.

Definition at line 4904 of file Attributor.h.

◆ undefIsContained()

template<typename MemberTy>
bool llvm::PotentialValuesState< MemberTy >::undefIsContained ( ) const
inline

Returns whether this state contains an undef value or not.

Definition at line 4861 of file Attributor.h.

Referenced by llvm::operator<<(), llvm::operator<<(), and llvm::PotentialValuesState< APInt >::operator==().

◆ unionAssumed() [1/2]

template<typename MemberTy>
void llvm::PotentialValuesState< MemberTy >::unionAssumed ( const MemberTy & C)
inline

Union assumed set with the passed value.

Definition at line 4895 of file Attributor.h.

Referenced by llvm::PotentialValuesState< APInt >::operator&=(), and llvm::PotentialValuesState< APInt >::operator^=().

◆ unionAssumed() [2/2]

template<typename MemberTy>
void llvm::PotentialValuesState< MemberTy >::unionAssumed ( const PotentialValuesState< MemberTy > & PVS)
inline

Union assumed set with assumed set of the passed state PVS.

Definition at line 4898 of file Attributor.h.

◆ unionAssumedWithUndef()

template<typename MemberTy>
void llvm::PotentialValuesState< MemberTy >::unionAssumedWithUndef ( )
inline

Union assumed set with an undef value.

Definition at line 4901 of file Attributor.h.

Member Data Documentation

◆ MaxPotentialValues

template<typename MemberTy>
unsigned llvm::PotentialValuesState< MemberTy >::MaxPotentialValues
static

Maximum number of potential values to be tracked.

This is set by -attributor-max-potential-values command line option

Definition at line 4878 of file Attributor.h.


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