LLVM  4.0.0
Functions
Utility declarations/definitions specific to ARC.

Functions

static const ValueFindSingleUseIdentifiedObject (const Value *Arg)
 This is similar to GetRCIdentityRoot but it stops as soon as it finds a value with multiple uses. More...
 
static bool AreAnyUnderlyingObjectsAnAlloca (const Value *V, const DataLayout &DL)
 This is a wrapper around getUnderlyingObjCPtr along the lines of GetUnderlyingObjects except that it returns early when it sees the first alloca. More...
 

Detailed Description

Function Documentation

static bool AreAnyUnderlyingObjectsAnAlloca ( const Value V,
const DataLayout DL 
)
inlinestatic

This is a wrapper around getUnderlyingObjCPtr along the lines of GetUnderlyingObjects except that it returns early when it sees the first alloca.

Definition at line 91 of file ObjCARCOpts.cpp.

References llvm::SmallVectorBase::empty(), llvm::objcarc::GetUnderlyingObjCPtr(), llvm::SmallPtrSetImpl< PtrType >::insert(), P, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and SI.

static const Value* FindSingleUseIdentifiedObject ( const Value Arg)
static

This is similar to GetRCIdentityRoot but it stops as soon as it finds a value with multiple uses.

Definition at line 55 of file ObjCARCOpts.cpp.

References GEP, llvm::objcarc::GetBasicARCInstKind(), llvm::objcarc::GetRCIdentityRoot(), llvm::Value::hasOneUse(), llvm::objcarc::IsForwarding(), llvm::objcarc::IsObjCIdentifiedObject(), and llvm::Value::users().