LLVM
15.0.0git
|
A type to track pointer/struct usage and accesses for AAPointerInfo. More...
Classes | |
struct | Accesses |
We store accesses in a set with the instruction as key. More... | |
Public Types | |
using | AccessBinsTy = DenseMap< AAPointerInfo::OffsetAndSize, Accesses * > |
We store all accesses in bins denoted by their offset and size. More... | |
Public Member Functions | |
~State () | |
State ()=default | |
State (State &&SIS) | |
const State & | getAssumed () const |
bool | isValidState () const override |
See AbstractState::isValidState(). More... | |
bool | isAtFixpoint () const override |
See AbstractState::isAtFixpoint(). More... | |
ChangeStatus | indicateOptimisticFixpoint () override |
See AbstractState::indicateOptimisticFixpoint(). More... | |
ChangeStatus | indicatePessimisticFixpoint () override |
See AbstractState::indicatePessimisticFixpoint(). More... | |
State & | operator= (const State &R) |
State & | operator= (State &&R) |
bool | operator== (const State &R) const |
bool | operator!= (const State &R) const |
AccessBinsTy::const_iterator | begin () const |
AccessBinsTy::const_iterator | end () const |
![]() | |
virtual | ~AbstractState ()=default |
Static Public Member Functions | |
static State | getBestState (const State &SIS) |
Return the best possible representable state. More... | |
static State | getWorstState (const State &SIS) |
Return the worst possible representable state. More... | |
Protected Member Functions | |
ChangeStatus | addAccess (Attributor &A, int64_t Offset, int64_t Size, Instruction &I, Optional< Value * > Content, AAPointerInfo::AccessKind Kind, Type *Ty, Instruction *RemoteI=nullptr, Accesses *BinPtr=nullptr) |
Add a new access to the state at offset Offset and with size Size . More... | |
bool | forallInterferingAccesses (AAPointerInfo::OffsetAndSize OAS, function_ref< bool(const AAPointerInfo::Access &, bool)> CB) const |
See AAPointerInfo::forallInterferingAccesses. More... | |
bool | forallInterferingAccesses (Instruction &I, function_ref< bool(const AAPointerInfo::Access &, bool)> CB) const |
See AAPointerInfo::forallInterferingAccesses. More... | |
Protected Attributes | |
AccessBinsTy | AccessBins |
The bins with all the accesses for the associated pointer. More... | |
A type to track pointer/struct usage and accesses for AAPointerInfo.
Definition at line 879 of file AttributorAttributes.cpp.
We store all accesses in bins denoted by their offset and size.
Definition at line 989 of file AttributorAttributes.cpp.
|
inline |
Definition at line 881 of file AttributorAttributes.cpp.
References AccessBins.
|
default |
Referenced by getBestState().
|
inline |
Definition at line 898 of file AttributorAttributes.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear().
|
inlineprotected |
Add a new access to the state at offset Offset
and with size Size
.
The access is associated with I
, writes Content
(if anything), and is of kind Kind
. \Returns CHANGED, if the state changed, UNCHANGED otherwise.
Definition at line 1002 of file AttributorAttributes.cpp.
References AccessBins, llvm::Bin, Content, and I.
|
inline |
Definition at line 991 of file AttributorAttributes.cpp.
References AccessBins, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::begin().
Referenced by operator==().
|
inline |
Definition at line 992 of file AttributorAttributes.cpp.
References AccessBins, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end().
Referenced by operator==().
|
inlineprotected |
See AAPointerInfo::forallInterferingAccesses.
Definition at line 1028 of file AttributorAttributes.cpp.
References AccessBins, isValidState(), llvm::AAPointerInfo::OffsetAndSize::mayOverlap(), and llvm::AAPointerInfo::OffsetAndSize::offsetOrSizeAreUnknown().
Referenced by forallInterferingAccesses().
|
inlineprotected |
See AAPointerInfo::forallInterferingAccesses.
Definition at line 1047 of file AttributorAttributes.cpp.
References AccessBins, forallInterferingAccesses(), llvm::AAPointerInfo::OffsetAndSize::getSize(), I, and isValidState().
Definition at line 902 of file AttributorAttributes.cpp.
Return the best possible representable state.
Definition at line 888 of file AttributorAttributes.cpp.
References State().
Return the worst possible representable state.
Definition at line 891 of file AttributorAttributes.cpp.
|
inlineoverridevirtual |
See AbstractState::indicateOptimisticFixpoint().
Implements llvm::AbstractState.
Definition at line 911 of file AttributorAttributes.cpp.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::indicateOptimisticFixpoint().
|
inlineoverridevirtual |
See AbstractState::indicatePessimisticFixpoint().
Implements llvm::AbstractState.
Definition at line 917 of file AttributorAttributes.cpp.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::indicatePessimisticFixpoint().
|
inlineoverridevirtual |
See AbstractState::isAtFixpoint().
Implements llvm::AbstractState.
Definition at line 908 of file AttributorAttributes.cpp.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::isAtFixpoint().
|
inlineoverridevirtual |
See AbstractState::isValidState().
Implements llvm::AbstractState.
Definition at line 905 of file AttributorAttributes.cpp.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::isValidState().
Referenced by forallInterferingAccesses().
Definition at line 959 of file AttributorAttributes.cpp.
Definition at line 922 of file AttributorAttributes.cpp.
References AccessBins.
Definition at line 930 of file AttributorAttributes.cpp.
References AccessBins, and std::swap().
Definition at line 938 of file AttributorAttributes.cpp.
References AccessBins, begin(), E, end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), and llvm::zip().
|
protected |
The bins with all the accesses for the associated pointer.
Definition at line 996 of file AttributorAttributes.cpp.
Referenced by addAccess(), begin(), end(), forallInterferingAccesses(), operator=(), operator==(), and ~State().