LLVM  6.0.0svn
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for llvm::objcarc::PtrState:
Collaboration graph
[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
 True if the reference count is known to be incremented. More...
 
bool Partial
 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. More...
 
unsigned char Seq: 8
 The current position in the sequence. More...
 
RRInfo RRI
 Unidirectional information about the current sequence. More...
 

Detailed Description

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

Definition at line 100 of file PtrState.h.

Constructor & Destructor Documentation

◆ PtrState()

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

Definition at line 115 of file PtrState.h.

Member Function Documentation

◆ ClearKnownPositiveRefCount()

void PtrState::ClearKnownPositiveRefCount ( )

Definition at line 121 of file PtrState.cpp.

References llvm::dbgs(), and DEBUG.

◆ ClearReverseInsertPts()

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

Definition at line 160 of file PtrState.h.

References llvm::objcarc::RRInfo::ReverseInsertPts.

◆ ClearSequenceProgress()

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

◆ GetReleaseMetadata()

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

Definition at line 132 of file PtrState.h.

References llvm::objcarc::RRInfo::ReleaseMetadata.

◆ GetRRInfo()

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

Definition at line 164 of file PtrState.h.

Referenced by CheckForCanReleaseCFGHazard().

◆ GetSeq()

Sequence llvm::objcarc::PtrState::GetSeq ( ) const
inline

Definition at line 149 of file PtrState.h.

Referenced by CheckForCanReleaseCFGHazard(), Merge(), and llvm::operator<<().

◆ HasKnownPositiveRefCount()

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

Definition at line 145 of file PtrState.h.

Referenced by llvm::operator<<().

◆ HasReverseInsertPts()

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

Definition at line 162 of file PtrState.h.

References llvm::objcarc::RRInfo::ReverseInsertPts.

◆ InsertCall()

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

Definition at line 156 of file PtrState.h.

References llvm::objcarc::RRInfo::Calls.

◆ InsertReverseInsertPt()

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

Definition at line 158 of file PtrState.h.

References llvm::objcarc::RRInfo::ReverseInsertPts.

◆ IsCFGHazardAfflicted()

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

Definition at line 136 of file PtrState.h.

References llvm::objcarc::RRInfo::CFGHazardAfflicted.

Referenced by llvm::operator<<().

◆ IsKnownSafe()

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

◆ IsTailCallRelease()

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

Definition at line 122 of file PtrState.h.

References llvm::objcarc::RRInfo::IsTailCallRelease.

◆ IsTrackingImpreciseReleases()

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

Definition at line 128 of file PtrState.h.

References llvm::objcarc::RRInfo::ReleaseMetadata.

Referenced by llvm::operator<<().

◆ Merge()

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

Definition at line 138 of file PtrState.cpp.

References GetSeq(), KnownPositiveRefCount, MergeSeqs(), Partial, RRI, and llvm::objcarc::S_None.

◆ ResetSequenceProgress()

void PtrState::ResetSequenceProgress ( Sequence  NewSeq)

Definition at line 131 of file PtrState.cpp.

References llvm::dbgs(), and DEBUG.

◆ SetCFGHazardAfflicted()

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

◆ SetKnownPositiveRefCount()

void PtrState::SetKnownPositiveRefCount ( )

Definition at line 116 of file PtrState.cpp.

References llvm::dbgs(), and DEBUG.

◆ SetKnownSafe()

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

Definition at line 120 of file PtrState.h.

References llvm::objcarc::RRInfo::KnownSafe.

◆ SetReleaseMetadata()

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

Definition at line 134 of file PtrState.h.

References llvm::objcarc::RRInfo::ReleaseMetadata.

◆ SetSeq()

void PtrState::SetSeq ( Sequence  NewSeq)

Definition at line 126 of file PtrState.cpp.

References llvm::dbgs(), and DEBUG.

◆ SetTailCallRelease()

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

Definition at line 124 of file PtrState.h.

References llvm::objcarc::RRInfo::IsTailCallRelease.

Member Data Documentation

◆ KnownPositiveRefCount

bool llvm::objcarc::PtrState::KnownPositiveRefCount
protected

True if the reference count is known to be incremented.

Definition at line 103 of file PtrState.h.

Referenced by Merge().

◆ Partial

bool llvm::objcarc::PtrState::Partial
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 107 of file PtrState.h.

Referenced by Merge().

◆ RRI

RRInfo llvm::objcarc::PtrState::RRI
protected

Unidirectional information about the current sequence.

Definition at line 113 of file PtrState.h.

Referenced by Merge().

◆ Seq

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

The current position in the sequence.

Definition at line 110 of file PtrState.h.


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