LLVM  10.0.0svn
Public Member Functions | List of all members
llvm::IRAttribute< AK, Base > Struct Template Reference

Helper class that provides common functionality to manifest IR attributes. More...

#include "llvm/Transforms/IPO/Attributor.h"

Inheritance diagram for llvm::IRAttribute< AK, Base >:
Inheritance graph
[legend]
Collaboration diagram for llvm::IRAttribute< AK, Base >:
Collaboration graph
[legend]

Public Member Functions

 IRAttribute (const IRPosition &IRP)
 
 ~IRAttribute ()
 
virtual void initialize (Attributor &A) override
 See AbstractAttribute::initialize(...). More...
 
ChangeStatus manifest (Attributor &A) override
 See AbstractAttribute::manifest(...). More...
 
Attribute::AttrKind getAttrKind () const
 Return the kind that identifies the abstract attribute implementation. More...
 
virtual void getDeducedAttributes (LLVMContext &Ctx, SmallVectorImpl< Attribute > &Attrs) const
 Return the deduced attributes in Attrs. 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
 

Additional Inherited Members

- 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...
 
- 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...
 
- Static Public Attributes inherited from llvm::IRPosition
static const IRPosition EmptyKey
 Special DenseMap key values. More...
 
static const IRPosition TombstoneKey
 

Detailed Description

template<Attribute::AttrKind AK, typename Base>
struct llvm::IRAttribute< AK, Base >

Helper class that provides common functionality to manifest IR attributes.

Definition at line 1170 of file Attributor.h.

Constructor & Destructor Documentation

◆ IRAttribute()

template<Attribute::AttrKind AK, typename Base>
llvm::IRAttribute< AK, Base >::IRAttribute ( const IRPosition IRP)
inline

Definition at line 1171 of file Attributor.h.

◆ ~IRAttribute()

template<Attribute::AttrKind AK, typename Base>
llvm::IRAttribute< AK, Base >::~IRAttribute ( )
inline

Definition at line 1172 of file Attributor.h.

Member Function Documentation

◆ getAttrKind()

template<Attribute::AttrKind AK, typename Base>
Attribute::AttrKind llvm::IRAttribute< AK, Base >::getAttrKind ( ) const
inline

Return the kind that identifies the abstract attribute implementation.

Definition at line 1203 of file Attributor.h.

◆ getDeducedAttributes()

template<Attribute::AttrKind AK, typename Base>
virtual void llvm::IRAttribute< AK, Base >::getDeducedAttributes ( LLVMContext Ctx,
SmallVectorImpl< Attribute > &  Attrs 
) const
inlinevirtual

Return the deduced attributes in Attrs.

Definition at line 1206 of file Attributor.h.

◆ getIRPosition() [1/2]

template<Attribute::AttrKind AK, typename Base>
IRPosition& llvm::IRAttribute< AK, Base >::getIRPosition ( )
inlineoverride

Return an IR position, see struct IRPosition.

{

Definition at line 1214 of file Attributor.h.

◆ getIRPosition() [2/2]

template<Attribute::AttrKind AK, typename Base>
const IRPosition& llvm::IRAttribute< AK, Base >::getIRPosition ( ) const
inlineoverride

Definition at line 1215 of file Attributor.h.

◆ initialize()

template<Attribute::AttrKind AK, typename Base>
virtual void llvm::IRAttribute< AK, Base >::initialize ( Attributor A)
inlineoverridevirtual

See AbstractAttribute::initialize(...).

Definition at line 1175 of file Attributor.h.

◆ manifest()

template<Attribute::AttrKind AK, typename Base>
ChangeStatus llvm::IRAttribute< AK, Base >::manifest ( Attributor A)
inlineoverride

See AbstractAttribute::manifest(...).

Definition at line 1196 of file Attributor.h.

Referenced by llvm::IRPosition::getAttrs().


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