Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
llvm::objcarc::PtrState Class Reference

This class summarizes several per-pointer runtime properties which are propagated through the flow graph. More...

#include "Transforms/ObjCARC/PtrState.h"

Inheritance diagram for llvm::objcarc::PtrState:
[legend]

Public Member Functions

bool IsKnownSafe () const
void SetKnownSafe (const bool NewValue)
bool IsTailCallRelease () const
void SetTailCallRelease (const bool NewValue)
bool IsTrackingImpreciseReleases () const
const MDNodeGetReleaseMetadata () const
void SetReleaseMetadata (MDNode *NewValue)
bool IsCFGHazardAfflicted () const
void SetCFGHazardAfflicted (const bool NewValue)
void SetKnownPositiveRefCount ()
void ClearKnownPositiveRefCount ()
bool HasKnownPositiveRefCount () const
void SetSeq (Sequence NewSeq)
Sequence GetSeq () const
void ClearSequenceProgress ()
void ResetSequenceProgress (Sequence NewSeq)
void Merge (const PtrState &Other, bool TopDown)
void InsertCall (Instruction *I)
void InsertReverseInsertPt (Instruction *I)
void ClearReverseInsertPts ()
bool HasReverseInsertPts () const
const RRInfoGetRRInfo () const

Protected Member Functions

 PtrState ()

Protected Attributes

bool KnownPositiveRefCount = false
 True if the reference count is known to be incremented.
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.
unsigned char Seq: 8
 The current position in the sequence.
RRInfo RRI
 Unidirectional information about the current sequence.

Detailed Description

This class summarizes several per-pointer runtime properties which are propagated through the flow graph.

Definition at line 101 of file PtrState.h.

Constructor & Destructor Documentation

◆ PtrState()

llvm::objcarc::PtrState::PtrState ( )
inlineprotected

Definition at line 116 of file PtrState.h.

References llvm::objcarc::S_None, and Seq.

Referenced by Merge().

Member Function Documentation

◆ ClearKnownPositiveRefCount()

void PtrState::ClearKnownPositiveRefCount ( )

◆ ClearReverseInsertPts()

void llvm::objcarc::PtrState::ClearReverseInsertPts ( )
inline

◆ ClearSequenceProgress()

void llvm::objcarc::PtrState::ClearSequenceProgress ( )
inline

Definition at line 152 of file PtrState.h.

References ResetSequenceProgress(), and llvm::objcarc::S_None.

Referenced by CheckForUseCFGHazard(), and Merge().

◆ GetReleaseMetadata()

const MDNode * llvm::objcarc::PtrState::GetReleaseMetadata ( ) const
inline

Definition at line 133 of file PtrState.h.

References RRI.

◆ GetRRInfo()

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

Definition at line 165 of file PtrState.h.

References RRI.

◆ GetSeq()

◆ HasKnownPositiveRefCount()

bool llvm::objcarc::PtrState::HasKnownPositiveRefCount ( ) const
inline

◆ HasReverseInsertPts()

bool llvm::objcarc::PtrState::HasReverseInsertPts ( ) const
inline

◆ InsertCall()

void llvm::objcarc::PtrState::InsertCall ( Instruction * I)
inline

◆ InsertReverseInsertPt()

void llvm::objcarc::PtrState::InsertReverseInsertPt ( Instruction * I)
inline

◆ IsCFGHazardAfflicted()

bool llvm::objcarc::PtrState::IsCFGHazardAfflicted ( ) const
inline

Definition at line 137 of file PtrState.h.

References RRI.

◆ IsKnownSafe()

bool llvm::objcarc::PtrState::IsKnownSafe ( ) const
inline

Definition at line 119 of file PtrState.h.

References RRI.

Referenced by CheckForCanReleaseCFGHazard(), and CheckForUseCFGHazard().

◆ IsTailCallRelease()

bool llvm::objcarc::PtrState::IsTailCallRelease ( ) const
inline

Definition at line 123 of file PtrState.h.

References RRI.

◆ IsTrackingImpreciseReleases()

bool llvm::objcarc::PtrState::IsTrackingImpreciseReleases ( ) const
inline

Definition at line 129 of file PtrState.h.

References RRI.

Referenced by llvm::objcarc::BottomUpPtrState::MatchWithRetain().

◆ Merge()

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

◆ ResetSequenceProgress()

void PtrState::ResetSequenceProgress ( Sequence NewSeq)

◆ SetCFGHazardAfflicted()

void llvm::objcarc::PtrState::SetCFGHazardAfflicted ( const bool NewValue)
inline

◆ SetKnownPositiveRefCount()

◆ SetKnownSafe()

void llvm::objcarc::PtrState::SetKnownSafe ( const bool NewValue)
inline

◆ SetReleaseMetadata()

void llvm::objcarc::PtrState::SetReleaseMetadata ( MDNode * NewValue)
inline

◆ SetSeq()

◆ SetTailCallRelease()

void llvm::objcarc::PtrState::SetTailCallRelease ( const bool NewValue)
inline

Member Data Documentation

◆ KnownPositiveRefCount

bool llvm::objcarc::PtrState::KnownPositiveRefCount = false
protected

True if the reference count is known to be incremented.

Definition at line 104 of file PtrState.h.

Referenced by ClearKnownPositiveRefCount(), HasKnownPositiveRefCount(), Merge(), and SetKnownPositiveRefCount().

◆ Partial

bool llvm::objcarc::PtrState::Partial = false
protected

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.

Definition at line 108 of file PtrState.h.

Referenced by Merge(), and ResetSequenceProgress().

◆ RRI

◆ Seq

unsigned char llvm::objcarc::PtrState::Seq
protected

The current position in the sequence.

Definition at line 111 of file PtrState.h.

Referenced by GetSeq(), Merge(), PtrState(), and SetSeq().


The documentation for this class was generated from the following files: