|
LLVM 24.0.0git
|
A type to track pointer/struct usage and accesses for AAPointerInfo. More...
Public Member Functions | |
| State ()=default | |
| State (State &&SIS)=default | |
| const State & | getAssumed () const |
| 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 | indicateOptimisticFixpoint () override |
| Indicate that the abstract state should converge to the optimistic state. | |
| ChangeStatus | indicatePessimisticFixpoint () override |
| Indicate that the abstract state should converge to the pessimistic state. | |
| State & | operator= (const State &R) |
| State & | operator= (State &&R) |
| ChangeStatus | addAccess (Attributor &A, const AAPointerInfo::RangeList &Ranges, Instruction &I, std::optional< Value * > Content, AAPointerInfo::AccessKind Kind, Type *Ty, Instruction *RemoteI=nullptr) |
Add a new Access to the state at offset Offset and with size Size. | |
| AAPointerInfo::const_bin_iterator | begin () const |
| AAPointerInfo::const_bin_iterator | end () const |
| int64_t | numOffsetBins () const |
| const AAPointerInfo::Access & | getAccess (unsigned Index) const |
| Public Member Functions inherited from llvm::AbstractState | |
| virtual | ~AbstractState ()=default |
Static Public Member Functions | |
| static State | getBestState (const State &SIS) |
| Return the best possible representable state. | |
| static State | getWorstState (const State &SIS) |
| Return the worst possible representable state. | |
Protected Member Functions | |
| template<typename F> | |
| bool | forallInterferingAccesses (AA::RangeTy Range, F CB) const |
| See AAPointerInfo::forallInterferingAccesses. | |
| template<typename F> | |
| bool | forallInterferingAccesses (Instruction &I, F CB, AA::RangeTy &Range) const |
| See AAPointerInfo::forallInterferingAccesses. | |
Protected Attributes | |
| SmallVector< AAPointerInfo::Access > | AccessList |
| AAPointerInfo::OffsetBinsTy | OffsetBins |
| DenseMap< const Instruction *, SmallVector< unsigned > > | RemoteIMap |
| AAPointerInfo::OffsetInfo | ReturnedOffsets |
| Flag to determine if the underlying pointer is reaching a return statement in the associated function or not. | |
A type to track pointer/struct usage and accesses for AAPointerInfo.
Definition at line 774 of file AttributorAttributes.cpp.
|
default |
Referenced by getAssumed(), getBestState(), getWorstState(), operator=(), operator=(), and State().
| ChangeStatus llvm::AA::PointerInfo::State::addAccess | ( | Attributor & | A, |
| const AAPointerInfo::RangeList & | Ranges, | ||
| Instruction & | I, | ||
| std::optional< Value * > | Content, | ||
| AAPointerInfo::AccessKind | Kind, | ||
| Type * | Ty, | ||
| Instruction * | RemoteI = nullptr ) |
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. If an Access already exists for the same I and same RemoteI, the two are combined, potentially losing information about offset and size. The resulting access must now be moved from its original OffsetBin to the bin for its new offset.
\Returns CHANGED, if the state changed, UNCHANGED otherwise.
Definition at line 916 of file AttributorAttributes.cpp.
References A(), AccessList, assert(), llvm::Bin, llvm::CHANGED, llvm::dbgs(), I, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, LLVM_DEBUG, OffsetBins, RemoteIMap, llvm::AAPointerInfo::RangeList::set_difference(), ToRemove, and llvm::UNCHANGED.
|
inline |
Definition at line 839 of file AttributorAttributes.cpp.
References OffsetBins.
|
inline |
Definition at line 840 of file AttributorAttributes.cpp.
References OffsetBins.
|
inlineprotected |
See AAPointerInfo::forallInterferingAccesses.
Definition at line 871 of file AttributorAttributes.cpp.
References Access, AccessList, F, isValidState(), OffsetBins, Range, and ReturnedOffsets.
Referenced by forallInterferingAccesses().
|
inlineprotected |
See AAPointerInfo::forallInterferingAccesses.
Definition at line 891 of file AttributorAttributes.cpp.
References AccessList, F, forallInterferingAccesses(), I, isValidState(), Range, RemoteIMap, and ReturnedOffsets.
|
inline |
Definition at line 843 of file AttributorAttributes.cpp.
References AccessList.
Definition at line 788 of file AttributorAttributes.cpp.
References State().
Return the best possible representable state.
Definition at line 776 of file AttributorAttributes.cpp.
References State().
Return the worst possible representable state.
Definition at line 779 of file AttributorAttributes.cpp.
References State().
|
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.
Implements llvm::AbstractState.
Definition at line 794 of file AttributorAttributes.cpp.
References llvm::UNCHANGED.
|
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.
Implements llvm::AbstractState.
Definition at line 799 of file AttributorAttributes.cpp.
References llvm::CHANGED.
|
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 792 of file AttributorAttributes.cpp.
|
inlineoverridevirtual |
Return if this abstract state is in a valid state.
If false, no information provided should be used.
Implements llvm::AbstractState.
Definition at line 790 of file AttributorAttributes.cpp.
Referenced by forallInterferingAccesses(), and forallInterferingAccesses().
|
inline |
Definition at line 841 of file AttributorAttributes.cpp.
References OffsetBins.
Definition at line 804 of file AttributorAttributes.cpp.
References AccessList, OffsetBins, RemoteIMap, ReturnedOffsets, and State().
Definition at line 815 of file AttributorAttributes.cpp.
References AccessList, OffsetBins, RemoteIMap, ReturnedOffsets, State(), and std::swap().
|
protected |
Definition at line 860 of file AttributorAttributes.cpp.
Referenced by addAccess(), forallInterferingAccesses(), forallInterferingAccesses(), getAccess(), operator=(), and operator=().
|
protected |
Definition at line 861 of file AttributorAttributes.cpp.
Referenced by addAccess(), begin(), end(), forallInterferingAccesses(), numOffsetBins(), operator=(), and operator=().
|
protected |
Definition at line 862 of file AttributorAttributes.cpp.
Referenced by addAccess(), forallInterferingAccesses(), operator=(), and operator=().
|
protected |
Flag to determine if the underlying pointer is reaching a return statement in the associated function or not.
Returns in other functions cause invalidation.
Definition at line 867 of file AttributorAttributes.cpp.
Referenced by forallInterferingAccesses(), forallInterferingAccesses(), operator=(), and operator=().