LLVM  10.0.0svn
Public Member Functions | List of all members
AADereferenceableReturned Struct Referencefinal

Dereferenceable attribute for a return value. More...

Inheritance diagram for AADereferenceableReturned:
Inheritance graph
[legend]
Collaboration diagram for AADereferenceableReturned:
Collaboration graph
[legend]

Public Member Functions

 AADereferenceableReturned (const IRPosition &IRP)
 
void trackStatistics () const override
 See AbstractAttribute::trackStatistics() More...
 
- Public Member Functions inherited from AAReturnedFromReturnedValues< AADereferenceable, AADereferenceableImpl, DerefState >
 AAReturnedFromReturnedValues (const IRPosition &IRP)
 
ChangeStatus updateImpl (Attributor &A) override
 See AbstractAttribute::updateImpl(...). More...
 
- Public Member Functions inherited from AADereferenceableImpl
 AADereferenceableImpl (const IRPosition &IRP)
 
void initialize (Attributor &A) override
 See AbstractAttribute::initialize(...). More...
 
StateTypegetState () override
 See AbstractAttribute::getState() {. More...
 
const StateTypegetState () const override
 
void getDeducedAttributes (LLVMContext &Ctx, SmallVectorImpl< Attribute > &Attrs) const override
 } More...
 
const std::string getAsStr () const override
 See AbstractAttribute::getAsStr(). More...
 
- Public Member Functions inherited from llvm::AADereferenceable
 AADereferenceable (const IRPosition &IRP)
 
bool isAssumedNonNull () const
 Return true if we assume that the underlying value is nonnull. More...
 
bool isAssumedGlobal () const
 Return true if we assume that underlying value is dereferenceable(_or_null) globally. More...
 
bool isKnownGlobal () const
 Return true if we know that underlying value is dereferenceable(_or_null) globally. More...
 
uint32_t getAssumedDereferenceableBytes () const
 Return assumed dereferenceable bytes. More...
 
uint32_t getKnownDereferenceableBytes () const
 Return known dereferenceable bytes. More...
 
- Public Member Functions inherited from llvm::IRAttribute< Attribute::Dereferenceable, StateWrapper< DerefState, AbstractAttribute > >
 IRAttribute (const IRPosition &IRP)
 
 ~IRAttribute ()
 
ChangeStatus manifest (Attributor &A) override
 See AbstractAttribute::manifest(...). More...
 
Attribute::AttrKind getAttrKind () const
 Return the kind that identifies the abstract attribute implementation. More...
 
IRPositiongetIRPosition () override
 Return an IR position, see struct IRPosition. More...
 
const IRPositiongetIRPosition () const override
 
- Public Member Functions inherited from llvm::IRPosition
virtual ~IRPosition ()
 
 IRPosition ()
 Default constructor available to create invalid positions implicitly. More...
 
bool operator== (const IRPosition &RHS) const
 
bool operator!= (const IRPosition &RHS) const
 
ValuegetAnchorValue ()
 Return the value this abstract attribute is anchored with. More...
 
const ValuegetAnchorValue () const
 
FunctiongetAssociatedFunction ()
 } More...
 
const FunctiongetAssociatedFunction () const
 
ArgumentgetAssociatedArgument ()
 } More...
 
const ArgumentgetAssociatedArgument () const
 
bool isFnInterfaceKind () const
 } More...
 
FunctiongetAnchorScope ()
 Return the Function surrounding the anchor value. More...
 
const FunctiongetAnchorScope () const
 
InstructiongetCtxI ()
 } More...
 
const InstructiongetCtxI () const
 
ValuegetAssociatedValue ()
 } More...
 
const ValuegetAssociatedValue () const
 
int getArgNo () const
 } More...
 
unsigned getAttrIdx () const
 Return the index in the attribute list for this position. More...
 
Kind getPositionKind () const
 Return the associated position kind. More...
 
bool hasAttr (ArrayRef< Attribute::AttrKind > AKs) const
 TODO: Figure out if the attribute related helper functions should live here or somewhere else. More...
 
void getAttrs (ArrayRef< Attribute::AttrKind > AKs, SmallVectorImpl< Attribute > &Attrs) const
 Return the attributes of any kind in AKs existing in the IR at a position that will affect this one. More...
 
Attribute getAttr (Attribute::AttrKind AK) const
 Return the attribute of kind AK existing in the IR at this position. More...
 
bool isAnyCallSitePosition () const
 
- Public Member Functions inherited from llvm::StateWrapper< DerefState, AbstractAttribute >
StateTypegetState () override
 See AbstractAttribute::getState(...). More...
 
const AbstractStategetState () const override
 See AbstractAttribute::getState(...). More...
 
- Public Member Functions inherited from llvm::DerefState
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...
 
void takeKnownDerefBytesMaximum (uint64_t Bytes)
 Update known dereferenceable bytes. More...
 
