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

#include "Transforms/ObjCARC/ObjCARC.h"

Public Member Functions

 BundledRetainClaimRVs (bool ContractPass)
 
 ~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 105 of file ObjCARC.h.

Constructor & Destructor Documentation

◆ BundledRetainClaimRVs()

llvm::objcarc::BundledRetainClaimRVs::BundledRetainClaimRVs ( bool  ContractPass)
inline

Definition at line 107 of file ObjCARC.h.

◆ ~BundledRetainClaimRVs()

BundledRetainClaimRVs::~BundledRetainClaimRVs ( )

Definition at line 94 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 125 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 44 of file ObjCARC.cpp.

References assert(), 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::IRBuilderBase::CreateBitCast(), llvm::objcarc::createCallInstWithColors(), and llvm::objcarc::getAttachedARCFunction().

Referenced by insertRVCall().


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