class BundledRetainClaimRVs

Declaration

class BundledRetainClaimRVs { /* full declaration omitted */ };

Declared at: llvm/lib/Transforms/ObjCARC/ObjCARC.h:105

Member Variables

private DenseMap<llvm::CallInst*, llvm::CallBase*> RVCalls
A map of inserted retainRV/claimRV calls to annotated calls/invokes.
private bool ContractPass

Method Overview

Methods

BundledRetainClaimRVs(bool ContractPass)

Declared at: llvm/lib/Transforms/ObjCARC/ObjCARC.h:107

Parameters

bool ContractPass

bool contains(const llvm::Instruction* I) const

Description

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

Declared at: llvm/lib/Transforms/ObjCARC/ObjCARC.h:124

Parameters

const llvm::Instruction* I

void eraseInst(llvm::CallInst* CI)

Description

Remove a retainRV/claimRV call entirely.

Declared at: llvm/lib/Transforms/ObjCARC/ObjCARC.h:131

Parameters

llvm::CallInst* CI

std::pair<bool, bool> insertAfterInvokes(
    llvm::Function& F,
    llvm::DominatorTree* DT)

Description

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.

Declared at: llvm/lib/Transforms/ObjCARC/ObjCARC.h:113

Parameters

llvm::Function& F
llvm::DominatorTree* DT

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

Description

Insert a retainRV/claimRV call.

Declared at: llvm/lib/Transforms/ObjCARC/ObjCARC.h:116

Parameters

llvm::Instruction* InsertPt
llvm::CallBase* AnnotatedCall

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

Description

Insert a retainRV/claimRV call with colors.

Declared at: llvm/lib/Transforms/ObjCARC/ObjCARC.h:119

Parameters

llvm::Instruction* InsertPt
llvm::CallBase* AnnotatedCall
const DenseMap<llvm::BasicBlock*, llvm::ColorVector>& BlockColors

~BundledRetainClaimRVs()

Declared at: llvm/lib/Transforms/ObjCARC/ObjCARC.h:108