|
LLVM
8.0.1
|
This file defines common analysis utilities used by the ObjC ARC Optimizer. More...
#include "llvm/ADT/Optional.h"#include "llvm/ADT/StringSwitch.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/Analysis/ObjCARCInstKind.h"#include "llvm/Analysis/Passes.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/IR/CallSite.h"#include "llvm/IR/Constants.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/LLVMContext.h"#include "llvm/IR/Module.h"#include "llvm/IR/ValueHandle.h"#include "llvm/Pass.h"

Go to the source code of this file.
Classes | |
| class | llvm::objcarc::ARCMDKindCache |
| A cache of MDKinds used by various ARC optimizations. More... | |
Namespaces | |
| llvm | |
| This class represents lattice values for constants. | |
| llvm::objcarc | |
Enumerations | |
| enum | llvm::objcarc::ARCMDKindID { llvm::objcarc::ARCMDKindID::ImpreciseRelease, llvm::objcarc::ARCMDKindID::CopyOnEscape, llvm::objcarc::ARCMDKindID::NoObjCARCExceptions } |
Functions | |
| bool | llvm::objcarc::ModuleHasARC (const Module &M) |
| Test if the given module looks interesting to run ARC optimization on. More... | |
| const Value * | llvm::objcarc::GetUnderlyingObjCPtr (const Value *V, const DataLayout &DL) |
| This is a wrapper around getUnderlyingObject which also knows how to look through objc_retain and objc_autorelease calls, which we know to return their argument verbatim. More... | |
| const Value * | llvm::objcarc::GetUnderlyingObjCPtrCached (const Value *V, const DataLayout &DL, DenseMap< const Value *, WeakTrackingVH > &Cache) |
| A wrapper for GetUnderlyingObjCPtr used for results memoization. More... | |
| const Value * | llvm::objcarc::GetRCIdentityRoot (const Value *V) |
The RCIdentity root of a value V is a dominating value U for which retaining or releasing U is equivalent to retaining or releasing V. More... | |
| Value * | llvm::objcarc::GetRCIdentityRoot (Value *V) |
| Helper which calls const Value *GetRCIdentityRoot(const Value *V) and just casts away the const of the result. More... | |
| Value * | llvm::objcarc::GetArgRCIdentityRoot (Value *Inst) |
| Assuming the given instruction is one of the special calls such as objc_retain or objc_release, return the RCIdentity root of the argument of the call. More... | |
| bool | llvm::objcarc::IsNullOrUndef (const Value *V) |
| bool | llvm::objcarc::IsNoopInstruction (const Instruction *I) |
| bool | llvm::objcarc::IsPotentialRetainableObjPtr (const Value *Op) |
| Test whether the given value is possible a retainable object pointer. More... | |
| bool | llvm::objcarc::IsPotentialRetainableObjPtr (const Value *Op, AliasAnalysis &AA) |
| ARCInstKind | llvm::objcarc::GetCallSiteClass (ImmutableCallSite CS) |
| Helper for GetARCInstKind. More... | |
| bool | llvm::objcarc::IsObjCIdentifiedObject (const Value *V) |
| Return true if this value refers to a distinct and identifiable object. More... | |
Variables | |
| bool | llvm::objcarc::EnableARCOpts |
| A handy option to enable/disable all ARC Optimizations. More... | |
This file defines common analysis utilities used by the ObjC ARC Optimizer.
ARC stands for Automatic Reference Counting and is a system for managing reference counts for objects in Objective C.
WARNING: This file knows about certain library functions. It recognizes them by name, and hardwires knowledge of their semantics.
WARNING: This file knows about how certain Objective-C library functions are used. Naive LLVM IR transformations which would otherwise be behavior-preserving may break these assumptions.
Definition in file ObjCARCAnalysisUtils.h.
1.8.13