struct TopDownPtrState

Declaration

struct TopDownPtrState : 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:189

Inherits from: PtrState

Member Variables

Inherited from PtrState:

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

Method Overview

  • public bool HandlePotentialAlterRefCount(llvm::Instruction * Inst, const llvm::Value * Ptr, llvm::objcarc::ProvenanceAnalysis & PA, llvm::objcarc::ARCInstKind Class)
  • public void HandlePotentialUse(llvm::Instruction * Inst, const llvm::Value * Ptr, llvm::objcarc::ProvenanceAnalysis & PA, llvm::objcarc::ARCInstKind Class)
  • public bool InitTopDown(llvm::objcarc::ARCInstKind Kind, llvm::Instruction * I)
  • public bool MatchWithRelease(llvm::objcarc::ARCMDKindCache & Cache, llvm::Instruction * Release)
  • public TopDownPtrState()

Inherited from PtrState:

Methods

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:204

Parameters

llvm::Instruction* Inst
const llvm::Value* Ptr
llvm::objcarc::ProvenanceAnalysis& PA
llvm::objcarc::ARCInstKind Class

void HandlePotentialUse(
    llvm::Instruction* Inst,
    const llvm::Value* Ptr,
    llvm::objcarc::ProvenanceAnalysis& PA,
    llvm::objcarc::ARCInstKind Class)

Declared at: llvm/lib/Transforms/ObjCARC/PtrState.h:201

Parameters

llvm::Instruction* Inst
const llvm::Value* Ptr
llvm::objcarc::ProvenanceAnalysis& PA
llvm::objcarc::ARCInstKind Class

bool InitTopDown(llvm::objcarc::ARCInstKind Kind,
                 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:194

Parameters

llvm::objcarc::ARCInstKind Kind
llvm::Instruction* I

bool MatchWithRelease(
    llvm::objcarc::ARCMDKindCache& Cache,
    llvm::Instruction* Release)

Description

Return true if this set of retains can be paired with the given release. Modifies state appropriately to reflect that the matching occurred.

Declared at: llvm/lib/Transforms/ObjCARC/PtrState.h:199

Parameters

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

TopDownPtrState()

Declared at: llvm/lib/Transforms/ObjCARC/PtrState.h:190