LLVM  13.0.0git
Public Member Functions | List of all members
llvm::objcarc::BundledRetainClaimRVs Class Reference

#include "Transforms/ObjCARC/ObjCARC.h"

Public Member Functions

 BundledRetainClaimRVs (ARCRuntimeEntryPoints &P, bool ContractPass)
 
 ~BundledRetainClaimRVs ()
 
std::pair< bool, bool > insertAfterInvokes (Function &F, DominatorTree *DT)
 Insert a retainRV/claimRV call to the normal destination blocks of invokes with operand bundle "clang.arc.attachedcall". More...
 
CallInstinsertRVCall (Instruction *InsertPt, CallBase *AnnotatedCall)
 Insert a retainRV/claimRV call. More...
 
CallInstinsertRVCallWithColors (Instruction *InsertPt, CallBase *AnnotatedCall, const DenseMap< BasicBlock *, ColorVector > &BlockColors)
 Insert a retainRV/claimRV call with colors. More...
 
bool contains (const Instruction *I) const
 See if an instruction is a bundled retainRV/claimRV call. More...
 
void eraseInst (CallInst *CI)
 Remove a retainRV/claimRV call entirely. More...
 

Detailed Description

Definition at line 106 of file ObjCARC.h.

Constructor & Destructor Documentation

◆ BundledRetainClaimRVs()

llvm::objcarc::BundledRetainClaimRVs::BundledRetainClaimRVs ( ARCRuntimeEntryPoints P,
bool  ContractPass 
)
inline

Definition at line 108 of file ObjCARC.h.

◆ ~BundledRetainClaimRVs()

BundledRetainClaimRVs::~BundledRetainClaimRVs ( )

Definition at line 117 of file ObjCARC.cpp.

References llvm::objcarc::EraseInstruction(), P, and llvm::CallInst::TCK_NoTail.

Member Function Documentation

◆ contains()

bool llvm::objcarc::BundledRetainClaimRVs::contains ( const Instruction I) const
inline

See if an instruction is a bundled retainRV/claimRV call.

Definition at line 126 of file ObjCARC.h.

References I.

Referenced by llvm::objcarc::TopDownPtrState::HandlePotentialAlterRefCount().

◆ eraseInst()

void llvm::objcarc::BundledRetainClaimRVs::eraseInst ( CallInst CI)
inline

◆ insertAfterInvokes()

std::pair< bool, bool > BundledRetainClaimRVs::insertAfterInvokes ( Function F,
DominatorTree DT 
)

Insert a retainRV/claimRV call to the normal destination blocks of invokes with operand bundle "clang.arc.attachedcall".

If the edge to the normal destination block is a critical edge, split it.

Definition at line 66 of file ObjCARC.cpp.

References assert(), BB, F, llvm::BasicBlock::getFirstInsertionPt(), llvm::BasicBlock::getSinglePredecessor(), llvm::objcarc::hasAttachedCallOpBundle(), I, insertRVCall(), and llvm::SplitCriticalEdge().

◆ insertRVCall()

CallInst * BundledRetainClaimRVs::insertRVCall ( Instruction InsertPt,
CallBase AnnotatedCall 
)

Insert a retainRV/claimRV call.

Definition at line 96 of file ObjCARC.cpp.

References insertRVCallWithColors().

Referenced by insertAfterInvokes().

◆ insertRVCallWithColors()

CallInst * BundledRetainClaimRVs::insertRVCallWithColors ( Instruction InsertPt,
CallBase AnnotatedCall,
const DenseMap< BasicBlock *, ColorVector > &  BlockColors 
)

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