LLVM 20.0.0git
|
#include "Transforms/ObjCARC/ObjCARC.h"
Public Member Functions | |
BundledRetainClaimRVs (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". | |
CallInst * | insertRVCall (BasicBlock::iterator InsertPt, CallBase *AnnotatedCall) |
Insert a retainRV/claimRV call. | |
CallInst * | insertRVCallWithColors (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. | |
|
inline |
BundledRetainClaimRVs::~BundledRetainClaimRVs | ( | ) |
Definition at line 94 of file ObjCARC.cpp.
References llvm::objcarc::EraseInstruction(), P, and llvm::CallInst::TCK_NoTail.
|
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().
|
inline |
Remove a retainRV/claimRV call entirely.
Definition at line 132 of file ObjCARC.h.
References llvm::Instruction::eraseFromParent(), llvm::objcarc::EraseInstruction(), llvm::CallBase::getIntrinsicID(), llvm::LLVMContext::OB_clang_arc_attachedcall, and llvm::CallBase::removeOperandBundle().
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().
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().
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().