class PtrState

Declaration

class 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:101

Member Variables

protected bool KnownPositiveRefCount = false
True if the reference count is known to be incremented.
protected bool Partial = false
True if we've seen an opportunity for partial RR elimination, such as pushing calls into a CFG triangle or into one side of a CFG diamond.
protected unsigned char Seq
The current position in the sequence.
protected llvm::objcarc::RRInfo RRI
Unidirectional information about the current sequence.

Method Overview

Methods

void ClearKnownPositiveRefCount()

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

void ClearReverseInsertPts()

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

void ClearSequenceProgress()

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

const llvm::objcarc::RRInfo& GetRRInfo() const

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

const llvm::MDNode* GetReleaseMetadata() const

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

llvm::objcarc::Sequence GetSeq() const

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

bool HasKnownPositiveRefCount() const

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

bool HasReverseInsertPts() const

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

void InsertCall(llvm::Instruction* I)

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

Parameters

llvm::Instruction* I

void InsertReverseInsertPt(llvm::Instruction* I)

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

Parameters

llvm::Instruction* I

bool IsCFGHazardAfflicted() const

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

bool IsKnownSafe() const

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

bool IsTailCallRelease() const

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

bool IsTrackingImpreciseReleases() const

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

void Merge(const llvm::objcarc::PtrState& Other,
           bool TopDown)

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

Parameters

const llvm::objcarc::PtrState& Other
bool TopDown

PtrState()

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

void ResetSequenceProgress(
    llvm::objcarc::Sequence NewSeq)

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

Parameters

llvm::objcarc::Sequence NewSeq

void SetCFGHazardAfflicted(const bool NewValue)

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

Parameters

const bool NewValue

void SetKnownPositiveRefCount()

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

void SetKnownSafe(const bool NewValue)

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

Parameters

const bool NewValue

void SetReleaseMetadata(llvm::MDNode* NewValue)

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

Parameters

llvm::MDNode* NewValue

void SetSeq(llvm::objcarc::Sequence NewSeq)

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

Parameters

llvm::objcarc::Sequence NewSeq

void SetTailCallRelease(const bool NewValue)

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

Parameters

const bool NewValue