LLVM
8.0.1
|
This file defines ObjC ARC optimizations. More...
#include "ObjCARC.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/IR/Constants.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "objc-arc-ap-elim" |
Functions | |
INITIALIZE_PASS (ObjCARCAPElim, "objc-arc-apelim", "ObjC ARC autorelease pool elimination", false, false) Pass *llvm | |
This file defines ObjC ARC optimizations.
ARC stands for Automatic Reference Counting and is a system for managing reference counts for objects in Objective C.
This specific file implements optimizations which remove extraneous autorelease pools.
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 ObjCARCAPElim.cpp.
#define DEBUG_TYPE "objc-arc-ap-elim" |
Definition at line 36 of file ObjCARCAPElim.cpp.
INITIALIZE_PASS | ( | ObjCARCAPElim | , |
"objc-arc-apelim" | , | ||
"ObjC ARC autorelease pool elimination" | , | ||
false | , | ||
false | |||
) |
Definition at line 56 of file ObjCARCAPElim.cpp.
References assert(), llvm::objcarc::AutoreleasepoolPop, llvm::objcarc::AutoreleasepoolPush, llvm::BasicBlock::begin(), llvm::Function::begin(), Callee, llvm::objcarc::CallOrUser, llvm::dbgs(), llvm::Depth, llvm::dyn_cast(), E, llvm::objcarc::EnableARCOpts, llvm::BasicBlock::end(), llvm::Function::end(), llvm::Instruction::eraseFromParent(), F(), llvm::Function::front(), llvm::objcarc::GetBasicARCInstKind(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction(), llvm::Module::getGlobalVariable(), llvm::GlobalVariable::getInitializer(), llvm::GlobalVariable::hasDefinitiveInitializer(), I, llvm::GlobalValue::isDeclaration(), LLVM_DEBUG, llvm::objcarc::ModuleHasARC(), llvm::User::op_begin(), llvm::User::op_end(), and llvm::AnalysisUsage::setPreservesCFG().