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:

protected KnownPositiveRefCount = false
protected Partial = false
protected Seq
protected RRI

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:

Methods

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)

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)

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)

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

llvm::objcarc::ARCMDKindCache& Cache
llvm::Instruction* I

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