LLVM  10.0.0svn
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
llvm::AAAlign Struct Reference

An abstract interface for all align attributes. More...

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

Inheritance diagram for llvm::AAAlign:
Inheritance graph
[legend]
Collaboration diagram for llvm::AAAlign:
Collaboration graph
[legend]

Public Member Functions

 AAAlign (const IRPosition &IRP)
 
unsigned getAssumedAlign () const
 Return assumed alignment. More...
 
unsigned getKnownAlign () const
 Return known alignemnt. More...
 
- Public Member Functions inherited from llvm::IRAttribute< Attribute::Alignment, StateWrapper< IntegerState, AbstractAttribute > >
 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, bool IgnoreSubsumingPositions=false) 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...
 
void removeAttrs (ArrayRef< Attribute::AttrKind > AKs)
 Remove the attribute of kind AKs existing in the IR at this position. More...
 
bool isAnyCallSitePosition () const
 
- Public Member Functions inherited from llvm::StateWrapper< IntegerState, AbstractAttribute >
StateTypegetState () override
 See AbstractAttribute::getState(...). More...
 
const AbstractStategetState () const override
 See AbstractAttribute::getState(...). More...
 
- Public Member Functions inherited from llvm::IntegerState
 IntegerState (base_t BestState=~0)
 Initialize the (best) state. More...
 
bool isValidState () const override
 See AbstractState::isValidState() NOTE: For now we simply pretend that the worst possible state is invalid. More...
 
bool isAtFixpoint () const override
 See AbstractState::isAtFixpoint() More...
 
ChangeStatus indicateOptimisticFixpoint () override
 See AbstractState::indicateOptimisticFixpoint(...) More...
 
ChangeStatus indicatePessimisticFixpoint () override
 See AbstractState::indicatePessimisticFixpoint(...) More...
 
base_t getKnown () const
 Return the known state encoding. More...
 
base_t getAssumed () const
 Return the assumed state encoding. More...
 
bool isKnown (base_t BitsEncoding) const
 Return true if the bits set in BitsEncoding are "known bits". More...
 
bool isAssumed (base_t BitsEncoding) const
 Return true if the bits set in BitsEncoding are "assumed bits". More...
 
IntegerStateaddKnownBits (base_t Bits)
 Add the bits in BitsEncoding to the "known bits". More...
 
IntegerStateremoveAssumedBits (base_t BitsEncoding)
 Remove the bits in BitsEncoding from the "assumed bits" if not known. More...
 
IntegerStateremoveKnownBits (base_t BitsEncoding)
 Remove the bits in BitsEncoding from the "known bits". More...
 
IntegerStateintersectAssumedBits (base_t BitsEncoding)
 Keep only "assumed bits" also set in BitsEncoding but all known ones. More...
 
IntegerStatetakeAssumedMinimum (base_t Value)
 Take minimum of assumed and Value. More...
 
IntegerStatetakeKnownMaximum (base_t Value)
 Take maximum of known and Value. More...
 
bool operator== (const IntegerState &R) const
 Equality for IntegerState. More...
 
bool operator!= (const IntegerState &R) const
 Inequality for IntegerState. More...
 
IntegerState operator^= (const IntegerState &R)
 "Clamp" this state with R. More...
 
IntegerState operator+= (const IntegerState &R)
 "Clamp" this state with R. More...
 
IntegerState operator &= (const IntegerState &R)
 Make this the minimum, known and assumed, of this state and R. More...
 
IntegerState operator|= (const IntegerState &R)
 Make this the maximum, known and assumed, of this state and R. 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
 
virtual const std::string getAsStr () const =0
 This function should return the "summarized" assumed state as string. More...
 

Static Public Member Functions

static AAAligncreateForPosition (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 callsite_argument (AbstractCallSite ACS, unsigned ArgNo)
 Create a position describing the argument of ACS 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 Member Functions inherited from llvm::IntegerState
static constexpr base_t getWorstState ()
 Return the worst possible representable state. More...
 

Static Public Attributes

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
 

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...
 
- Public Types inherited from llvm::StateWrapper< IntegerState, AbstractAttribute >
using StateType = IntegerState
 Provide static access to the type of the state. More...
 
- Public Types inherited from llvm::IntegerState
using base_t = uint32_t
 Underlying integer type, we assume 32 bits to be enough. More...
 
- Public Types inherited from llvm::AbstractAttribute
using StateType = AbstractState
 
- 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 void trackStatistics () const =0
 Hook to enable custom statistic tracking, called after manifest that resulted in a change if statistics are enabled. More...
 
virtual ChangeStatus updateImpl (Attributor &A)=0
 The actual update/transfer function which has to be implemented by the derived classes. More...
 

Detailed Description

An abstract interface for all align attributes.

Definition at line 1781 of file Attributor.h.

Constructor & Destructor Documentation

◆ AAAlign()

llvm::AAAlign::AAAlign ( const IRPosition IRP)
inline

Definition at line 1784 of file Attributor.h.

Member Function Documentation

◆ createForPosition()

static AAAlign& llvm::AAAlign::createForPosition ( const IRPosition IRP,
Attributor A 
)
static

Create an abstract attribute view for the position IRP.

◆ getAssumedAlign()

unsigned llvm::AAAlign::getAssumedAlign ( ) const
inline

Return assumed alignment.

Definition at line 1787 of file Attributor.h.

◆ getKnownAlign()

unsigned llvm::AAAlign::getKnownAlign ( ) const
inline

Return known alignemnt.

Definition at line 1790 of file Attributor.h.

Member Data Documentation

◆ ID

const char AAAlign::ID = 0
static

Unique ID (due to the unique address)

Definition at line 1796 of file Attributor.h.

Referenced by llvm::createAttributorLegacyPass().


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