struct BottomUpPtrState
Declaration
struct BottomUpPtrState : public PtrState { /* full declaration omitted */ };
Description
This class summarizes several per-pointer runtime properties which are propagated through the flow graph.
Declared at: llvm/lib/Transforms/ObjCARC/PtrState.h:168
Inherits from: PtrState
Member Variables
Inherited from PtrState:
Method Overview
- public BottomUpPtrState()
- public bool HandlePotentialAlterRefCount(llvm::Instruction * Inst, const llvm::Value * Ptr, llvm::objcarc::ProvenanceAnalysis & PA, llvm::objcarc::ARCInstKind Class)
- public void HandlePotentialUse(llvm::BasicBlock * BB, llvm::Instruction * Inst, const llvm::Value * Ptr, llvm::objcarc::ProvenanceAnalysis & PA, llvm::objcarc::ARCInstKind Class)
- public bool InitBottomUp(llvm::objcarc::ARCMDKindCache & Cache, llvm::Instruction * I)
- public bool MatchWithRetain()
Inherited from PtrState:
- public ClearKnownPositiveRefCount
- public ClearReverseInsertPts
- public ClearSequenceProgress
- public GetRRInfo
- public GetReleaseMetadata
- public GetSeq
- public HasKnownPositiveRefCount
- public HasReverseInsertPts
- public InsertCall
- public InsertReverseInsertPt
- public IsCFGHazardAfflicted
- public IsKnownSafe
- public IsTailCallRelease
- public IsTrackingImpreciseReleases
- public Merge
- public ResetSequenceProgress
- public SetCFGHazardAfflicted
- public SetKnownPositiveRefCount
- public SetKnownSafe
- public SetReleaseMetadata
- public SetSeq
- public SetTailCallRelease
Methods
¶BottomUpPtrState()
BottomUpPtrState()
Declared at: llvm/lib/Transforms/ObjCARC/PtrState.h:169
¶bool HandlePotentialAlterRefCount(
llvm::Instruction* Inst,
const llvm::Value* Ptr,
llvm::objcarc::ProvenanceAnalysis& PA,
llvm::objcarc::ARCInstKind Class)
bool HandlePotentialAlterRefCount(
llvm::Instruction* Inst,
const llvm::Value* Ptr,
llvm::objcarc::ProvenanceAnalysis& PA,
llvm::objcarc::ARCInstKind Class)
Declared at: llvm/lib/Transforms/ObjCARC/PtrState.h:185
Parameters
- llvm::Instruction* Inst
- const llvm::Value* Ptr
- llvm::objcarc::ProvenanceAnalysis& PA
- llvm::objcarc::ARCInstKind Class
¶void HandlePotentialUse(
llvm::BasicBlock* BB,
llvm::Instruction* Inst,
const llvm::Value* Ptr,
llvm::objcarc::ProvenanceAnalysis& PA,
llvm::objcarc::ARCInstKind Class)
void HandlePotentialUse(
llvm::BasicBlock* BB,
llvm::Instruction* Inst,
const llvm::Value* Ptr,
llvm::objcarc::ProvenanceAnalysis& PA,
llvm::objcarc::ARCInstKind Class)
Declared at: llvm/lib/Transforms/ObjCARC/PtrState.h:183
Parameters
- llvm::BasicBlock* BB
- llvm::Instruction* Inst
- const llvm::Value* Ptr
- llvm::objcarc::ProvenanceAnalysis& PA
- llvm::objcarc::ARCInstKind Class
¶bool InitBottomUp(
llvm::objcarc::ARCMDKindCache& Cache,
llvm::Instruction* I)
bool InitBottomUp(
llvm::objcarc::ARCMDKindCache& Cache,
llvm::Instruction* I)
Description
(Re-)Initialize this bottom up pointer returning true if we detected a pointer with nested releases.
Declared at: llvm/lib/Transforms/ObjCARC/PtrState.h:173
Parameters
¶bool MatchWithRetain()
bool MatchWithRetain()
Description
Return true if this set of releases can be paired with a release. Modifies state appropriately to reflect that the matching occurred if it is successful. It is assumed that one has already checked that the RCIdentity of the retain and the RCIdentity of this ptr state are the same.
Declared at: llvm/lib/Transforms/ObjCARC/PtrState.h:181