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

Liveness information for a call sites. More...

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

Public Member Functions

 AAIsDeadCallSite (const IRPosition &IRP)
 
void initialize (Attributor &A) override
 See AbstractAttribute::initialize(...). More...
 
ChangeStatus updateImpl (Attributor &A) override
 See AbstractAttribute::updateImpl(...). More...
 
void trackStatistics () const override
 See AbstractAttribute::trackStatistics() More...
 
- Public Member Functions inherited from AAIsDeadImpl
 AAIsDeadImpl (const IRPosition &IRP)
 
void exploreFromEntry (Attributor &A, const Function *F)
 
const InstructionfindNextNoReturn (Attributor &A, const Instruction *I)
 Find the next assumed noreturn instruction in the block of I starting from, thus including, I. More...
 
const std::string getAsStr () const override
 See AbstractAttribute::getAsStr(). More...
 
ChangeStatus manifest (Attributor &A) override
 See AbstractAttribute::manifest(...). More...
 
bool isAssumedDead (const BasicBlock *BB) const override
 See AAIsDead::isAssumedDead(BasicBlock *). More...
 
bool isKnownDead (const BasicBlock *BB) const override
 See AAIsDead::isKnownDead(BasicBlock *). More...
 
bool isAssumedDead (const Instruction *I) const override
 See AAIsDead::isAssumed(Instruction *I). More...
 
bool isKnownDead (const Instruction *I) const override
 See AAIsDead::isKnownDead(Instruction *I). More...
 
bool isAfterNoReturn (const Instruction *I) const
 Check if instruction is after noreturn call, in other words, assumed dead. More...
 
void assumeLive (Attributor &A, const BasicBlock &BB)
 Assume BB is (partially) live now and indicate to the Attributor A that internal function called from BB should now be looked at. More...
 
- Public Member Functions inherited from llvm::AAIsDead
 AAIsDead (const IRPosition &IRP)
 
template<typename T >
bool isLiveInstSet (T begin, T end) const
 This method is used to check if at least one instruction in a collection of instructions is live. More...
 
IRPositiongetIRPosition () override
 Return an IR position, see struct IRPosition. More...
 
const IRPositiongetIRPosition () const override
 Return an IR position, see struct IRPosition. More...
 
- Public Member Functions inherited from llvm::StateWrapper< BooleanState, AbstractAttribute >
StateTypegetState () override
 See AbstractAttribute::getState(...). More...
 
const AbstractStategetState () const override
 See AbstractAttribute::getState(...). More...
 
- Public Member Functions inherited from llvm::BooleanState
 BooleanState ()
 
- 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...
 
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
 
- 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::StateWrapper< BooleanState, AbstractAttribute >
using StateType = BooleanState
 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
 
- 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 AAIsDeadImpl
static bool mayCatchAsynchronousExceptions (const Function &F)
 Determine if F might catch asynchronous exceptions. More...
 
- Static Public Member Functions inherited from llvm::AAIsDead
static AAIsDeadcreateForPosition (const IRPosition &IRP, Attributor &A)
 } More...
 
- Static Public Member Functions inherited from llvm::IntegerState
static constexpr base_t getWorstState ()
 Return the worst possible representable state. 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 AAIsDeadImpl
SmallSetVector< const Instruction *, 8 > ToBeExploredPaths
 Collection of to be explored paths. More...
 
DenseSet< const BasicBlock * > AssumedLiveBlocks
 Collection of all assumed live BasicBlocks. More...
 
SmallSetVector< const Instruction *, 4 > NoReturnCalls
 Collection of calls with noreturn attribute, assumed or knwon. More...
 
- Static Public Attributes inherited from llvm::AAIsDead
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...
 

Detailed Description

Liveness information for a call sites.

Definition at line 2175 of file Attributor.cpp.

Constructor & Destructor Documentation

◆ AAIsDeadCallSite()

AAIsDeadCallSite::AAIsDeadCallSite ( const IRPosition IRP)
inline

Definition at line 2176 of file Attributor.cpp.

Member Function Documentation

◆ initialize()

void AAIsDeadCallSite::initialize ( Attributor A)
inlineoverridevirtual

See AbstractAttribute::initialize(...).

Reimplemented from AAIsDeadImpl.

Definition at line 2179 of file Attributor.cpp.

References llvm_unreachable.

◆ trackStatistics()

void AAIsDeadCallSite::trackStatistics ( ) const
inlineoverridevirtual

See AbstractAttribute::trackStatistics()

Implements llvm::AbstractAttribute.

Definition at line 2194 of file Attributor.cpp.

◆ updateImpl()

ChangeStatus AAIsDeadCallSite::updateImpl ( Attributor A)
inlineoverridevirtual

See AbstractAttribute::updateImpl(...).

Reimplemented from AAIsDeadImpl.

Definition at line 2189 of file Attributor.cpp.


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