LLVM 20.0.0git
|
Simple state for a set. More...
#include "llvm/Transforms/IPO/Attributor.h"
Classes | |
struct | SetContents |
A wrapper around a set that has semantics for handling unions and intersections with a "universal" set that contains all elements. More... | |
Public Member Functions | |
SetState () | |
SetState (const DenseSet< BaseTy > &Known) | |
Initializes the known state with an initial set and initializes the assumed state as universal. | |
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(...) | |
const SetContents & | getKnown () const |
Return the known state encoding. | |
const SetContents & | getAssumed () const |
Return the assumed state encoding. | |
bool | setContains (const BaseTy &Elem) const |
Returns if the set state contains the element. | |
bool | getIntersection (const SetContents &RHS) |
Performs the set intersection between this set and RHS . | |
bool | getUnion (const SetContents &RHS) |
Performs the set union between this set and RHS . | |
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. | |
Simple state for a set.
This represents a state containing a set of values. The interface supports modelling sets that contain all possible elements. The state's internal value is modified using union or intersection operations.
Definition at line 3034 of file Attributor.h.
|
inline |
Definition at line 3096 of file Attributor.h.
|
inline |
Initializes the known state with an initial set and initializes the assumed state as universal.
Definition at line 3100 of file Attributor.h.
|
inline |
Return the assumed state encoding.
Definition at line 3127 of file Attributor.h.
|
inline |
Performs the set intersection between this set and RHS
.
Returns true if changes were made.
Definition at line 3136 of file Attributor.h.
References llvm::SetState< BaseTy >::SetContents::getIntersection(), llvm::SetState< BaseTy >::SetContents::getSet(), llvm::SetState< BaseTy >::SetContents::getUnion(), llvm::SetState< BaseTy >::SetContents::isUniversal(), RHS, and llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::size().
|
inline |
Return the known state encoding.
Definition at line 3124 of file Attributor.h.
|
inline |
Performs the set union between this set and RHS
.
Returns true if changes were made.
Definition at line 3151 of file Attributor.h.
References llvm::SetState< BaseTy >::SetContents::getUnion(), and RHS.
|
inlineoverridevirtual |
See AbstractState::indicateOptimisticFixpoint(...)
Implements llvm::AbstractState.
Definition at line 3110 of file Attributor.h.
References llvm::UNCHANGED.
|
inlineoverridevirtual |
See AbstractState::indicatePessimisticFixpoint(...)
Implements llvm::AbstractState.
Definition at line 3117 of file Attributor.h.
References llvm::CHANGED.
|
inlineoverridevirtual |
See AbstractState::isAtFixpoint()
Implements llvm::AbstractState.
Definition at line 3107 of file Attributor.h.
|
inlineoverridevirtual |
See AbstractState::isValidState()
Implements llvm::AbstractState.
Definition at line 3104 of file Attributor.h.
References llvm::SetState< BaseTy >::SetContents::empty().
|
inline |
Returns if the set state contains the element.
Definition at line 3130 of file Attributor.h.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::contains(), and llvm::SetState< BaseTy >::SetContents::getSet().