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 881 of file AttributorAttributes.cpp.
We store all accesses in bins denoted by their offset and size.
Definition at line 991 of file AttributorAttributes.cpp.
|
inline |
Definition at line 883 of file AttributorAttributes.cpp.
References AccessBins.
|
default |
Referenced by getBestState().
|
inline |
Definition at line 900 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 1004 of file AttributorAttributes.cpp.
References AccessBins, llvm::Bin, Content, and I.
|
inline |
Definition at line 993 of file AttributorAttributes.cpp.
References AccessBins, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::begin().
Referenced by operator==().
|
inline |
Definition at line 994 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 1030 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 1049 of file AttributorAttributes.cpp.
References AccessBins, forallInterferingAccesses(), llvm::AAPointerInfo::OffsetAndSize::getSize(), I, and isValidState().
Definition at line 904 of file AttributorAttributes.cpp.
Return the best possible representable state.
Definition at line 890 of file AttributorAttributes.cpp.
References State().
Return the worst possible representable state.
Definition at line 893 of file AttributorAttributes.cpp.
|
inlineoverridevirtual |
See AbstractState::indicateOptimisticFixpoint().
Implements llvm::AbstractState.
Definition at line 913 of file AttributorAttributes.cpp.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::indicateOptimisticFixpoint().
|
inlineoverridevirtual |
See AbstractState::indicatePessimisticFixpoint().
Implements llvm::AbstractState.
Definition at line 919 of file AttributorAttributes.cpp.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::indicatePessimisticFixpoint().
|
inlineoverridevirtual |
See AbstractState::isAtFixpoint().
Implements llvm::AbstractState.
Definition at line 910 of file AttributorAttributes.cpp.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::isAtFixpoint().
|
inlineoverridevirtual |
See AbstractState::isValidState().
Implements llvm::AbstractState.
Definition at line 907 of file AttributorAttributes.cpp.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::isValidState().
Referenced by forallInterferingAccesses().
Definition at line 961 of file AttributorAttributes.cpp.
Definition at line 924 of file AttributorAttributes.cpp.
References AccessBins.
Definition at line 932 of file AttributorAttributes.cpp.
References AccessBins, and std::swap().
Definition at line 940 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 998 of file AttributorAttributes.cpp.
Referenced by addAccess(), begin(), end(), forallInterferingAccesses(), operator=(), operator==(), and ~State().