LLVM 22.0.0git
|
#include "Transforms/ObjCARC/ObjCARC.h"
Public Member Functions | |
BundledRetainClaimRVs (ARCRuntimeEntryPoints &EP, bool ContractPass, bool UseClaimRV) | |
~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::CallBase::bundle_op_infos(), llvm::objcarc::ClaimRV, llvm::dyn_cast(), llvm::objcarc::EraseInstruction(), llvm::LLVMContext::OB_clang_arc_attachedcall, llvm::CallBase::operandBundleFromBundleOpInfo(), P, llvm::objcarc::RetainRV, llvm::User::setOperand(), and llvm::CallInst::TCK_NoTail.
|
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().
|
inline |
Remove a retainRV/claimRV call entirely.
Definition at line 135 of file ObjCARC.h.
References llvm::dyn_cast(), llvm::Instruction::eraseFromParent(), llvm::objcarc::EraseInstruction(), llvm::CallBase::getIntrinsicID(), llvm::LLVMContext::OB_clang_arc_attachedcall, llvm::CallBase::removeOperandBundle(), and llvm::objcarc::User.
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().
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::objcarc::createCallInstWithColors(), and llvm::objcarc::getAttachedARCFunction().
Referenced by insertRVCall().