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 3042 of file Attributor.h.
|
inline |
Definition at line 3104 of file Attributor.h.
|
inline |
Initializes the known state with an initial set and initializes the assumed state as universal.
Definition at line 3108 of file Attributor.h.
|
inline |
Return the assumed state encoding.
Definition at line 3135 of file Attributor.h.
|
inline |
Performs the set intersection between this set and RHS
.
Returns true if changes were made.
Definition at line 3144 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 3132 of file Attributor.h.
|
inline |
Performs the set union between this set and RHS
.
Returns true if changes were made.
Definition at line 3159 of file Attributor.h.
References llvm::SetState< BaseTy >::SetContents::getUnion(), and RHS.
|
inlineoverridevirtual |
See AbstractState::indicateOptimisticFixpoint(...)
Implements llvm::AbstractState.
Definition at line 3118 of file Attributor.h.
References llvm::UNCHANGED.
|
inlineoverridevirtual |
See AbstractState::indicatePessimisticFixpoint(...)
Implements llvm::AbstractState.
Definition at line 3125 of file Attributor.h.
References llvm::CHANGED.
|
inlineoverridevirtual |
See AbstractState::isAtFixpoint()
Implements llvm::AbstractState.
Definition at line 3115 of file Attributor.h.
|
inlineoverridevirtual |
See AbstractState::isValidState()
Implements llvm::AbstractState.
Definition at line 3112 of file Attributor.h.
References llvm::SetState< BaseTy >::SetContents::empty().
|
inline |
Returns if the set state contains the element.
Definition at line 3138 of file Attributor.h.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::contains(), and llvm::SetState< BaseTy >::SetContents::getSet().