LLVM  mainline
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.
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.

Function Documentation

static bool AreAnyUnderlyingObjectsAnAlloca ( const Value V,
const DataLayout DL 
) [inline, static]

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 86 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 >::push_back(), and llvm::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 llvm::objcarc::GetBasicARCInstKind(), llvm::objcarc::GetRCIdentityRoot(), llvm::Value::hasOneUse(), llvm::objcarc::IsForwarding(), llvm::objcarc::IsObjCIdentifiedObject(), and llvm::Value::users().