LLVM: llvm::AAIsDead Struct Reference (original) (raw)
An abstract interface for liveness abstract attribute. More...
#include "[llvm/Transforms/IPO/Attributor.h](Attributor%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| AAIsDead (const IRPosition &IRP, Attributor &A) | |
| virtual bool | isAssumedDead (const BasicBlock *BB) const =0 |
| Returns true if BB is assumed dead. | |
| virtual bool | isEdgeDead (const BasicBlock *From, const BasicBlock *To) const |
| Return if the edge from From BB to To BB is assumed dead. | |
| StringRef | getName () const override |
| See AbstractAttribute::getName() | |
| const char * | getIdAddr () const override |
| See AbstractAttribute::getIdAddr() | |
| Public Member Functions inherited from llvm::StateWrapper< BitIntegerState< uint8_t, 3, 0 >, AbstractAttribute > | |
| StateWrapper (const IRPosition &IRP, Ts... Args) | |
| StateType & | getState () override |
| See AbstractAttribute::getState(...). | |
| const StateType & | getState () const override |
| See AbstractAttribute::getState(...). | |
| Public Member Functions inherited from llvm::AbstractAttribute | |
| AbstractAttribute (const IRPosition &IRP) | |
| ~AbstractAttribute () override=default | |
| Virtual destructor. | |
| virtual void | initialize (Attributor &A) |
| Initialize the state with the information in the Attributor A. | |
| virtual bool | isQueryAA () const |
| A query AA is always scheduled as long as we do updates because it does lazy computation that cannot be determined to be done from the outside. | |
| const IRPosition & | getIRPosition () const |
| Return an IR position, see struct IRPosition. | |
| IRPosition & | getIRPosition () |
| void | print (raw_ostream &OS) const |
| Helper functions, for debug purposes only. | |
| void | print (Attributor *, raw_ostream &OS) const override |
| virtual void | printWithDeps (raw_ostream &OS) const |
| void | dump () const |
| virtual const std::string | getAsStr (Attributor *A) const =0 |
| This function should return the "summarized" assumed state as string. | |
| Public Member Functions inherited from llvm::IRPosition | |
| IRPosition () | |
| Default constructor available to create invalid positions implicitly. | |
| bool | operator== (const IRPosition &RHS) const |
| bool | operator!= (const IRPosition &RHS) const |
| Value & | getAnchorValue () const |
| Return the value this abstract attribute is anchored with. | |
| Function * | getAssociatedFunction () const |
| Return the associated function, if any. | |
| LLVM_ABI Argument * | getAssociatedArgument () const |
| Return the associated argument, if any. | |
| bool | isFnInterfaceKind () const |
| Return true if the position refers to a function interface, that is the function scope, the function return, or an argument. | |
| bool | isFunctionScope () const |
| Return true if this is a function or call site position. | |
| Function * | getAnchorScope () const |
| Return the Function surrounding the anchor value. | |
| Instruction * | getCtxI () const |
| Return the context instruction, if any. | |
| Value & | getAssociatedValue () const |
| Return the value this abstract attribute is associated with. | |
| Type * | getAssociatedType () const |
| Return the type this abstract attribute is associated with. | |
| int | getCalleeArgNo () const |
| Return the callee argument number of the associated value if it is an argument or call site argument, otherwise a negative value. | |
| int | getCallSiteArgNo () const |
| Return the call site argument number of the associated value if it is an argument or call site argument, otherwise a negative value. | |
| unsigned | getAttrIdx () const |
| Return the index in the attribute list for this position. | |
| Value * | getAttrListAnchor () const |
| Return the value attributes are attached to. | |
| AttributeList | getAttrList () const |
| Return the attributes associated with this function or call site scope. | |
| void | setAttrList (const AttributeList &AttrList) const |
| Update the attributes associated with this function or call site scope. | |
| unsigned | getNumArgs () const |
| Return the number of arguments associated with this function or call site scope. | |
| Value * | getArg (unsigned ArgNo) const |
| Return theargument ArgNo associated with this function or call site scope. | |
| Kind | getPositionKind () const |
| Return the associated position kind. | |
| bool | isAnyCallSitePosition () const |
| bool | isArgumentPosition () const |
| Return true if the position is an argument or call site argument. | |
| IRPosition | stripCallBaseContext () const |
| Return the same position without the call base context. | |
| const CallBaseContext * | getCallBaseContext () const |
| Get the call base context from the position. | |
| bool | hasCallBaseContext () const |
| Check if the position has any call base context. | |
| operator void * () const | |
| } | |
| Public Member Functions inherited from llvm::AADepGraphNode | |
| virtual | ~AADepGraphNode ()=default |
| aaiterator | begin () |
| aaiterator | end () |
| iterator | child_begin () |
| iterator | child_end () |
| void | print (raw_ostream &OS) const |
| DepSetTy & | getDeps () |
| Public Member Functions inherited from llvm::BitIntegerState< base_ty, BestState, WorstState > | |
| BitIntegerState ()=default | |
| BitIntegerState (base_t Assumed) | |
| bool | isKnown (base_t BitsEncoding=BestState) const |
| Return true if the bits set in BitsEncoding are "known bits". | |
| bool | isAssumed (base_t BitsEncoding=BestState) const |
| Return true if the bits set in BitsEncoding are "assumed bits". | |
| BitIntegerState & | addKnownBits (base_t Bits) |
| Add the bits in BitsEncoding to the "known bits". | |
| BitIntegerState & | removeAssumedBits (base_t BitsEncoding) |
| Remove the bits in BitsEncoding from the "assumed bits" if not known. | |
| BitIntegerState & | removeKnownBits (base_t BitsEncoding) |
| Remove the bits in BitsEncoding from the "known bits". | |
| BitIntegerState & | intersectAssumedBits (base_t BitsEncoding) |
| Keep only "assumed bits" also set in BitsEncoding but all known ones. | |
| Public Member Functions inherited from llvm::IntegerStateBase< uint32_t, ~uint32_t(0), 0 > | |
| IntegerStateBase ()=default | |
| bool | isValidState () const override |
| See AbstractState::isValidState() NOTE: For now we simply pretend that the worst possible state is invalid. | |
| bool | isAtFixpoint () const override |
| See AbstractState::isAtFixpoint() | |
| ChangeStatus | indicateOptimisticFixpoint () override |
| See AbstractState::indicateOptimisticFixpoint(...) | |
| ChangeStatus | indicatePessimisticFixpoint () override |
| See AbstractState::indicatePessimisticFixpoint(...) | |
| base_t | getKnown () const |
| Return the known state encoding. | |
| base_t | getAssumed () const |
| Return the assumed state encoding. | |
| bool | operator== (const IntegerStateBase< base_t, BestState, WorstState > &R) const |
| Equality for IntegerStateBase. | |
| bool | operator!= (const IntegerStateBase< base_t, BestState, WorstState > &R) const |
| Inequality for IntegerStateBase. | |
| void | operator^= (const IntegerStateBase< base_t, BestState, WorstState > &R) |
| "Clamp" this state with R. | |
| void | operator+= (const IntegerStateBase< base_t, BestState, WorstState > &R) |
| "Clamp" this state with R. | |
| void | operator|= (const IntegerStateBase< base_t, BestState, WorstState > &R) |
| void | operator&= (const IntegerStateBase< base_t, BestState, WorstState > &R) |
| Public Member Functions inherited from llvm::AbstractState | |
| virtual | ~AbstractState ()=default |
| Static Public Member Functions | |
|---|---|
| static bool | isValidIRPositionForInit (Attributor &A, const IRPosition &IRP) |
| See AbstractAttribute::isValidIRPositionForInit. | |
| static LLVM_ABI AAIsDead & | createForPosition (const IRPosition &IRP, Attributor &A) |
| Create an abstract attribute view for the position IRP. | |
| static bool | mayCatchAsynchronousExceptions (const Function &F) |
| Determine if F might catch asynchronous exceptions. | |
| static bool | classof (const AbstractAttribute *AA) |
| This function should return true if the type of the AA is AAIsDead. | |
| Static Public Member Functions inherited from llvm::AbstractAttribute | |
| static bool | classof (const AADepGraphNode *DGN) |
| This function is used to identify if an DGN is of type [AbstractAttribute](structllvm%5F1%5F1AbstractAttribute.html "Base struct for all "concrete attribute" deductions.") so that the dyn_cast and cast can use such information to cast an AADepGraphNode to an [AbstractAttribute](structllvm%5F1%5F1AbstractAttribute.html "Base struct for all "concrete attribute" deductions."). | |
| static bool | hasTrivialInitializer () |
| Return false if this AA does anything non-trivial (hence not done by default) in its initializer. | |
| static bool | requiresCalleeForCallBase () |
| Return true if this AA requires a "callee" (or an associted function) for a call site positon. | |
| static bool | requiresNonAsmForCallBase () |
| Return true if this AA requires non-asm "callee" for a call site positon. | |
| static bool | requiresCallersForArgOrFunction () |
| Return true if this AA requires all callees for an argument or function positon. | |
| static bool | isValidIRPositionForInit (Attributor &A, const IRPosition &IRP) |
| Return false if an AA should not be created for IRP. | |
| static bool | isValidIRPositionForUpdate (Attributor &A, const IRPosition &IRP) |
| Return false if an AA should not be updated for IRP. | |
| Static Public Member Functions inherited from llvm::IRPosition | |
| static const IRPosition | value (const Value &V, const CallBaseContext *CBContext=nullptr) |
| Create a position describing the value of V. | |
| static const IRPosition | inst (const Instruction &I, const CallBaseContext *CBContext=nullptr) |
| Create a position describing the instruction I. | |
| static const IRPosition | function (const Function &F, const CallBaseContext *CBContext=nullptr) |
| Create a position describing the function scope of F. | |
| static const IRPosition | returned (const Function &F, const CallBaseContext *CBContext=nullptr) |
| Create a position describing the returned value of F. | |
| static const IRPosition | argument (const Argument &Arg, const CallBaseContext *CBContext=nullptr) |
| Create a position describing the argument Arg. | |
| static const IRPosition | callsite_function (const CallBase &CB) |
| Create a position describing the function scope of CB. | |
| static const IRPosition | callsite_returned (const CallBase &CB) |
| Create a position describing the returned value of CB. | |
| static const IRPosition | callsite_argument (const CallBase &CB, unsigned ArgNo) |
| Create a position describing the argument of CB at position ArgNo. | |
| static const IRPosition | callsite_argument (AbstractCallSite ACS, unsigned ArgNo) |
| Create a position describing the argument of ACS at position ArgNo. | |
| static const IRPosition | function_scope (const IRPosition &IRP, const CallBaseContext *CBContext=nullptr) |
| Create a position with function scope matching the "context" of IRP. | |
| Static Public Member Functions inherited from llvm::IntegerStateBase< uint32_t, ~uint32_t(0), 0 > | |
| static constexpr base_t | getBestState () |
| Return the best possible representable state. | |
| static constexpr base_t | getWorstState () |
| Return the worst possible representable state. |
| Static Public Attributes | |
|---|---|
| static LLVM_ABI const char | ID = 0 |
| Unique ID (due to the unique address) | |
| Static Public Attributes inherited from llvm::AbstractAttribute | |
| static constexpr Attribute::AttrKind | IRAttributeKind = Attribute::None |
| Compile time access to the IR attribute kind. | |
| Static Public Attributes inherited from llvm::IRPosition | |
| static LLVM_ABI const IRPosition | EmptyKey |
| Special DenseMap key values. | |
| static LLVM_ABI const IRPosition | TombstoneKey |
| Protected Member Functions | |
|---|---|
| virtual bool | isAssumedDead () const =0 |
| The query functions are protected such that other attributes need to go through the Attributor interfaces: Attributor::isAssumedDead(...) | |
| virtual bool | isKnownDead () const =0 |
| Returns true if the underlying value is known dead. | |
| virtual bool | isKnownDead (const BasicBlock *BB) const =0 |
| Returns true if BB is known dead. | |
| virtual bool | isAssumedDead (const Instruction *I) const =0 |
| Returns true if I is assumed dead. | |
| virtual bool | isKnownDead (const Instruction *I) const =0 |
| Returns true if I is known dead. | |
| virtual bool | isRemovableStore () const |
| Return true if the underlying value is a store that is known to be removable. | |
| 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. | |
| Protected Member Functions inherited from llvm::AbstractAttribute | |
| ChangeStatus | update (Attributor &A) |
| Hook for the Attributor to trigger an update of the internal state. | |
| virtual ChangeStatus | manifest (Attributor &A) |
| Hook for the Attributor to trigger the manifestation of the information represented by the abstract attribute in the LLVM-IR. | |
| virtual void | trackStatistics () const =0 |
| Hook to enable custom statistic tracking, called after manifest that resulted in a change if statistics are enabled. | |
| virtual ChangeStatus | updateImpl (Attributor &A)=0 |
| The actual update/transfer function which has to be implemented by the derived classes. | |
| Protected Member Functions inherited from llvm::AADepGraphNode | |
| operator AbstractAttribute * () | |
| Protected Member Functions inherited from llvm::IntegerStateBase< uint32_t, ~uint32_t(0), 0 > | |
| virtual void | handleNewAssumedValue (base_t Value)=0 |
| Handle a new assumed value Value. Subtype dependent. | |
| virtual void | handleNewKnownValue (base_t Value)=0 |
| Handle a new known value Value. Subtype dependent. | |
| virtual void | joinOR (base_t AssumedValue, base_t KnownValue)=0 |
| Handle a value Value. Subtype dependent. | |
| virtual void | joinAND (base_t AssumedValue, base_t KnownValue)=0 |
| Handle a new assumed value Value. Subtype dependent. |
| Friends | |
|---|---|
| struct | Attributor |
| Additional Inherited Members | |
|---|---|
| Static Protected Member Functions inherited from llvm::AADepGraphNode | |
| static AADepGraphNode * | DepGetVal (const DepTy &DT) |
| static AbstractAttribute * | DepGetValAA (const DepTy &DT) |
| Protected Attributes inherited from llvm::AADepGraphNode | |
| DepSetTy | Deps |
| Set of dependency graph nodes which should be updated if this one is updated. | |
| Protected Attributes inherited from llvm::IntegerStateBase< uint32_t, ~uint32_t(0), 0 > | |
| base_t | Known |
| The known state encoding in an integer of type base_t. | |
| base_t | Assumed |
| The assumed state encoding in an integer of type base_t. |
An abstract interface for liveness abstract attribute.
Definition at line 4025 of file Attributor.h.
◆ Base
◆ anonymous enum
State encoding bits. A set bit in the state means the property holds.
| Enumerator |
|---|
| HAS_NO_EFFECT |
| IS_REMOVABLE |
| IS_DEAD |
Definition at line 4039 of file Attributor.h.
◆ classof()
◆ createForPosition()
◆ getIdAddr()
| const char * llvm::AAIsDead::getIdAddr ( ) const | inlineoverridevirtual |
|---|
◆ getName()
| StringRef llvm::AAIsDead::getName ( ) const | inlineoverridevirtual |
|---|
◆ isAssumedDead() [1/3]
| virtual bool llvm::AAIsDead::isAssumedDead ( ) const | protectedpure virtual |
|---|
◆ isAssumedDead() [2/3]
Returns true if BB is assumed dead.
◆ isAssumedDead() [3/3]
Returns true if I is assumed dead.
References I.
◆ isEdgeDead()
Return if the edge from From BB to To BB is assumed dead.
This is specifically useful in AAReachability.
Definition at line 4101 of file Attributor.h.
◆ isKnownDead() [1/3]
| virtual bool llvm::AAIsDead::isKnownDead ( ) const | protectedpure virtual |
|---|
◆ isKnownDead() [2/3]
Returns true if BB is known dead.
◆ isKnownDead() [3/3]
Returns true if I is known dead.
References I.
◆ isLiveInstSet()
template<typename T>
| bool llvm::AAIsDead::isLiveInstSet ( T begin, T end ) const | inlineprotected |
|---|
◆ isRemovableStore()
| virtual bool llvm::AAIsDead::isRemovableStore ( ) const | inlineprotectedvirtual |
|---|
◆ isValidIRPositionForInit()
◆ mayCatchAsynchronousExceptions()
| bool llvm::AAIsDead::mayCatchAsynchronousExceptions ( const Function & F) | inlinestatic |
|---|
◆ Attributor
◆ ID
The documentation for this struct was generated from the following files:
- include/llvm/Transforms/IPO/Attributor.h
- lib/Transforms/IPO/AttributorAttributes.cpp