void takeAssumedDerefBytesMinimum (uint64_t Bytes)
 Update assumed dereferenceable bytes. More...
 
bool operator== (const DerefState &R)
 Equality for DerefState. More...
 
bool operator!= (const DerefState &R)
 Inequality for IntegerState. More...
 
DerefState operator^= (const DerefState &R)
 See IntegerState::operator^=. More...
 
DerefState operator+= (const DerefState &R)
 See IntegerState::operator+=. More...
 
DerefState operator &= (const DerefState &R)
 See IntegerState::operator&=. More...
 
DerefState operator|= (const DerefState &R)
 See IntegerState::operator|=. More...
 
- Public Member Functions inherited from llvm::AbstractState
virtual ~AbstractState ()
 
- Public Member Functions inherited from llvm::AbstractAttribute
virtual ~AbstractAttribute ()
 Virtual destructor. More...
 
virtual void print (raw_ostream &OS) const
 Helper functions, for debug purposes only. More...
 
void dump () const
 

Additional Inherited Members

- Public Types inherited from AADereferenceableImpl
using StateType = DerefState
 
- Public Types inherited from llvm::IRPosition
enum  Kind : int {
  IRP_INVALID = -6, IRP_FLOAT = -5, IRP_RETURNED = -4, IRP_CALL_SITE_RETURNED = -3,
  IRP_FUNCTION = -2, IRP_CALL_SITE = -1, IRP_ARGUMENT = 0, IRP_CALL_SITE_ARGUMENT = 1
}
 The positions we distinguish in the IR. More...
 
- Public Types inherited from llvm::StateWrapper< DerefState, AbstractAttribute >
using StateType = DerefState
 Provide static access to the type of the state. More...
 
- Public Types inherited from llvm::AbstractAttribute
using StateType = AbstractState
 
- Static Public Member Functions inherited from llvm::AADereferenceable
static AADereferenceablecreateForPosition (const IRPosition &IRP, Attributor &A)
 Create an abstract attribute view for the position IRP. More...
 
- Static Public Member Functions inherited from llvm::IRPosition
static const IRPosition value (const Value &V)
 Create a position describing the value of V. More...
 
static const IRPosition function (const Function &F)
 Create a position describing the function scope of F. More...
 
static const IRPosition returned (const Function &F)
 Create a position describing the returned value of F. More...
 
static const IRPosition argument (const Argument &Arg)
 Create a position describing the argument Arg. More...
 
static const IRPosition callsite_function (const CallBase &CB)
 Create a position describing the function scope of CB. More...
 
static const IRPosition callsite_returned (const CallBase &CB)
 Create a position describing the returned value of CB. More...
 
static const IRPosition callsite_argument (const CallBase &CB, unsigned ArgNo)
 Create a position describing the argument of CB at position ArgNo. More...
 
static const IRPosition callsite_function (ImmutableCallSite ICS)
 Create a position describing the function scope of ICS. More...
 
static const IRPosition callsite_returned (ImmutableCallSite ICS)
 Create a position describing the returned value of ICS. More...
 
static const IRPosition callsite_argument (ImmutableCallSite ICS, unsigned ArgNo)
 Create a position describing the argument of ICS at position ArgNo. More...
 
static const IRPosition function_scope (const IRPosition &IRP)
 Create a position with function scope matching the "context" of IRP. More...
 
- Public Attributes inherited from llvm::DerefState
IntegerState DerefBytesState
 State representing for dereferenceable bytes. More...
 
BooleanState GlobalState
 State representing that whether the value is globaly dereferenceable. More...
 
- Static Public Attributes inherited from llvm::AADereferenceable
static const char ID = 0
 Unique ID (due to the unique address) More...
 
- Static Public Attributes inherited from llvm::IRPosition
static const IRPosition EmptyKey
 Special DenseMap key values. More...
 
static const IRPosition TombstoneKey
 
- Protected Member Functions inherited from llvm::AbstractAttribute
ChangeStatus update (Attributor &A)
 Hook for the Attributor to trigger an update of the internal state. More...
 
virtual ChangeStatus updateImpl (Attributor &A)=0
 The actual update/transfer function which has to be implemented by the derived classes. More...
 
- Protected Attributes inherited from llvm::DerefState
const AANonNullNonNullAA = nullptr
 

Detailed Description

Dereferenceable attribute for a return value.

Definition at line 2333 of file Attributor.cpp.

Constructor & Destructor Documentation

◆ AADereferenceableReturned()

AADereferenceableReturned::AADereferenceableReturned ( const IRPosition IRP)
inline

Definition at line 2336 of file Attributor.cpp.

Member Function Documentation

◆ trackStatistics()

void AADereferenceableReturned::trackStatistics ( ) const
inlineoverridevirtual

See AbstractAttribute::trackStatistics()

Implements llvm::AbstractAttribute.

Definition at line 2341 of file Attributor.cpp.

References STATS_DECLTRACK_FNRET_ATTR.


The documentation for this struct was generated from the following file: