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

#include "Transforms/ObjCARC/ObjCARC.h"

Public Member Functions

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

Detailed Description

Definition at line 106 of file ObjCARC.h.

Constructor & Destructor Documentation

◆ BundledRetainClaimRVs()

llvm::objcarc::BundledRetainClaimRVs::BundledRetainClaimRVs ( ARCRuntimeEntryPoints & EP,
bool ContractPass,
bool UseClaimRV )
inline

Definition at line 108 of file ObjCARC.h.

◆ ~BundledRetainClaimRVs()

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 128 of file ObjCARC.h.

References llvm::dyn_cast(), and 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 44 of file ObjCARC.cpp.

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

◆ insertRVCall()

CallInst * BundledRetainClaimRVs::insertRVCall ( BasicBlock::iterator InsertPt,
CallBase * AnnotatedCall )

Insert a retainRV/claimRV call.

Definition at line 74 of file ObjCARC.cpp.

References insertRVCallWithColors().

Referenced by insertAfterInvokes().

◆ insertRVCallWithColors()

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

Insert a retainRV/claimRV call with colors.

Definition at line 80 of file ObjCARC.cpp.

References assert(), llvm::objcarc::Call, llvm::objcarc::createCallInstWithColors(), and llvm::objcarc::getAttachedARCFunction().

Referenced by insertRVCall().


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